Submission #2503794
Source Code Expand
#include<bits/stdc++.h> using namespace std; using Int = long long; template<typename T> vector<T> make_v(size_t a){return vector<T>(a);} template<typename T,typename... Ts> auto make_v(size_t a,Ts... ts){ return vector<decltype(make_v<T>(ts...))>(a,make_v<T>(ts...)); } template<typename T,typename V> typename enable_if<is_class<T>::value==0>::type fill_v(T &t,const V &v){t=v;} template<typename T,typename V> typename enable_if<is_class<T>::value!=0>::type fill_v(T &t,const V &v){ for(auto &e:t) fill_v(e,v); } template<typename T1,typename T2> inline void chmin(T1 &a,T2 b){if(a>b) a=b;} template<typename T1,typename T2> inline void chmax(T1 &a,T2 b){if(a<b) a=b;} //INSERT ABOVE HERE signed main(){ Int n; cin>>n; vector<vector<Int> > G(n); for(Int i=1;i<n;i++){ Int x,y; cin>>x>>y; x--;y--; G[x].emplace_back(y); G[y].emplace_back(x); } string s; cin>>s; if(n==1){ cout<<(s[0]=='W')<<endl; return 0; } Int ans=0,dec=0; auto dp=make_v<Int>(2,n); fill_v(dp,0); vector<Int> ok(n,0); vector<Int> cnt(n,0); function<void(Int, Int)> dfs=[&](Int v,Int p)->void{ cnt[v]=(p!=-1); ok[v]=s[v]=='W'; using P = pair<Int, Int>; vector<P> vp1,vp2; vp1.emplace_back(0,-1); vp2.emplace_back(0,-1); vp1.emplace_back(0,-1); vp2.emplace_back(0,-1); for(Int u:G[v]){ if(u==p) continue; dfs(u,v); if(!ok[u]) continue; ok[v]=1; chmax(dp[0][v],dp[0][u]+(cnt[u]%2 != (s[u]=='W'))); chmax(dp[1][v],dp[1][u]); vp1.emplace_back(dp[0][u]+(cnt[u]%2 != (s[u]=='W')),u); vp2.emplace_back(dp[1][u],u); ans+=2; cnt[v]++; } if(!ok[v]) return; //cout<<v<<":"<<dp[0][v]<<" "<<dp[1][v]<<endl; for(Int i=0;i<(Int)vp2.size();i++){ if(vp2[i].second<0) continue; vp2[i].first+=(cnt[v]%2 != (s[v]=='W')); } dp[1][v]+=(cnt[v]%2 != (s[v]=='W')); if(cnt[v]%2 != (s[v]=='W')) ans++; //cout<<v<<":"<<cnt[v]<<" "<<s[v]<<":"<<(cnt[v]%2 != (s[v]=='W'))<<endl; sort(vp1.rbegin(),vp1.rend()); sort(vp2.rbegin(),vp2.rend()); //cout<<v<<":"<<vp1[0].first<<" "<<vp2[0].first<<endl; //cout<<v<<":"<<vp1[0].first+vp2[vp1[0].second==vp2[0].second].first<<endl; //cout<<v<<":"<<vp2[0].first+vp1[vp1[0].second==vp2[0].second].first<<endl; chmax(dec,vp1[0].first+vp2[vp1[0].second==vp2[0].second].first); chmax(dec,vp2[0].first+vp1[vp1[0].second==vp2[0].second].first); }; Int r=-1; for(Int i=0;i<n;i++){ if(s[i]=='B') continue; dfs(r=i,-1); break; } //cout<<ans<<endl; cout<<ans-dec*2<<endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | F - Monochrome Cat |
User | beet |
Language | C++14 (GCC 5.4.1) |
Score | 800 |
Code Size | 2780 Byte |
Status | AC |
Exec Time | 209 ms |
Memory | 38640 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 800 / 800 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 0_000.txt, 0_001.txt, 0_002.txt, 0_003.txt |
All | 0_000.txt, 0_001.txt, 0_002.txt, 0_003.txt, 1_003.txt, 1_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 1_011.txt, 1_012.txt, 1_013.txt, 1_014.txt, 1_015.txt, 1_016.txt, 1_017.txt, 1_018.txt, 1_019.txt, 1_020.txt, 1_021.txt, 1_022.txt, 1_023.txt, 1_024.txt, 1_025.txt, 1_026.txt, 1_027.txt, 1_028.txt, 1_029.txt, 1_030.txt, 1_031.txt, 1_032.txt, 1_033.txt, 1_034.txt, 1_035.txt, 1_036.txt, 1_037.txt, 1_038.txt, 1_039.txt, 1_040.txt, 1_041.txt, 1_042.txt, 1_043.txt, 1_044.txt, 1_045.txt, 1_046.txt, 1_047.txt, 1_048.txt, 1_049.txt, 1_050.txt, 1_051.txt, 1_052.txt, 1_053.txt, 1_054.txt, 1_055.txt, 1_056.txt, 1_057.txt, 1_058.txt, 1_059.txt, 1_060.txt, 1_061.txt, 1_062.txt, 1_063.txt, 1_064.txt, 1_065.txt, 1_066.txt, 1_067.txt, 1_068.txt, 1_069.txt, 1_070.txt, 1_071.txt, 1_072.txt, 1_073.txt, 1_074.txt, 1_075.txt, 1_076.txt, 1_077.txt, 1_078.txt, 1_079.txt, 1_080.txt, 1_081.txt, 1_082.txt, 1_083.txt, 1_084.txt, 1_085.txt, 1_086.txt, 1_087.txt, 1_088.txt, 1_089.txt, 1_090.txt, 1_091.txt, 1_092.txt, 1_093.txt, 1_094.txt, 1_095.txt, 1_096.txt, 1_097.txt, 1_098.txt, 1_099.txt, 1_100.txt, 1_101.txt, 1_102.txt, 1_103.txt, 1_104.txt, 1_105.txt, 1_106.txt, 1_107.txt, 1_108.txt, 1_109.txt, 1_110.txt, 1_111.txt, 1_112.txt, 1_113.txt, 1_114.txt, 1_115.txt, 1_116.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0_000.txt | AC | 2 ms | 256 KB |
0_001.txt | AC | 1 ms | 256 KB |
0_002.txt | AC | 1 ms | 256 KB |
0_003.txt | AC | 2 ms | 256 KB |
1_003.txt | AC | 1 ms | 256 KB |
1_004.txt | AC | 1 ms | 256 KB |
1_005.txt | AC | 1 ms | 256 KB |
1_006.txt | AC | 2 ms | 256 KB |
1_007.txt | AC | 2 ms | 256 KB |
1_008.txt | AC | 1 ms | 256 KB |
1_009.txt | AC | 1 ms | 256 KB |
1_010.txt | AC | 2 ms | 256 KB |
1_011.txt | AC | 1 ms | 256 KB |
1_012.txt | AC | 1 ms | 256 KB |
1_013.txt | AC | 1 ms | 256 KB |
1_014.txt | AC | 2 ms | 256 KB |
1_015.txt | AC | 2 ms | 256 KB |
1_016.txt | AC | 2 ms | 256 KB |
1_017.txt | AC | 1 ms | 256 KB |
1_018.txt | AC | 1 ms | 256 KB |
1_019.txt | AC | 2 ms | 256 KB |
1_020.txt | AC | 2 ms | 256 KB |
1_021.txt | AC | 2 ms | 256 KB |
1_022.txt | AC | 2 ms | 256 KB |
1_023.txt | AC | 2 ms | 256 KB |
1_024.txt | AC | 1 ms | 256 KB |
1_025.txt | AC | 2 ms | 256 KB |
1_026.txt | AC | 2 ms | 256 KB |
1_027.txt | AC | 1 ms | 256 KB |
1_028.txt | AC | 2 ms | 256 KB |
1_029.txt | AC | 2 ms | 256 KB |
1_030.txt | AC | 2 ms | 256 KB |
1_031.txt | AC | 2 ms | 256 KB |
1_032.txt | AC | 2 ms | 256 KB |
1_033.txt | AC | 2 ms | 256 KB |
1_034.txt | AC | 2 ms | 256 KB |
1_035.txt | AC | 2 ms | 256 KB |
1_036.txt | AC | 2 ms | 256 KB |
1_037.txt | AC | 2 ms | 256 KB |
1_038.txt | AC | 2 ms | 256 KB |
1_039.txt | AC | 2 ms | 256 KB |
1_040.txt | AC | 2 ms | 256 KB |
1_041.txt | AC | 2 ms | 256 KB |
1_042.txt | AC | 2 ms | 256 KB |
1_043.txt | AC | 1 ms | 256 KB |
1_044.txt | AC | 2 ms | 256 KB |
1_045.txt | AC | 47 ms | 11240 KB |
1_046.txt | AC | 61 ms | 16428 KB |
1_047.txt | AC | 78 ms | 8956 KB |
1_048.txt | AC | 93 ms | 22708 KB |
1_049.txt | AC | 108 ms | 27348 KB |
1_050.txt | AC | 87 ms | 19856 KB |
1_051.txt | AC | 90 ms | 10724 KB |
1_052.txt | AC | 19 ms | 2584 KB |
1_053.txt | AC | 62 ms | 8408 KB |
1_054.txt | AC | 31 ms | 3560 KB |
1_055.txt | AC | 96 ms | 10604 KB |
1_056.txt | AC | 42 ms | 4748 KB |
1_057.txt | AC | 3 ms | 512 KB |
1_058.txt | AC | 57 ms | 10648 KB |
1_059.txt | AC | 28 ms | 3564 KB |
1_060.txt | AC | 84 ms | 15416 KB |
1_061.txt | AC | 110 ms | 16892 KB |
1_062.txt | AC | 55 ms | 10016 KB |
1_063.txt | AC | 71 ms | 7076 KB |
1_064.txt | AC | 50 ms | 4908 KB |
1_065.txt | AC | 5 ms | 768 KB |
1_066.txt | AC | 81 ms | 7808 KB |
1_067.txt | AC | 21 ms | 2464 KB |
1_068.txt | AC | 54 ms | 5608 KB |
1_069.txt | AC | 30 ms | 2740 KB |
1_070.txt | AC | 56 ms | 4624 KB |
1_071.txt | AC | 73 ms | 8052 KB |
1_072.txt | AC | 55 ms | 5100 KB |
1_073.txt | AC | 11 ms | 1152 KB |
1_074.txt | AC | 7 ms | 768 KB |
1_075.txt | AC | 50 ms | 4272 KB |
1_076.txt | AC | 134 ms | 9480 KB |
1_077.txt | AC | 67 ms | 7816 KB |
1_078.txt | AC | 30 ms | 3096 KB |
1_079.txt | AC | 51 ms | 4276 KB |
1_080.txt | AC | 53 ms | 4744 KB |
1_081.txt | AC | 179 ms | 25072 KB |
1_082.txt | AC | 209 ms | 34800 KB |
1_083.txt | AC | 85 ms | 9072 KB |
1_084.txt | AC | 133 ms | 33520 KB |
1_085.txt | AC | 176 ms | 38640 KB |
1_086.txt | AC | 166 ms | 35312 KB |
1_087.txt | AC | 135 ms | 14308 KB |
1_088.txt | AC | 119 ms | 12772 KB |
1_089.txt | AC | 81 ms | 9828 KB |
1_090.txt | AC | 94 ms | 9828 KB |
1_091.txt | AC | 120 ms | 14308 KB |
1_092.txt | AC | 77 ms | 9828 KB |
1_093.txt | AC | 136 ms | 18672 KB |
1_094.txt | AC | 142 ms | 24304 KB |
1_095.txt | AC | 81 ms | 9584 KB |
1_096.txt | AC | 116 ms | 17648 KB |
1_097.txt | AC | 142 ms | 23664 KB |
1_098.txt | AC | 135 ms | 22384 KB |
1_099.txt | AC | 122 ms | 12520 KB |
1_100.txt | AC | 114 ms | 10984 KB |
1_101.txt | AC | 82 ms | 9576 KB |
1_102.txt | AC | 113 ms | 9576 KB |
1_103.txt | AC | 121 ms | 12520 KB |
1_104.txt | AC | 133 ms | 10728 KB |
1_105.txt | AC | 124 ms | 9712 KB |
1_106.txt | AC | 117 ms | 9584 KB |
1_107.txt | AC | 82 ms | 9584 KB |
1_108.txt | AC | 106 ms | 9712 KB |
1_109.txt | AC | 127 ms | 9712 KB |
1_110.txt | AC | 122 ms | 9712 KB |
1_111.txt | AC | 139 ms | 9712 KB |
1_112.txt | AC | 138 ms | 9712 KB |
1_113.txt | AC | 81 ms | 9584 KB |
1_114.txt | AC | 108 ms | 9712 KB |
1_115.txt | AC | 134 ms | 9584 KB |
1_116.txt | AC | 132 ms | 9712 KB |