C. Yet Another Array Restoration

https://codeforces.com/contest/1409/problem/C


思路:开始的时候发现数字都在50以内,然后发现其实最大的数字就是50,不会超过50。因为n再怎么样让间距为1总能放好。

然后贪心去想x和y中间最多放多少个,开始想了gcd和整除什么的,发现样例没过。然后发现只有50,那直接从小到大枚举x~y之间的间距,看看最多能放几个数就好了。

然后再把剩下的数从 x往前放,多了再从y往后放。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#define debug(a) cout<<#a<<"="<>t;
  while(t--)
  {
  	cin>>n>>x>>y;
  	if(n==2)
  	{
  		cout<0&&pre>=1)
		{
			res--;
			if(pre-cnt>0) pre-=cnt;	
			else break;
		} 
		for(LL i=0;i

 

你可能感兴趣的:(思维,贪心)