【构造】AtCoder Regular Contest 079 D - Decrease (Contestant ver.)
从n个t变化到n个t-1,恰好要n步,并且其中每一步的max值都>=t,所以把50个49当成最终局面,从这里开始,根据输入的K计算初始局面即可。
#include<cstdio> #include<iostream> using namespace std; typedef long long ll; ll K; int main(){ cin>>K; int n=50; printf("%d\n",n); ll a=K/(ll)n; ll b=K%(ll)n; int cnt=0; for(int i=1;i<=(int)b;++i){ ++cnt; cout<<49ll+a+((ll)n-(b-1ll))<<(cnt==n ? '\n' : ' '); } for(int i=1;i<=n-(int)b;++i){ ++cnt; cout<<49ll+a-b<<(cnt==n ? '\n' : ' '); } return 0; }
——The Solution By AutSky_JadeK From UESTC
转载请注明出处:http://www.cnblogs.com/autsky-jadek/