zoukankan      html  css  js  c++  java
  • POJ 3181 Dollar Dayz

    一开始看到题目,就写了一个完全背包,然后一直wa,百度一下,蛋疼的是 结果是大数

    模拟高精度

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<string>
     5 #include<set>
     6 #include<vector>
     7 #include<map>
     8 #include<algorithm>
     9 #include<cmath>
    10 #include<stdlib.h>
    11 using namespace std;
    12 int  need,dp1[1010][100];
    13 void add(int x,int y)
    14 {
    15     for(int i=0;i<50;i++)
    16     {
    17         dp1[x][i]+=dp1[y][i];
    18         while(dp1[x][i]>=10)
    19         {
    20             dp1[x][i+1]++;
    21             dp1[x][i]-=10;
    22         }
    23     }
    24 }
    25 int main()
    26 {
    27     int k,i,j;
    28     while(cin>>need>>k)
    29     {
    30         memset(dp1,0,sizeof(dp1));
    31         dp1[0][0]=1;
    32         for(i=1; i<=k; i++)
    33             for(j=i;j<=need;j++)
    34                add(j,j-i);
    35        for(i=49;i>=0;i--)
    36        if(dp1[need][i]!=0)
    37        {
    38            for(j=i;j>=0;j--)
    39            cout<<dp1[need][j];
    40            cout<<endl;
    41            break;
    42        }
    43     }
    44 }

    在网上看到用两个长整型的数来表示一个大数,无耻地敲了一下

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<string>
     5 #include<set>
     6 #include<vector>
     7 #include<map>
     8 #include<algorithm>
     9 #include<cmath>
    10 #include<stdlib.h>
    11 using namespace std;
    12 const long long inf=1000000000000000000;
    13 long long  need,dp1[1010],dp2[1010];
    14 int main()
    15 {
    16     int k,i,j;
    17     while(cin>>need>>k)
    18     {
    19         memset(dp1,0,sizeof(dp1));
    20         memset(dp2,0,sizeof(dp2));
    21         dp2[0]=1;
    22         for(i=1; i<=k; i++)
    23         {
    24             for(j=i;j<=need;j++){
    25                dp1[j]+=dp1[j-i]+(dp2[j-i]+dp2[j])/inf;
    26                dp2[j]=(dp2[j-i]+dp2[j])%inf;
    27             }
    28         }
    29         if(dp1[need]==0)
    30         cout<<dp2[need]<<endl;
    31         else
    32         cout<<dp1[need]<<dp2[need]<<endl;
    33     }
    34 }
  • 相关阅读:
    IE9的兼容性
    element 弹框关闭报错
    时间选择器moment格式化存在时差问题
    项目常见bug
    函数封装——函数封装——函数封装
    element-ui 日期选择器范围时间限制
    vue + element 创建教程
    Html基础学习
    HTML、PHP、CSS、JS之间的关系
    vs连接MySQL
  • 原文地址:https://www.cnblogs.com/ainixu1314/p/3844086.html
Copyright © 2011-2022 走看看