Codeforces Round #722 (Div. 2)Codeforces-1529 ABC
Posted JophieQu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #722 (Div. 2)Codeforces-1529 ABC相关的知识,希望对你有一定的参考价值。
掉了大分后发现cf涨了两个粉丝。?
A. Eshag Loves Big Arrays
void solves(){
int n;cin>>n;
int m=0x3f3f3f3f;
for(int i=0;i<n;++i){
cin>>a[i];
m=min(m,a[i]);
}
int cnt=0;
for(int i=0;i<n;++i){
if(a[i]>m)++cnt;
}
cout<<(cnt ? cnt : 0)<<endl;
}
B. Sifid and Strange Subsequences
说不清是想复杂还是想简单,wa麻了,反正我sb。
void solves(){
int n;cin>>n;
int fu=0,o=0,z=0;
int m=mod;
vector<int>qq;
for(int i=0;i<n;++i){
cin>>a[i];
if(a[i]<0){
++fu;
qq.push_back(a[i]);
}
if(!a[i]) ++o;
if(a[i]>0) ++z;
if(a[i]>0) m=min(m,a[i]);
}
if(o==n){
cout<<n<<endl; return ;//==0
}
if(!fu){
if(o>1)cout<<o<<endl;
else cout<<(1+(o!=0))<<endl; return ; //>=0
}
if(!z){
cout<<fu+o<<endl; return ;//<=0
}
if(o>1){
cout<<fu+o<<endl; return ;
}
if(o)qq.push_back(0);
sort(qq.begin(),qq.end());
int len=mod;
for(int i=0;i<(int)qq.size()-1;++i){
len=min(len,abs(qq[i]-qq[i+1]));
}
cout<<((len>=m)+o+fu)<<endl;
}
C. Parsa’s Humongous Tree
应该是一颗无根树。
简要阐述一下
a
v
a_v
av的选取方法 以上是关于Codeforces Round #722 (Div. 2)Codeforces-1529 ABC的主要内容,如果未能解决你的问题,请参考以下文章 Codeforces Round #722 (Div. 2) 20210525 Codeforces Round #722 (Div. 2)Codeforces-1529 ABC Codeforces Round #722 (Div. 2)Codeforces-1529 ABCD Codeforces Round #722 (Div. 2)Codeforces-1529 ABCD
任选一个节点,设该结点v的权值为
a
v
∈
[
l
v
,
r
v
]
a_v\\in[l_v,r_v]
av∈[lv,rv]。设该结点连有
k
k
k条边,记其中
k
1
k_1
k1条边的权值为
a
v
1
i
a_{v1_i}
av1i且
a
v
1
i
>
a
v
a_{v1_i}>a_v
av1i>av,再记有
k
2
k_2
k2条边的权值为
a
v
2
j
a_{v2_j}
av2j且
a
v
2
j
<
a
v
a_{v2_j}<a_v
av2j<av,
k
=
k
1
+
k
2
k=k_1+k_2
k=k1+k2。
只看这个结点连出去的边,我们设它的beauty为S。
那么我们得到
S
=
∣
∑
i
=
1
k
1
a
v
1
i
−
k
1
∗
a
v
∣
+
∣
k
2
∗
a
v
−
∑
j
=
1
k
2
a
v
2
j
∣
S=|\\sum_{i=1}^{k_1}a_{v1_i}-k_1*a_v|+|k_2*a_v-\\sum_{j=1}^{k_2}a_{v2_j}|
S=∣∑i=1k1av1i−k1∗av∣+∣k2∗av−∑j=1k2av2j∣
化简得
S
=
∑
i
=
1
k
1
a
v
1
i
−
∑
j
=
1
k
2
a
v
2
j
+
(
k
2
−
k
1
)
∗
a
v
S=\\sum_{i=1}^{k_1}a_{v1_i}-\\sum_{j=1}^{k_2}a_{v2_j}+(k_2-k_1)*a_v
S=∑i=1k1av1i−∑j=1k2av2j+(k2−k1)∗av
当
k
2
>
k
1
k_2>k_1
k2>k1时,要使得S尽可能大,则要有
a
v
a_v
av取得最大值
r
v
r_v
rv
当
k
2
<
k
1
k_2<k_1
k2<k1时,要使得S尽可能大,则要有
a
v
a_v
av取得最小值
l
v
l_v
lv
当
k
2
=
k
1
k_2=k_1
k2=k1时,
a
v
a_v
av的取值并不影响S,为了方便解题,我们统一令
a
v
∈