QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#59709#2827. AutobiographyXrkArul#AC ✓88ms29224kbC++172.3kb2022-10-31 21:20:402022-10-31 21:20:42

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-10-31 21:20:42]
  • 评测
  • 测评结果:AC
  • 用时:88ms
  • 内存:29224kb
  • [2022-10-31 21:20:40]
  • 提交

answer

// Duet of Dusk Embers--XrkArul
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ULL __int128_t
#define ull unsigned long long
#define vi vector<int>
#define vll vector<ll>
#define endl '\n'
#define ednl '\n'
#define pb push_back
#define fi first
#define se second
#define ls (p<<1)
#define rs (p<<1|1)
#define fix setprecision
#define all(v) (v).begin(),(v).end()
#define pii pair<int, int>
#define pll pair<ll, ll>
#define debug(x) cerr<<#x<<':'<<' '<<x<<'\n'
#define rep(i, a, b) for (int i = a; i <= b; ++i)
#define pq priority_queue<int, vector<int>>
#define PQ priority_queue<int, vector<int>, greater<int>>
const ll inf = 1e18;
const ll mod=1e9+7;
const ull hashbase = 5767169;
ll powmod(ll a,ll b){ll s=1;a%=mod;while(b){if(b&1)s=s*a%mod;b>>=1;a=a*a%mod;}return s%mod;}

#define int long long
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n,m;
    // cin>>n>>m;
    while(cin>>n>>m){
        // cin>>n>>m;
        string s;cin>>s;
        vector<int> d(n+1);
        rep(i,0,s.size()-1)d[i+1]=s[i]-'a';
        vector<vi> e(n+1);
        while(m--){
            int a,b;cin>>a>>b;
            // if(a>n||b>n)continue;
            if(d[a]!=d[b]){
                e[a].pb(b);
                e[b].pb(a);
            }
        }
        int ans=0;vector<vi> cnt(n+1,vi(5));vi vis(n+1);
        function<void(int)> dfs1=[&](int x){ 
            vis[x]=1;
            for(auto v:e[x]){
                if(d[x]!='b'-'a')// o
                {
                    cnt[x][2]+=(int)e[v].size()-1;
                }
                if(vis[v])continue;
                dfs1(v);
            }
        };
        rep(i,1,n)if(!vis[i])dfs1(i);fill(all(vis),0);
        function<void(int)> dfs=[&](int x){ 
            vis[x]=1;
            for(auto v:e[x]){
                if(d[x]=='b'-'a')// b
                {
                    cnt[x][1]+=cnt[v][2]-((int)e[x].size()-1);
                }
                if(vis[v])continue;
                dfs(v);
            }
        };
        rep(i,1,n){
            if(!vis[i])dfs(i);
        }
        // dfs(1);
        rep(i,1,n){
            if(d[i]=='b'-'a')ans+=cnt[i][1];
        }
        cout<<ans<<endl;
    }
    return 0;
}
/*

*/

詳細信息

Test #1:

score: 100
Accepted
time: 2ms
memory: 3564kb

input:

5 4
bbobo
1 3
2 3
3 4
4 5
4 6
bobo
1 2
1 3
1 4
2 3
2 4
3 4
4 0
bobo

output:

2
4
0

result:

ok 3 lines

Test #2:

score: 0
Accepted
time: 52ms
memory: 3508kb

input:

4 4
oobo
2 3
4 1
4 3
3 1
4 3
obob
1 4
2 3
1 2
4 4
obob
3 1
2 3
2 1
1 4
4 3
bboo
2 4
4 1
3 4
4 3
bbbo
1 4
1 3
4 2
4 4
obbo
3 4
2 4
2 3
3 1
4 3
bobo
2 3
4 3
1 4
4 3
obbb
3 4
4 2
1 4
4 5
bobo
4 1
2 1
3 1
4 3
2 4
4 4
obbo
3 4
3 1
2 3
1 4
4 3
bobb
4 2
4 1
2 3
4 3
obbo
3 1
3 2
1 2
4 4
ooob
2 1
3 1
3 4
1 4...

output:

0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
4
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
4
1
0
0
0
0
4
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
...

result:

ok 50000 lines

Test #3:

score: 0
Accepted
time: 38ms
memory: 3480kb

input:

8 13
bbooboob
8 3
8 4
1 3
1 8
4 2
2 6
4 5
1 5
6 4
7 1
2 3
2 7
5 8
5 8
bbbob
3 1
2 4
1 4
1 2
2 5
4 3
4 5
5 1
13 16
ooboooobboobb
5 4
9 6
9 13
9 2
11 4
11 9
5 7
1 9
2 5
12 3
2 8
8 11
10 11
4 9
11 12
4 13
20 17
bbbobobobooobooobooo
13 9
16 9
10 17
6 8
4 9
1 4
3 19
7 17
2 18
17 9
18 8
14 19
6 11
9 15
4 ...

output:

22
0
19
8
6
6
0
12
27
4
37
3
3
0
45
4
4
8
3
4
4
4
5
2
4
3
0
4
8
5
6
5
6
11
3
8
8
8
0
3
3
13
0
4
18
11
0
3
4
1
0
8
14
10
6
9
4
9
12
5
4
4
0
3
2
0
8
0
6
0
2
0
28
2
2
16
2
18
10
2
4
6
4
8
14
0
10
2
2
8
10
0
11
5
1
26
12
8
0
0
0
19
16
28
0
10
1
2
1
30
8
2
28
1
4
3
20
6
0
0
3
19
3
0
0
6
12
4
15
0
9
4
12
...

result:

ok 10000 lines

Test #4:

score: 0
Accepted
time: 45ms
memory: 3676kb

input:

198 199
bbboboooobooooobbobobbbbbbboobbboooboooooboboooobbboooobobbbboooobbbobboobobobbobobobbobbobooobobbobooobobobbobbbbbbbobobbbbobbbbbbbobbbboooboobbbbobbbbbbboobboooobboboobbobbooobbbobbboooboobobooobb
160 85
179 137
121 64
16 175
81 140
77 134
133 28
174 56
170 16
40 139
149 117
21 173
32 196
...

output:

49
273
377
462
387
79
1894
68
472
1523
0
357
514
1201
1172
562
747
451
498
2124
1835
190
194
120
148
2483
1970
64
1198
117
120
213
1688
123
2731
129
165
222
68
2367
150
178
597
269
156
301
109
119
122
577
1946
184
84
309
130
292
1333
1451
313
87
664
207
724
1172
706
252
752
239
162
125
252
256
245
1...

result:

ok 1000 lines

Test #5:

score: 0
Accepted
time: 37ms
memory: 3784kb

input:

1386 1998
obobobobbooboooooooobboooobbbboboobbbbobooboboooobobboobboooobbbobboboobooboobbobbbbbbboboooooooooooobobboobobbboobbbbobobobobbbbboobooobbobbooooboobooobbobooooobobobbbbbobbbbbobbobbbbbobbbobooooobooobobbobooobooooobobboobbobbobbbboobbobboobbbbbboobobobobobbobbbboooooobooooboobbbooobbboooo...

output:

1948
8498
2119
1572
29074
47195
10751
15880
4222
1221
1057
2356
3106
10786
1420
1245
3597
20548
1230
13220
1446
1328
1950
3498
14322
3165
23590
71510
3352
2100
189658
2339
3907
3284
121120
25167
1106
1957
19478
7489
273052
3782
16665
2543
840
1833
12910
3447
12976
2243
11051
2416
32494
1074
1470
143...

result:

ok 100 lines

Test #6:

score: 0
Accepted
time: 67ms
memory: 6388kb

input:

20000 19998
oooobboobboobooobbbbboobbboooboobbbbboobbbbbboobooboobbbbboooobbbooobobbobbobbobbboboobbobbbbbboobbobboobbbobbooobobbboboboooobooobboobboboobbobobbboobbbobbooooboobboboooobobbbobobbbboooobboboobbbobbobbbobboooobbboboobooboobbbobbobobbooobboooobooobbboboboobbbbbooboooobbbbooobooobbbboooob...

output:

9618
9527
9799
10267
10250
9970
9942
9749
9484
10163

result:

ok 10 lines

Test #7:

score: 0
Accepted
time: 88ms
memory: 29224kb

input:

200000 199999
ooooobbbooboooboooobbobbobbbobbbobbooboobbbobbobboooobbbboobobbboobbbbbbbobobbbbbbbooobobbbbobooooooobooobooboobbbobboobbooobobboobbobbbobbbboooobbooobobooobbbobbboobbbbbboboobbbobobbbbobbbbbbooobbbobbboobooboooobooobobbbobobboobobboboobboboooobooboobboobbooobobbobbboobboobobbbbobooooo...

output:

100506

result:

ok single line: '100506'

Test #8:

score: 0
Accepted
time: 24ms
memory: 5268kb

input:

2000 119368
oooobooobboboobbbbbbboobboboooboobbooobboobbbbbbobboooobooobooobooobbooboobobobbbooboobooooooobbboobobboobbobboboobobbobbbobbboobboobooobbbobbooobbobbbbobobbobbobbobbboobboobobobbbooboobobobobbobobobobbobbooobbooobobboooobbbobooooboooooobbobbboboboobboobooboboobooooobboobobbbbbbbooobobbb...

output:

1677952657

result:

ok single line: '1677952657'

Test #9:

score: 0
Accepted
time: 21ms
memory: 5300kb

input:

5000 98161
oooobobobooobbbbbooooobbboobbobbbboobboobobbobooboobboobbbbooobbobobobbobbobooboobbobobbbbobbooobbboooobobooobbbooboobobbbboboobbbboooobbooboobobooobobooboboobboobbbboobbobobooobbbbbobbbbbobobbobbobbboobobbbbbobooobboobbbboobbobbobooobbbbobbooooobooobbboooobbboboobboooobboobbobbobbobooobo...

output:

1234650182

result:

ok single line: '1234650182'

Test #10:

score: 0
Accepted
time: 49ms
memory: 12568kb

input:

40005 200000
ooooobbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

output:

31999200000

result:

ok single line: '31999200000'

Test #11:

score: 0
Accepted
time: 38ms
memory: 10084kb

input:

20010 200000
oooooooooobbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

output:

35998200000

result:

ok single line: '35998200000'

Test #12:

score: 0
Accepted
time: 23ms
memory: 8988kb

input:

10020 200000
oooooooooooooooooooobbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

output:

37996200000

result:

ok single line: '37996200000'

Test #13:

score: 0
Accepted
time: 27ms
memory: 7664kb

input:

4050 200000
oooooooooooooooooooooooooooooooooooooooooooooooooobbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

output:

39190200000

result:

ok single line: '39190200000'

Test #14:

score: 0
Accepted
time: 30ms
memory: 7516kb

input:

2100 200000
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooobbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

output:

39580200000

result:

ok single line: '39580200000'

Test #15:

score: 0
Accepted
time: 25ms
memory: 8012kb

input:

1000 200000
oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo...

output:

31873020142

result:

ok single line: '31873020142'