编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#21071 #2039. youngmagician爱听哈基米音乐 Accepted 100 698 ms 12168 K C++ 17 / 4.1 K 192024212413 2024-12-14 14:37:10
显示原始代码
#include <cstdio>
#include <cstdlib>
#include <cassert>
#include <algorithm>
#include <cmath>
#include <string>
#include <vector>
#include <queue>
#include <deque>
#include <stack>
#include <map>
#include <unordered_map>
#include <set>
#include <iostream>
#include <cstring>
#include <bitset>
#include <ctime>
#include <functional>
#include <numeric>
#include <random>
#include <chrono>
#include <array>
#include <utility>

typedef int64_t LL;
typedef uint64_t uLL;
typedef __int128_t sLL;
#define fir first

#define sec second

#define eb emplace_back

#define em emplace

#define pb push_back

#define ppb pop_back

#define pii std::pair<int, int>

#define mkp(a, b) std::make_pair(a, b)

#define bitcount(x) __builtin_popcount(x)

#define bitcountll(x) __builtin_popcountll(x)

#define bitparity(x) __builtin_parity(x)

#define bitparityll(x) __builtin_parityll(x)


int read() {
    int s = 0, w = 1;
    char ch = getchar();
    while (ch < '0' || ch > '9') {
        if (ch == '-')
            w = -1;
        ch = getchar();
    }
    while (ch >= '0' && ch <= '9') s = s * 10 + ch - '0', ch = getchar();
    return s * w;
}

LL readl() {
    LL s = 0, w = 1;
    char ch = getchar();
    while (ch < '0' || ch > '9') {
        if (ch == '-')
            w = -1;
        ch = getchar();
    }
    while (ch >= '0' && ch <= '9') s = s * 10 + ch - '0', ch = getchar();
    return s * w;
}

template <typename T>
void debugv(const T &vec, const char *s = NULL) {
    if (s == NULL) {
        s = "";
    }
    printf("%s = [", s);
    for (const auto &val : vec) {
        std::cout << val << ", ";
    }
    printf("]\n");
}

template <typename key, typename val>
void debugmp(const std::map<key, val> &mp, const char *s = NULL) {
    if (s == NULL) {
        s = "";
    }
    printf("%s = [", s);
    for (const auto &[k, v] : mp) {
        std::cout << "< " << k << ", " << v << " >, ";
    }
    printf("]\n");
}

template <typename T>
void debuga(T *arr, int l, int r, const char *s = NULL) {
    if (s == NULL) {
        s = "";
    }
    printf("%s = [", s);
    for (int i = l; i <= r; i++) {
        std::cout << arr[i] << ", ";
    }
    printf("]\n");
}

///////////////////////////////////// wanna become a grandmaster

// #include <ext/pb_ds/tree_policy.hpp>
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/hash_policy.hpp>
// #include <ext/rope>
// using namespace __gnu_cxx;
// using namespace __gnu_pbds;
// using rbtree = tree<int, null_type, std::less<int>, rb_tree_tag, tree_order_statistics_node_update> ;
// order_of_key() rank (return int) start from 0
// find_by_order() kth (return iterator) start from 0
// gp_hash_table<T1, T2> has_table

struct custom_hash {
    static uint64_t splitmix64(uint64_t x) {
        // http://xorshift.di.unimi.it/splitmix64.c
        x += 0x9e3779b97f4a7c15;
        x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;
        x = (x ^ (x >> 27)) * 0x94d049bb133111eb;
        return x ^ (x >> 31);
    }

    size_t operator()(uint64_t x) const {
        static const uint64_t FIXED_RANDOM = std::chrono::steady_clock::now().time_since_epoch().count();
        return splitmix64(x + FIXED_RANDOM);
    }
};

const int maxn = 1e6 + 10;

int n;
std::string s;
int pre[maxn], las[maxn], v[maxn];

int32_t main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);
    std::cin >> n;
    for (int i = 1; i <= n; i++) {
        std::cin >> s;
        if (s == "ha") {
            pre[i] = 1;
        } else if (s == "ji") {
            v[i] = 1;
        } else if (s == "mi") {
            las[i] = 1;
        }
    }
    for (int i = 2; i <= n; i++) {
        pre[i] += pre[i - 1];
    }
    for (int i = n - 1; i >= 1; i--) {
        las[i] += las[i + 1];
    }
    LL ans = 0;
    for (int i = 2; i < n; i++) {
        if (v[i]) {
            ans += (LL)pre[i - 1] * las[i + 1];
        }
    }
    std::cout << ans << "\n";
    return 0;
}

/*
    读入是否需要开LL?
    是否存在退化、特判的情况?
    多组数据时是否清空完整?
*/
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:6 ms
内存:580 KiB

输入文件(0.in

19065
do na ye ccb pan he na ji do ji ccb ccb ccb ji mi mi he ccb na he auv auv he pan ji pan ccb d
<62952 bytes omitted>

答案文件(0.out

1094145635

用户输出

1094145635

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:7 ms
内存:708 KiB

输入文件(1.in

25928
ye mi ji do na ccb do na do do na ye ha ccb auv mi pan mi ccb ji auv ccb pan na ji na ye mi d
<85433 bytes omitted>

答案文件(1.out

2894524668

用户输出

2894524668

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:7 ms
内存:712 KiB

输入文件(2.in

26848
ccb ccb mi ji pan ji na ha ye na na ye auv ha mi ye he na ccb ccb pan he ccb do ye pan pan ha
<88545 bytes omitted>

答案文件(2.out

3141563169

用户输出

3141563169

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:6 ms
内存:644 KiB

输入文件(3.in

18494
auv ye mi ccb auv auv do ccb ji he ye na ha do he auv pan pan auv ccb na ye na ccb ye mi mi m
<60974 bytes omitted>

答案文件(3.out

1037662984

用户输出

1037662984

系统信息

Exited with return code 0
测试点 #5
Accepted
得分:100
用时:4 ms
内存:412 KiB

输入文件(4.in

3346
do ha ha pan pan mi ji ye auv ha do ccb auv ji ccb ji na auv ji ji mi ccb ji ji ye na pan na c
<10945 bytes omitted>

答案文件(4.out

6908728

用户输出

6908728

系统信息

Exited with return code 0
测试点 #6
Accepted
得分:100
用时:6 ms
内存:580 KiB

输入文件(5.in

15898
do mi na ye do ji ccb ji mi ji ha auv do ji na ha ye na ccb ha na he do pan do ha mi na he do
<52417 bytes omitted>

答案文件(5.out

657068545

用户输出

657068545

系统信息

Exited with return code 0
测试点 #7
Accepted
得分:100
用时:7 ms
内存:668 KiB

输入文件(6.in

25926
pan do ha auv ji ha na auv ccb na ye ji ye ccb auv ye he na na ha ji ha auv pan ye he he mi p
<85449 bytes omitted>

答案文件(6.out

3103673394

用户输出

3103673394

系统信息

Exited with return code 0
测试点 #8
Accepted
得分:100
用时:6 ms
内存:556 KiB

输入文件(7.in

16382
do do mi ha ccb ye do ye ha pan mi mi ji ji na ccb na mi auv ye mi do mi mi do na ye mi do ye
<53942 bytes omitted>

答案文件(7.out

756323684

用户输出

756323684

系统信息

Exited with return code 0
测试点 #9
Accepted
得分:100
用时:7 ms
内存:700 KiB

输入文件(8.in

23519
pan pan do do ha pan na pan ha pan pan ji ye ha he ye do mi do do ji auv auv pan ji do pan do
<77464 bytes omitted>

答案文件(8.out

1993513233

用户输出

1993513233

系统信息

Exited with return code 0
测试点 #10
Accepted
得分:100
用时:6 ms
内存:580 KiB

输入文件(9.in

20089
he auv ji mi auv mi auv do ye ye na he auv mi ha na mi do na na auv ha na ye ha auv pan ha au
<66197 bytes omitted>

答案文件(9.out

1284726970

用户输出

1284726970

系统信息

Exited with return code 0
测试点 #11
Accepted
得分:100
用时:7 ms
内存:676 KiB

输入文件(10.in

29192
ye do do ha ye na pan ji ha do na do ji mi ha auv auv ji ji ye na pan ye na ye ha do ha ji ji
<96200 bytes omitted>

答案文件(10.out

3994007510

用户输出

3994007510

系统信息

Exited with return code 0
测试点 #12
Accepted
得分:100
用时:6 ms
内存:580 KiB

输入文件(11.in

20928
mi do pan na mi he do ji auv ha na ha ccb mi do ji mi ccb ha auv na he auv ye auv ye pan mi n
<68992 bytes omitted>

答案文件(11.out

1553650319

用户输出

1553650319

系统信息

Exited with return code 0
测试点 #13
Accepted
得分:100
用时:8 ms
内存:712 KiB

输入文件(12.in

32720
ha pan ye auv auv ji ccb he na ji he ha ccb he na auv do he do na auv he ha he mi mi pan ji d
<107839 bytes omitted>

答案文件(12.out

5871461966

用户输出

5871461966

系统信息

Exited with return code 0
测试点 #14
Accepted
得分:100
用时:123 ms
内存:12168 KiB

输入文件(13.in

1000000
auv ha na pan ji na ji he na ha pan ye do auv mi ha ji auv ha do ccb ye auv auv na ha auv c
<3300134 bytes omitted>

答案文件(13.out

166771455076716

用户输出

166771455076716

系统信息

Exited with return code 0
测试点 #15
Accepted
得分:100
用时:126 ms
内存:12068 KiB

输入文件(14.in

1000000
ji pan he na ha mi mi auv na ccb auv pan ha pan auv ha na ccb pan mi ha na ccb he mi mi na 
<3299199 bytes omitted>

答案文件(14.out

165409451642687

用户输出

165409451642687

系统信息

Exited with return code 0
测试点 #16
Accepted
得分:100
用时:124 ms
内存:12128 KiB

输入文件(15.in

1000000
pan ccb mi ji ye auv ha na na na ccb ji ha ha ha auv ye ye mi mi ha pan ccb ji ccb ha ha na
<3300546 bytes omitted>

答案文件(15.out

166559466276261

用户输出

166559466276261

系统信息

Exited with return code 0
测试点 #17
Accepted
得分:100
用时:122 ms
内存:12140 KiB

输入文件(16.in

1000000
do he do pan na ccb mi he ji do do ha ye auv pan na ji ccb ccb ji ccb ccb pan pan ye auv au
<3300413 bytes omitted>

答案文件(16.out

167293174362853

用户输出

167293174362853

系统信息

Exited with return code 0
测试点 #18
Accepted
得分:100
用时:120 ms
内存:12064 KiB

输入文件(17.in

1000000
do na do na ccb ye ji pan mi auv na ye auv ji pan pan ha he he ccb ccb na ji ji he ji ccb a
<3299465 bytes omitted>

答案文件(17.out

167067295887448

用户输出

167067295887448

系统信息

Exited with return code 0