Codeforces 394 div2总结

http://codeforces.com/contest/761
A
总步数在1-inf之间
给偶数个数 奇数个数 a,b从0开始
则a,b不能同时为0

int a,b;
	cin>>a>>b;
	if(a==0 && b==0)
		return puts("NO"),0;
	if(abs(a-b)==1 || abs(a-b)==0)
		puts("YES");
	else
		puts("NO"); 

B
n障碍物个数 L为环形长度
给定2人从起点到每个障碍物距离,递增
求两人路径是否concide重合 即环形上所有间隔相等

求余

在这里插入代码片

D
序列ai,bi在l-r范围内 l,r<=1e9
ci=bi-ai;保证ci值各不相同
pi代表c中小于等于当前ci的个数
小于等于ci个数越多说明值越大
个数可以代表ci的值
pi代表ci
则bi=ci+ai; 而且在l-r之间
bi中大于r的数与r的最大差值
统一减去后 判断有无数<l

ll a[maxn],p[maxn],b[maxn];//a[i]值在l-r内 p[i]:c中小于等于它的个数如果很多 这个值很大 个数可以代表值的大小 
int main()
{
	IO;
	int n;
	ll l,r;
	cin>>n>>l>>r;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	for(int i=1;i<=n;i++)
		cin>>p[i];
	ll need=0;
	for(int i=1;i<=n;i++)
	{
		b[i]=a[i]+p[i];//pi代表ci 
		if(b[i]>r)
			need=max(need,b[i]-r);
		
	} 
	int ok=1;
	for(int i=1;i<=n;i++)
	{
		b[i]-=need;
		if(b[i]<l)
		{
			ok=0;
			break;
		}
	}
	if(ok)
	{
		for(int i=1;i<=n;i++)
		{
		
			cout<<b[i];
			if(i!=n)
				cout<<" ";
			else
				cout<<endl;
		}
	}
	else
		cout<<-1<<endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_40423146/article/details/89434503
今日推荐