Educational Codeforces Round 100 (Rated for Div. 2) B. Find The Array(思维)
构造一个美丽数组 b,要求在 b 数组中,任意两个相邻的数必须满足小的数整除大的数从第一个条件下手,很容易想到 1 a[2] 1 a[4] 1 的构造方法在验证算法正确性,其中将 a[2] a[4] 看作整体,a[1] a[3] a[5] 看作整体,一定有一方大于另一方,或者两者相等,所以成立const int N=2e5+5;int n,m;int i,j,k;int a[N];int t[N]
·
构造一个美丽数组 b,要求
- 在 b 数组中,任意两个相邻的数必须满足小的数整除大的数
从第一个条件下手,很容易想到 1 a[2] 1 a[4] 1 的构造方法
在验证算法正确性,
其中将 a[2] a[4] 看作整体,a[1] a[3] a[5] 看作整体,一定有一方大于另一方,或者两者相等,所以成立
const int N=2e5+5;
int n,m;
int i,j,k;
int a[N];
int t[N];
signed main()
{
//IOS;
rush(){
sd(n);
ll sum=0;
for(int i=1;i<=n;i++) sd(a[i]),sum+=a[i];
ll res=0;
for(int i=2;i<=n;i+=2) res+=(a[i]-1);
//dbg(sum); dbg(res);
if(2*res>sum)
for(int i=1;i<=n;i++) if(i&1) printf("1 "); else printf("%d ",a[i]);
else
for(int i=1;i<=n;i++) if(i&1) printf("%d ",a[i]); else printf("1 ");
puts("");
}
PAUSE;
return 0;
}
更多推荐



所有评论(0)