2017年10月30日
摘要: Problem 每个软件都要安装某些软件才能安装,而且都有体积和价值,求安装的价值最大值 Solution 对于每个环,我们可以知道必须全部一起取或者不取,因此我们先用Tarjan缩点 然后我们用一个树形DP就可以解决了 Notice 注意这颗树是如果一个节点没取,后面就都不能取了 Code 阅读全文
posted @ 2017-10-30 20:17 WizardCowboy 阅读(147) 评论(0) 推荐(0) 编辑
摘要: Problem 给你一个2 n的矩阵,要求你用补充叠的矩阵去框,要求每个矩阵框中的数之和为0,问最多可以用几个矩阵。 Solution 首先预处理出一个点到离它最近的一段和为0的区间的左端点 然后到这往前用记忆化搜索的方式DP就可以了 Notice 注意要记忆化 Code 阅读全文
posted @ 2017-10-30 20:02 WizardCowboy 阅读(242) 评论(0) 推荐(0) 编辑
摘要: Problem 有一个2 n的方格矩阵 在一个格子上可以往旁边8个方向走(如果有格子),求有多少方案把2 n走完 Solution 我们用Fi表示从一个角出发走遍所有格子回到这一列另外一点的方案数 显然,F1 = 1,Fn = 2 Fn 1 = 2^(n 1) 我们再用Gi表示从一个角出发,走遍所有 阅读全文
posted @ 2017-10-30 16:10 WizardCowboy 阅读(109) 评论(0) 推荐(0) 编辑
  2017年10月26日
摘要: Problem 给你1个数n,求出0 ≤ x include include include include include using namespace std; define sqz main define ll long long define reg register int define 阅读全文
posted @ 2017-10-26 16:14 WizardCowboy 阅读(123) 评论(0) 推荐(0) 编辑
摘要: Problem 有n个小朋友坐成一圈,每人有ai个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。 求使每个人糖果数相同的最小代价。 Solution 我们假设第i为同学给了第i+1为同学Xi个糖果(n的后一位为1) 所以ans = X1 + X2 + X3 + ······ + X 阅读全文
posted @ 2017-10-26 16:08 WizardCowboy 阅读(164) 评论(0) 推荐(0) 编辑
摘要: Problem 给你2 n的格子,每个格子有一个字母,从任意一点出发,不重复的经过上下左右,生成要求的字符串。问有几种不同的走法。 Solution 分三段,左U型、中间、右U型。 分别枚举左边和右边的长度,中间一段用Dp来解决。 Dp[i][j][k],i,j,k表示当前在(i,j)位置,枚举到第 阅读全文
posted @ 2017-10-26 10:29 WizardCowboy 阅读(193) 评论(0) 推荐(0) 编辑
摘要: Problem 给一个由问号和数字组成的数字串A(问号表示任一数字)。 再给定n个数字Bi,和0~9的数字的价值。 F(x)表示x各个位数上的价值和。问A为何值时,sum(F(Bi+A))的值最大为多少。 1 ≤ A,Bi include include include include using 阅读全文
posted @ 2017-10-26 07:56 WizardCowboy 阅读(118) 评论(0) 推荐(0) 编辑
  2017年10月19日
摘要: Problem 给定一个字符串数的二进制表示(不含前导0)s(长度不超过5000), 对于一个数n(初值为0),可以进行以下两种操作: 1.将n的二进制表示(无前导0)写到已经写的串的后面. 2.n加上1. 问组成s的不同方法数以及最少用多少次操作能组成串s. Solution 对于第一问: 用f[ 阅读全文
posted @ 2017-10-19 20:56 WizardCowboy 阅读(202) 评论(0) 推荐(0) 编辑
  2017年10月18日
摘要: Problem 给你一棵树,最少删掉哪些边,能使得余下的至少有1个大小刚好为k的残树。 1 ≤ k ≤ n ≤ 400 Solution 用f[i][j]表示以i为根有j个节点的最少删边数量 因为此题要输出删除的边 v[i][j]表示以i为根删掉j个节点需要删去的边对应的(点u,该u点还需要删去的边 阅读全文
posted @ 2017-10-18 23:35 WizardCowboy 阅读(193) 评论(0) 推荐(0) 编辑
摘要: Problem 给定一个数x,有p%的概率乘2,有1 p%的概率加1,问操作k次,其二进制数下末尾零的个数的期望。 Solution 每次操作只会影响到最后的8位 我们用dp[i][j]表示i个操作后,后面的操作还需要加j 对于+1的操作:dp[i][j 1]+=dp[i 1][j] (1 p) 对 阅读全文
posted @ 2017-10-18 20:46 WizardCowboy 阅读(147) 评论(0) 推荐(0) 编辑