poj 3181 Dollar Dayz(揹包總方案數高精度)

這個題容易WA,通常不會注意高精度問題,但對於高精度的處理頗有技巧。html

推薦http://www.cnblogs.com/kuangbin/archive/2012/09/20/2695165.htmlios

裏面給了五種方法,很不錯ide

在這裏附上大神的代碼spa

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 using namespace std;
 5 
 6 long long a[1100],b[1100],inf;
 7 
 8 int main(){
 9     int n,k,i,j;
10     for(inf=1,i=0;i<18;i++) inf*=10;
11     scanf("%d%d",&n,&k);
12     memset(a,0,sizeof(a));
13     memset(b,0,sizeof(b));
14     a[0]=1;
15     for(i=1;i<=k;i++){
16         for(j=1;j<=n;j++){
17             if(j-i<0) continue;
18             b[j]=b[j]+b[j-i]+(a[j]+a[j-i])/inf;
19             a[j]=(a[j]+a[j-i])%inf;
20         }
21     }
22     if(b[n]) printf("%I64d",b[n]);
23     printf("%I64d\n",a[n]);
24     return 0;
25 }
View Code
相關文章
相關標籤/搜索