boj 1202 分苹果问题 把苹果总数可以看成1+2+4.... 2的幂的和的形式

    技术2022-05-13  36

    用m个数表示1-n任意一个数,则可以考虑把n看成2的幂的和进行分解,m个数最多表示到2^m-1个数

     

     

     

    地址:http://acm.scs.bupt.cn/onlinejudge/showproblem.php?problem_id=1202

     

    AppleAndBox Submit: 552    Accepted:254 Time Limit: 1000MS  Memory Limit: 65536K

    DescriptionMonica有N个苹果和M个盘子,现在她需要将N个苹果分放到M个盘子里。因为Monica希望做到一个很好的分配策略,不论Chandler需要多少个(1到N)苹果时,她总能拿出若干盘,这些盘子里的苹果数之和就是Chandler所需要的,而不必重新调整每个盘子里的苹果。现在Monica告诉你N和M,请你帮她判断是否存在这样的分配策略。Input多则测试数据,以两个0结束。每组数据占一行,两个整数N,M。1 <= N < 2^32, 1 <= M <= 25Output对应每组输入数据,如果存在一种分配策略则输出“YES”,否则输出“NO”。Sample Input2 14 26 40 0Sample OutputNONOYESSource

     

     

    #include<iostream>using namespace std;int main(){    int n,m,i;    while(scanf("%d%d",&n,&m)!=EOF)    {        if(n==0&&m==0)        break;        if((1<<m)>n)           //关键代码,m个盘子最多可以表示(2^m)-1 个数 如3个盘子1+2+4          printf("YES/n");        else        printf("NO/n");                                                            }                  system("pause");            }


    最新回复(0)