码迷,mamicode.com
首页 > 其他好文 > 详细

079C.D Decrease 构造+思维

时间:2017-07-30 10:02:48      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:lld   题意   n+1   bit   return   div   clu   ret   序列   

题意:op:选出最大值减去n,其余值加上1. 构造出长度为n的序列,使得其经过k次操作后,每个元素都小于等于n-1. k<=1e16

逆操作:选一个元素加上n,其余减去1.(经过逆操作后,加上n个要为最大,其余不能<0)
k次操作后每个元素都小于等于n,最后的序列若能经过k次合法的逆操作就能得到答案.
构造最后的序列为
:0,1,2...n-1 k=0
:n,0,1...n-2 k=1
:n-1,n,0,.n-3 k=2
.....
2,3,4.....0 k=n-1.
1,2,3.....n k=n 经过n次操作后的序列和初始偏差一
则最后的序列开头为k/n...剩下k%n个操作暴力即可.

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+20;
const ll inf=1e16+1000;
ll k,n,a[N];
int main()
{
	while(cin>>k)
	{
		n=50;
		ll num=k/n,re=k%n;
		for(int i=1;i<=n;i++)
			a[i]=num+i-1;
		for(int p=1;p<=re;p++)
		{
			for(int i=1;i<=n;i++)
			{
				if(i==p)
					a[i]+=n;
				else
					a[i]--;
			}
		}
		printf("%lld\n",n);
		for(ll i=1;i<=n;i++)
			printf("%lld%c",a[i],i==n?‘\n‘:‘ ‘);
	}
	return 0;
}
//25720164523
//154320986863
//500000000000000000

  

 

 


题意:操作如上题,给出长度为n的序列a[i],为经过多少次操作后每个元素的值都小于等于n-1.
n<=50 a[i]<=1e16。

每次操作总和减小1,l=sum-n*(n-1) r=sum n^2枚举ans
等价操作:先给每个元素加上x后,还剩下x次减n+1操作. 

若有元素大于n-1则 肯定要用减法 判断使用次数是否超过即可

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+20;
const ll inf=1e16+1000;
ll a[N];
int n;
int main()
{
    while(cin>>n)
    {
        ll sum=0;
        for(int i=1;i<=n;i++)
            cin>>a[i],sum+=a[i];
        ll l=sum-n*(n-1),r=sum;
        for(ll k=l;k<=r;k++)
        {
            if(k<0)    continue;
            ll res=0;
            bool ok=true;
            for(int i=1;i<=n;i++)
            {
                ll dif=max(0ll,a[i]+k-n+1);
                ll x=dif/(n+1);
                if(dif%(n+1))
                    x++;
                res+=x;
            }
            if(res==k)
            {
                cout<<res<<endl;
                break;
            }
        }
    }
    return 0;
}
//25720164523
//154320986863
//500000000000000000

 

079C.D Decrease 构造+思维

标签:lld   题意   n+1   bit   return   div   clu   ret   序列   

原文地址:http://www.cnblogs.com/HIKARI1149/p/7258079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!