您的位置:首页 > 其它

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

2016-01-30 11:39 441 查看
。。。给你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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: