HDU2047 阿牛的EOF牛肉串

来源:互联网 发布:韩日军力对比知乎 编辑:程序博客网 时间:2024/03/29 12:40

今天帮学弟看了下这道题

顺便学习了一下学弟的思路

先对不是o的算出排列数,然后用o进行插入,插入的时候不用管原来的位置是怎样的,只需要保证两个数之间只插一个o。想了很久才想清楚

再说下学弟的问题,因为用到了pow函数,可能是测试网站编译器的pow函数不支持__int64,所以老错,后来终于找出原因了

#include<stdio.h>__int64 s(__int64 a,__int64 n){__int64 i;__int64 m=1;for(i=0;i<n;i++)m=m*(a-i)/(i+1);return m;}__int64 pow(__int64 a,__int64 b){    __int64 s=1;    for(int i=1;i<=b;i++) s*=a;    return s;}int main(){    #ifndef ONLINE_JUDGE    freopen("in.txt","r",stdin);    #endif // ONLINE_JUDGE      __int64 m;    __int64 n,i,j;  while(scanf("%I64d",&n)!=EOF)  {  j=n%2+n/2;  m=pow(2,n);  for(i=1;i<=n;i++)  m+=s(n-i+1,i)*pow(2,n-i);   printf("%I64d\n",m);  }  return 0;}


0 0
原创粉丝点击