zoukankan      html  css  js  c++  java
  • uva12063数位dp

    辣鸡军训毁我青春!!!

    因为在军训,导致很长时间都只能看书yy题目,而不能溜到机房鏼题

    于是在猫大的帮助下我发现这道习题是数位dp

    然后想起之前讲dp的时候一直在补作业所以没怎么写,然后就试了试

    果然dp的代码比数据结构题短到不知道哪里去了,而且1A,爽啊

     1 #include <cstdio>
     2 int t=1,T,n,m;
     3 long long dp[65][100][130];
     4 int main()
     5 {
     6     for(scanf("%d",&T);t<=T;t++)
     7     {
     8         scanf("%d%d",&n,&m);
     9         printf("Case %d: ",t);
    10         if((n&1)||(!m))
    11         {
    12             printf("0
    ");
    13             continue;
    14         }
    15         for(int i=1;i<=n;i++)
    16             for(int j=0;j<m;j++)
    17                 for(int k=0;k<=2*n;k++)
    18                     dp[i][j][k]=0;
    19         dp[1][1%m][1+n]=1;
    20         for(int i=2;i<=n;i++)
    21             for(int j=0;j<m;j++)
    22                 for(int k=0;k<=2*n;k++)
    23                 {
    24                     if(k>0)
    25                         dp[i][j*2%m][k-1]+=dp[i-1][j][k];
    26                     if(k<2*n)
    27                         dp[i][(j*2+1)%m][k+1]+=dp[i-1][j][k];    
    28                 }
    29         printf("%lld
    ",dp[n][0][n]);
    30     }
    31     return 0;
    32 }

    良心样例,本来我没开longlong的,样例都已经炸int了就改掉了

  • 相关阅读:
    EL表达式 (详解)
    宜信面试整理
    Java 合并两个排序数组
    动态规划初识(爬楼梯问题)
    二叉树的最小深度
    ElasticSearch 单字符串多字段查询评分问题
    ES 分词
    汽车之家 面试总结
    浪潮之巅读书笔记
    闲徕互娱 面试总结
  • 原文地址:https://www.cnblogs.com/wanglichao/p/5798712.html
Copyright © 2011-2022 走看看