cf#Wunder Fund Round 2016 -A - Slime Combining-简单数学

来源:互联网 发布:网络视听节目内容审核 编辑:程序博客网 时间:2024/06/11 04:37

。。。给你n个size=1的笑脸。每相邻2个笑脸可以合成一个大size的笑脸

if (n>= (1<<i))   //表示能分出2^i个size=1的脸,即得到2^(i-1)个size为2的笑脸,以此类推 则答案会有一个size=i+1的笑脸。。很好推

http://codeforces.com/contest/618/problem/A

#include <cstdio>#include <cmath>#include <cstring>#include <string>#include <algorithm>#include <iostream>#include <queue>#include <map>#include <set>#include <vector>#include<stack>using namespace std;  const double pi=acos(-1.0);const double eps=1e-6; const int inf=2147483647;int main(){int i,j;int ans[1005];int n;int ok=0;cin>>n;for (i=18;i>=0;i--){if (n>=(1<<i)){n-=(1<<i);ans[++ok]=i+1;}}for (i=1;i<=ok;i++){if (i!=1) printf(" ");printf("%d",ans[i]);}printf("\n");return 0;}


0 0
原创粉丝点击