提出 #63110177
ソースコード 拡げる
// LUOGU_RID: 204468291
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define db double
#define pii pair<int,int>
#define pll pair<ll,ll>
#define F(i,l,r) for(int i = (l);i <= (r);++i)
#define D(i,r,l) for(int i = (r);i >= (l);--i)
#define vt vector
#define mem(a,x) memset(a,x,sizeof a)
#define fi first
#define se second
#define pb push_back
#define bug cerr<<"LINE:"<<__LINE__<<" "
mt19937 rd(std::chrono::steady_clock::now().time_since_epoch().count());
constexpr int N = 1e6+10;
constexpr ll inf = 1e18,mod = 998244353;
ll read(){
ll x = 0,f = 1;char c = getchar();
for(;c < '0' || c > '9';c = getchar())if(c == '-')f = -1;
for(;c >= '0' && c <= '9';c = getchar())x = (x<<1) + (x<<3) + c-'0';
return x * f;
}
void cmax(ll &x,ll y){x = max(x,y);}
void cmin(ll &x,ll y){x = min(x,y);}
int n;
int fa[N],w[N];
struct DSU{
int fa[N];
void build(){F(i,1,n)fa[i] = i;}
int find(int x){return x == fa[x] ? x : fa[x] = find(fa[x]);}
void merge(int x,int y){
x = find(x),y = find(y);
if(x == y)return;
fa[x] = y;
}
}U;
struct node{
ll s[2];
bool operator < (const node x)const{return s[1] * x.s[0] < x.s[1] * s[0];}
node operator + (const node x)const{return {s[0] + x.s[0],s[1] + x.s[1]};}
};
node v[N];
set<pair<node,int> >s;
ll val(node x,node y){return x.s[1] * y.s[0];}
void solve(){
n = read();
ll ans = 0;
F(i,2,n)fa[i] = read();
F(i,1,n)w[i] = read(),v[i].s[w[i]]++;
F(i,2,n)s.insert({v[i],i});
U.build();
while(s.size()){
auto it = s.begin();
int x = (*it).se;
int f = U.find(fa[x]);
s.erase({v[x],x});
ans += val(v[f],v[x]);
if(f != 1)s.erase({v[f],f});
U.fa[x] = f,v[f] = v[f] + v[x];
if(f != 1)s.insert({v[f],f});
}
printf("%lld\n",ans);
}
int main(){
int t = 1;
while(t--)solve();
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | F - 01 on Tree |
| ユーザ | _XU_ |
| 言語 | C++ 17 (gcc 12.2) |
| 得点 | 1700 |
| コード長 | 1810 Byte |
| 結果 | AC |
| 実行時間 | 159 ms |
| メモリ | 21740 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 1700 / 1700 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt, subtask_1_41.txt, subtask_1_42.txt, subtask_1_43.txt, subtask_1_44.txt, subtask_1_45.txt, subtask_1_46.txt, subtask_1_47.txt, subtask_1_48.txt, subtask_1_49.txt, subtask_1_50.txt, subtask_1_51.txt, subtask_1_52.txt, subtask_1_53.txt, subtask_1_54.txt, subtask_1_55.txt, subtask_1_56.txt, subtask_1_57.txt, subtask_1_58.txt, subtask_1_59.txt, subtask_1_60.txt, subtask_1_61.txt, subtask_1_62.txt, subtask_1_63.txt, subtask_1_64.txt, subtask_1_65.txt, subtask_1_66.txt, subtask_1_67.txt, subtask_1_68.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| sample_01.txt | AC | 1 ms | 3648 KiB |
| sample_02.txt | AC | 1 ms | 3708 KiB |
| sample_03.txt | AC | 1 ms | 3652 KiB |
| subtask_1_01.txt | AC | 1 ms | 3724 KiB |
| subtask_1_02.txt | AC | 83 ms | 19732 KiB |
| subtask_1_03.txt | AC | 46 ms | 12412 KiB |
| subtask_1_04.txt | AC | 106 ms | 21284 KiB |
| subtask_1_05.txt | AC | 120 ms | 20780 KiB |
| subtask_1_06.txt | AC | 19 ms | 6908 KiB |
| subtask_1_07.txt | AC | 70 ms | 16212 KiB |
| subtask_1_08.txt | AC | 29 ms | 11404 KiB |
| subtask_1_09.txt | AC | 79 ms | 16132 KiB |
| subtask_1_10.txt | AC | 23 ms | 8528 KiB |
| subtask_1_11.txt | AC | 9 ms | 5460 KiB |
| subtask_1_12.txt | AC | 54 ms | 13496 KiB |
| subtask_1_13.txt | AC | 49 ms | 11484 KiB |
| subtask_1_14.txt | AC | 57 ms | 12680 KiB |
| subtask_1_15.txt | AC | 12 ms | 5880 KiB |
| subtask_1_16.txt | AC | 20 ms | 9284 KiB |
| subtask_1_17.txt | AC | 21 ms | 7288 KiB |
| subtask_1_18.txt | AC | 71 ms | 13684 KiB |
| subtask_1_19.txt | AC | 17 ms | 6356 KiB |
| subtask_1_20.txt | AC | 53 ms | 13652 KiB |
| subtask_1_21.txt | AC | 17 ms | 7292 KiB |
| subtask_1_22.txt | AC | 85 ms | 15828 KiB |
| subtask_1_23.txt | AC | 75 ms | 14248 KiB |
| subtask_1_24.txt | AC | 59 ms | 14412 KiB |
| subtask_1_25.txt | AC | 31 ms | 10268 KiB |
| subtask_1_26.txt | AC | 72 ms | 15060 KiB |
| subtask_1_27.txt | AC | 89 ms | 16388 KiB |
| subtask_1_28.txt | AC | 47 ms | 12852 KiB |
| subtask_1_29.txt | AC | 84 ms | 18716 KiB |
| subtask_1_30.txt | AC | 60 ms | 21604 KiB |
| subtask_1_31.txt | AC | 58 ms | 21692 KiB |
| subtask_1_32.txt | AC | 93 ms | 21696 KiB |
| subtask_1_33.txt | AC | 94 ms | 21608 KiB |
| subtask_1_34.txt | AC | 102 ms | 21640 KiB |
| subtask_1_35.txt | AC | 103 ms | 21640 KiB |
| subtask_1_36.txt | AC | 125 ms | 21740 KiB |
| subtask_1_37.txt | AC | 128 ms | 21696 KiB |
| subtask_1_38.txt | AC | 105 ms | 21680 KiB |
| subtask_1_39.txt | AC | 61 ms | 21528 KiB |
| subtask_1_40.txt | AC | 56 ms | 21600 KiB |
| subtask_1_41.txt | AC | 113 ms | 21548 KiB |
| subtask_1_42.txt | AC | 97 ms | 21696 KiB |
| subtask_1_43.txt | AC | 102 ms | 21676 KiB |
| subtask_1_44.txt | AC | 103 ms | 21600 KiB |
| subtask_1_45.txt | AC | 123 ms | 21556 KiB |
| subtask_1_46.txt | AC | 124 ms | 21608 KiB |
| subtask_1_47.txt | AC | 105 ms | 21672 KiB |
| subtask_1_48.txt | AC | 40 ms | 21616 KiB |
| subtask_1_49.txt | AC | 56 ms | 21608 KiB |
| subtask_1_50.txt | AC | 118 ms | 21704 KiB |
| subtask_1_51.txt | AC | 144 ms | 21584 KiB |
| subtask_1_52.txt | AC | 159 ms | 21552 KiB |
| subtask_1_53.txt | AC | 103 ms | 21584 KiB |
| subtask_1_54.txt | AC | 98 ms | 21672 KiB |
| subtask_1_55.txt | AC | 135 ms | 21564 KiB |
| subtask_1_56.txt | AC | 144 ms | 21676 KiB |
| subtask_1_57.txt | AC | 103 ms | 21676 KiB |
| subtask_1_58.txt | AC | 96 ms | 21612 KiB |
| subtask_1_59.txt | AC | 124 ms | 21612 KiB |
| subtask_1_60.txt | AC | 133 ms | 21692 KiB |
| subtask_1_61.txt | AC | 101 ms | 21668 KiB |
| subtask_1_62.txt | AC | 99 ms | 21568 KiB |
| subtask_1_63.txt | AC | 87 ms | 21692 KiB |
| subtask_1_64.txt | AC | 95 ms | 21644 KiB |
| subtask_1_65.txt | AC | 92 ms | 21672 KiB |
| subtask_1_66.txt | AC | 78 ms | 19772 KiB |
| subtask_1_67.txt | AC | 38 ms | 12616 KiB |
| subtask_1_68.txt | AC | 91 ms | 21364 KiB |