Codeforces Round #722 (Div. 2)Codeforces-1529 ABCD

Posted JophieQu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #722 (Div. 2)Codeforces-1529 ABCD相关的知识,希望对你有一定的参考价值。

掉了大分后发现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的选取方法
任选一个节点,设该结点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_1a_v1_i-k_1*a_v|+|k_2*a_v-\\sum_j=1^k_2a_v2_j| S=i=1k1av1ik1av+k2avj=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_1a_v1_i-\\sum_j=1^k_2a_v2_j+(k_2-k_1)*a_v S=i=1k1av1ij=1k2av2j+(k2k1)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 ∈ l v , r v

以上是关于Codeforces Round #722 (Div. 2)Codeforces-1529 ABCD的主要内容,如果未能解决你的问题,请参考以下文章

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

Codeforces Round #722 (Div. 2) 部分题解

Codeforces Round #722 (Div. 2) A~D 题解