题目传送门

  1. /*
  2. 递推DP:官方题解
  3. 令Fi,j代表剩下i个人时,若BrotherK的位置是1,那么位置为j的人是否可能获胜
  4. 转移的时候可以枚举当前轮指定的数是什么,那么就可以计算出当前位置j的人在剩下i − 1个人时的位置
  5. (假设BrotherK所处的位置是1),然后利用之前计算出的F值判定此人是否可能获胜
  6. 时间复杂度为O(n3)
  7. dp[i][j] 表示有i个人,j位置的人是否可能胜利。dp[1][0] = 1; cnt = sum (dp[n][i]);
  8. 有最优化子结构,i个人可以由i-1个人的情况中每个能胜利的位置再走一步
  9. 取余小技巧:0~n-1
  10. */
  11. #include <cstdio>
  12. #include <iostream>
  13. #include <algorithm>
  14. #include <cstring>
  15. #include <string>
  16. #include <map>
  17. #include <vector>
  18. #include <set>
  19. #include <cmath>
  20. #include <queue>
  21. using namespace std;
  22. const int MAXN = 2e2 + ;
  23. const int INF = 0x3f3f3f3f;
  24. int dp[MAXN][MAXN];
  25. int s[MAXN];
  26. int main(void) //赛码 1005 Game
  27. {
  28. //freopen ("E.in", "r", stdin);
  29. int t, n, m;
  30. scanf ("%d", &t);
  31. while (t--)
  32. {
  33. scanf ("%d%d", &n, &m);
  34. for (int i=; i<=m; ++i)
  35. {
  36. scanf ("%d", &s[i]);
  37. }
  38. memset (dp, , sizeof (dp));
  39. dp[][] = ;
  40. for (int i=; i<=n; ++i)
  41. {
  42. for (int j=; j<n; ++j)
  43. {
  44. if (dp[i-][j])
  45. {
  46. for (int k=; k<=m; ++k)
  47. {
  48. dp[i][(j + s[k]) % i] = ;
  49. }
  50. }
  51. }
  52. }
  53. int cnt = ;
  54. for (int i=; i<n; ++i) if (dp[n][i]) cnt++;
  55. printf ("%d\n", cnt); int x = ;
  56. for (int i=; i<n; ++i)
  57. {
  58. if (dp[n][i])
  59. {
  60. printf ("%d", i + ); ++x;
  61. if (x < cnt) printf (" ");
  62. }
  63. }
  64. puts ("");
  65. }
  66. return ;
  67. }

递推DP 赛码 1005 Game的更多相关文章

  1. 递推DP URAL 1167 Bicolored Horses

    题目传送门 题意:k个马棚,n条马,黑马1, 白马0,每个马棚unhappy指数:黑马数*白马数,问最小的unhappy值是多少分析:dp[i][j] 表示第i个马棚放j只马的最小unhappy值,状 ...

  2. 递推DP URAL 1017 Staircases

    题目传送门 /* 题意:给n块砖头,问能组成多少个楼梯,楼梯至少两层,且每层至少一块砖头,层与层之间数目不能相等! 递推DP:dp[i][j] 表示总共i块砖头,最后一列的砖头数是j块的方案数 状态转 ...

  3. 递推DP URAL 1260 Nudnik Photographer

    题目传送门 /* 递推DP: dp[i] 表示放i的方案数,最后累加前n-2的数字的方案数 */ #include <cstdio> #include <algorithm> ...

  4. 递推DP URAL 1353 Milliard Vasya's Function

    题目传送门 /* 题意:1~1e9的数字里,各个位数数字相加和为s的个数 递推DP:dp[i][j] 表示i位数字,当前数字和为j的个数 状态转移方程:dp[i][j] += dp[i-1][j-k] ...

  5. 递推DP URAL 1119 Metro

    题目传送门 /* 题意:已知起点(1,1),终点(n,m):从一个点水平或垂直走到相邻的点距离+1,还有k个抄近道的对角线+sqrt (2.0): 递推DP:仿照JayYe,处理的很巧妙,学习:) 好 ...

  6. 递推DP HDOJ 5328 Problem Killer

    题目传送门 /* 递推DP: 如果a, b, c是等差数列,且b, c, d是等差数列,那么a, b, c, d是等差数列,等比数列同理 判断ai-2, ai-1, ai是否是等差(比)数列,能在O( ...

  7. hdu1978(递推dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1978 分析: 递推DP. dp[][]表示可以到达改点的方法数. 刚开始:外循环扫描所有点dp[x][ ...

  8. 递推DP URAL 1031 Railway Tickets

    题目传送门 /* 简单递推DP:读题烦!在区间内的都更新一遍,dp[]初始化INF 注意:s1与s2大小不一定,坑! 详细解释:http://blog.csdn.net/kk303/article/d ...

  9. 递推DP UVA 607 Scheduling Lectures

    题目传送门 题意:教授给学生上课,有n个主题,每个主题有ti时间,上课有两个限制:1. 每个主题只能在一节课内讲完,不能分开在多节课:2. 必须按主题顺序讲,不能打乱.一节课L时间,如果提前下课了,按 ...

随机推荐

  1. Lua中的常用函数库汇总

    lua库函数 这些函数都是Lua编程语言的一部分, 点击这里了解更多. assert(value) - 检查一个值是否为非nil, 若不是则(如果在wow.exe打开调试命令)显示对话框以及输出错误调 ...

  2. js打印(控件)及多种方式

    非常好用的LODOP打印控件 Lodop打印控件简单使用方法 1.安装. 2.调用LodopFuncs.js文件. 3.增加OBJECT对象 <script language="jav ...

  3. [Effective JavaScript 笔记]第48条:避免在枚举期间修改对象

    注册列表示例 一个社交网络有一组成员,每个成员有一个存储其朋友信息的注册列表. function Member(name){ this.name=name; this.friends=[]; } va ...

  4. Unity3D Optimizing Graphics Performance for iOS

    原地址:http://blog.sina.com.cn/s/blog_72b936d801013ptr.html icense Comparisons http://unity3d.com/unity ...

  5. CH round #55 Streaming #6

    T^T Saffah大神照样刷我这样诚心诚意想做一套NOIP模拟题的蒟蒻. 第一题 九九归一 好diao的名字... 题意就是给定一队$n,q$,求在模$n$意义下一个数$x$自乘的循环节长度. 当$ ...

  6. 如何在android的mk文件添加依赖已经编译好的库

    用$(MY_LIB)是代表你的库的所在目录,目录结构是这样 MY_LIB |---include |-----xxx.h |-----xxx.h |---lib |----MYLIB.a LOCAL_ ...

  7. 让Delphi的DataSnap发挥最大效率

    让Delphi的DataSnap发挥最大效率 让Delphi的DataSnap发挥最大效率 一个DataSnap的应用程序由两个层组成: DataSnap服务器,它有一个带有一个或者更多DataSet ...

  8. Java for LeetCode 063 Unique Paths II

    Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. How m ...

  9. tomcat启动,输出system.out.println()

    tomcat6.0在使用System.out.println("aa")的时候,用cmd启动startup.bat,弹出的那个cmd窗口看到 还可以看logs/catalina.o ...

  10. 【USACO】milk3

    倒牛奶的问题, 开始看感觉跟倒水的问题很像, 想直接找规律, 写个类似于循环取余的代码. 但后来发现不行,因为这道题有三个桶,水量也是有限制的.只好用模拟的方法把所有的情况都试一遍. 建一个state ...