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

codeforces 1059C. Sequence Transformation【构造】

时间:2018-10-06 14:37:22      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:include   hide   c++   com   题目   href   std   open   code   

题目:戳这里

题意:有1,2,3...n这n个数,求一次这些数的gcd,删去一个数,直到剩下一个数为止。输出这n个gcd的最大字典序。

解题思路:一开始的gcd肯定是1,要让字典序最大,我们可以想到下一个应该是2。这样就要把所有的奇数全给删去,这样就要考虑一个特殊情况,就是把所有奇数删去之后,刚好n==1的时候。因为n==1的话,gcd就是剩下的那个数本身了。因此要特判n==3的情况。其他的时候循环删除奇数的操作。(要不是b题看不懂题意,这次也不会那么惨T T

具体看代码。

技术分享图片
 1 #include <bits/stdc++.h>
 2 typedef long long ll;
 3 const int maxn = 1e6 + 10;
 4 const int seed = 131;
 5 const ll mod = 998244353;
 6 const int inf = 0x3f3f3f3f;
 7 using namespace std;
 8 int main(){
 9 
10     int n, cnt = 1;
11     scanf("%d", &n);
12     while(n)
13     {
14         if(n == 3)
15         {
16             printf("%d %d %d", cnt, cnt, cnt * 3);
17             return 0;
18         }
19         for(int i = 1; i <= n / 2 + n % 2; ++i) printf("%d ", cnt);
20         n /= 2;
21         cnt *= 2;
22     }
23     return 0;
24 }
View Code

 

codeforces 1059C. Sequence Transformation【构造】

标签:include   hide   c++   com   题目   href   std   open   code   

原文地址:https://www.cnblogs.com/zmin/p/9747160.html

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