2017年10月17日
摘要: 题解: 首先计算第一个答案,很明显就是最短路 初始代价是一开始配置的代价 当i+j配成k的时候,建i->k,j->k的边,价值为a[i]+a[j](a[i],a[j]都算过了) 那么计算第二个问题 当每一种药水的初始值没有变过的时候,合成方案位1,否则位0 然后看看哪两种药水可以合成位新的药水 dp 阅读全文
posted @ 2017-10-17 19:57 宣毅鸣 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题解: 要求有几种方案可以越狱,可以用总方案-不会越狱的方案 那么总方案就是m^n 那么考虑不会越狱的方案 显然第一个人有m中,后面都是m-1中(和前一个不一样) 答案就是m^n-m*(m-1)^(n-1) 代码: 阅读全文
posted @ 2017-10-17 19:30 宣毅鸣 阅读(99) 评论(0) 推荐(0) 编辑
  2017年10月14日
摘要: 题解; 状压dp,枚举出来状态 枚举当前哪一个棋子移动 枚举怎么移动 代码: 注意: f[x]在变化的时候,要在min里面加1 不然会wa 阅读全文
posted @ 2017-10-14 19:34 宣毅鸣 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题解: 分类讨论 当m=1的时候,很简单的dp,这里就不再复述了 当m=2的时候,设dp[i][j][k]表示有k个子矩阵,第一列有i个,第二列有j个 然后枚举一下当前子矩阵,状态转移 代码: 阅读全文
posted @ 2017-10-14 18:55 宣毅鸣 阅读(129) 评论(0) 推荐(0) 编辑
  2017年10月9日
摘要: 题目: 1. 中位数 【问题描述】 给定C个不同物品,每个物品有一重量和体积,保证每个物品的重量不一样。从中选出N个物品,在体积不超过F的情况下,使得选出的物品的重量的中位数最大。所谓中位数,就是排序后处在最中间的重量,比如3,8,9,7,5的中位数是7。 【输入格式】 第一行:三个用空格分开的整数 阅读全文
posted @ 2017-10-09 20:37 宣毅鸣 阅读(341) 评论(0) 推荐(0) 编辑
  2017年10月8日
摘要: 题解: 暴力枚举每一种方案,然后hash判重 代码: 阅读全文
posted @ 2017-10-08 07:56 宣毅鸣 阅读(140) 评论(0) 推荐(0) 编辑
  2017年10月7日
摘要: 题目: 1.堆方块 【题目描述】 给定N个方块,排成一行,将它们编号1到N。 再给出P个操作: M i j表示将i所在的那一堆移到j所在那一堆的顶上。 C i表示一个询问,询问i下面有多少个方块。 你需要写一个程序来完成这些操作。 【输入文件】 第一行一个整数P。 接下来P行,每行一个操作。 【输出 阅读全文
posted @ 2017-10-07 16:46 宣毅鸣 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 题解: 二分图最大匹配,模板题 注意:当不能匹配的时候直接输出 注意:当不能匹配的时候直接输出 注意:当不能匹配的时候直接输出 重要的事情说三遍 代码: 阅读全文
posted @ 2017-10-07 16:43 宣毅鸣 阅读(113) 评论(0) 推荐(0) 编辑
  2017年10月5日
摘要: 题解: 如果i放了,j不能放,那么i->j见一条边 发现是一个有向无环图,那么就可以是二分图 很显然是要求这个图的最大独立集 最大独立集=n-最大匹配数 代码: 阅读全文
posted @ 2017-10-05 20:30 宣毅鸣 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题解: 分类讨论,f[i][j]表示前i个有j个的最大收获 f[i][j][k]同理 代码: 阅读全文
posted @ 2017-10-05 12:15 宣毅鸣 阅读(125) 评论(0) 推荐(0) 编辑