随笔分类 - ACM——动态规划
摘要:"题目链接" 题意 给出 n 个餐厅,m 个停车场,现在要将 n 个餐厅中的 m 个变成停车场,使得每个餐厅到最近的停车场的距离之和最短,输出哪个餐厅变成停车场和它服务哪些餐厅,还有最短距离之和。 思路 首先确定在 i 到 j 之间,一定是选择 i 和 j 的中位数那个餐厅作为停车场可以使得i到j的
阅读全文
摘要:"题目链接" 题意 给出一个n个结点的树,给出n 1个度的权值f[],代表如果一个点的度数为i,那么它对于答案的贡献有f[i]。问在这棵树最大的贡献能达到多少。 思路 对于这个图,有n 2 2个度可以分配(看成一条链的形状),首先可以确定n个点,那么每个点都是要分配一个度的,因此现在有n个f[1],
阅读全文
摘要:"题目链接" 题意 给出n个王国和n n的矩阵,mp[i][j] 代表第 i 个王国欠第 j 个王国 mp[i][j] 块钱。如果当前的王国处于负债状态,那么这个王国就会被消除,和它相连的王国的债务都会被清除。因此会产生连锁反应,使得最后可能只剩下一个王国。输出对于每种情况,最后可能只剩下的王国有哪
阅读全文
摘要:"题目链接" 题意 给出n个灯,m个开关,每个开关控制一些灯,如果打开这个开关,这个开关控制的灯如果本来灭的就会亮,如果本来亮的就会灭。问在每个开关按下与否的一共2^m情况下,每种状态下亮灯的个数的立方的和。 思路 对于枚举2^m种情况是不实际的。题目要求的求立方和暗含玄机。 设每个灯的状态为X。
阅读全文
摘要:"题目链接" 题意 给出一个n m的地图,还有一个操作序列,你原本是要按照序列执行操作的,但是你可以修改操作:删除某些操作或者增加某些操作,问从'R'到'E'最少需要多少次修改操作。 思路 和上次比赛做的一道字符串题目有点类似。 定义状态 dp[x][y][d] 代表在 (x,y) 这个点执行到了第
阅读全文
摘要:"题目链接" 题意 有n个人,每个人有一个出现时间a和一个开枪时间b和一个距离d,在任意一个时刻,你可以选择炸人,你要炸一个人的花费是和他的距离d,并且所有的已经出现并且还没开枪的和你距离 using namespace std; define N 605 const int INF = 0x3f3
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4055 题意:给一个仅包含‘I','D','?'的字符串,’I'表示前面的数字比后面的数字要小(Increase升序),'D'表示前面的数字比前面的数字要大(Decrease降序),'?'表示有可能是'I'也有可能
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4057 题意:给出n个子串,串只包含‘A’,'C','G','T'四种字符,你现在需要构造出一个长度为l的串,如果这个串里面包含了某个子串,那么答案就会+val[i](如果这个串被使用过了,就不会再有贡献了),要使
阅读全文
摘要:http://codeforces.com/gym/101341/problem/K 题意:给出n个区间,每个区间有一个l, r, w,代表区间左端点右端点和区间的权值,现在可以选取一些区间,要求选择的区间不相交,问最大的权和可以是多少,如果权和相同,则选区间长度最短的。要要求输出区间个数和选了哪些
阅读全文
摘要:https://scut.online/p/125 125. 笔芯回文 125. 笔芯回文 125. 笔芯回文 125. 笔芯回文 125. 笔芯回文 125. 笔芯回文 题目描述 bxbx有一个长度一个字符串SS,bxbx可以对其进行若干次操作。 每次操作可以删掉一个长度为k(1 \leq k \
阅读全文
摘要:http://hihocoder.com/problemset/problem/1496 题意:中文。 思路:一开始做有一种想法,把所有的数都变成二进制后,最优的情况肯定是挑选所有数中最高位的1能同时有一个以上的数。 例如样例2可以化成: 001 010 100 101 那么肯定挑选最高位的1(第三
阅读全文
摘要:http://lx.lanqiao.cn/problem.page?gpid=T414 题意:…… 思路:很普通的区间DP,但是因为n<=1000,所以O(n^3)只能拿90分。上网查了下了解了平行四边形优化:地址。 但是看不懂。
阅读全文
摘要:http://lx.lanqiao.cn/problem.page?gpid=T417 题意:…… 思路:n=1000,一开始觉得区间DP会超时,后来想不到其他做法就这样做了,居然没超时。 状态转移:dp[l][r] = min(dp[l][r], dp[l][k] * dp[k][r] + num
阅读全文
摘要:http://codeforces.com/contest/348/problem/B 题意:给一棵树,每个叶子结点有w[i]个苹果,每个子树的苹果数量为该子树所有叶子结点苹果数量之和,要使得每个结点的各个子树苹果数量相等,求至少需要拿走的苹果数量。 思路:一开始以为只要使得所有子树之和相同就行了。
阅读全文
摘要:http://codeforces.com/gym/100623/attachments 题意:问1到n里面有多少个数满足:本身被其各个数位加起来的和整除。例如120 % 3 == 0,111 % 3 == 0,都算。 思路:老是写不出数位DP。。。 因为n最大为12位,所以取模的数最大可以是9*1
阅读全文
摘要:http://lx.lanqiao.cn/problem.page?gpid=T294 题意:中文题意。 思路:1、一开始想的是,乘号就相当于隔板,把隔板插入到序列当中,同一个隔板的就是使用加法运算,然后求最大值。也没有证明这个想法的正确性就蒙头写了。然后第一个数据就错了,还是挺良心的可以看第一个数
阅读全文
摘要:http://codeforces.com/gym/101246/problem/H 题意:在二维平面上有n个点,从最左下角的点出发,每次走只能走在当前的点的右上角的点(xj > xi, yj > yi)。问在走了最长路径的前提下有哪些点是可能被走到的,哪些点是必须被走到的。 思路:比赛的时候以为是
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1561 题意:有n个点,容量为m,每个点有一个价值,还给出n条边,代表选第i个点之前必须先选ai,问最多的价值能取多少。 思路:每个点的花费是1,价值为w[i],然后直接按照树型背包写就行了。 还是老套路。 dp[
阅读全文
摘要:http://codeforces.com/gym/100502/attachments 题意:有n个点,容量为tol,接下来n个关系,表示选了第i个点,那么第xi个点就必须被选。问最多可以选多少个点使得不超过容量tol。 思路:由题目样例可得,边可能出现自环的情况,这个时候这条边其实没用。然后因为
阅读全文
摘要:http://codeforces.com/gym/101246/problem/C 题意:给出一个n*m的图,“*”表示这个地方需要炸掉,炸弹可以如果丢在(i,j)位置的话,那么可以炸掉第i行第j列的所有“*”。问最少需要丢多少个炸弹可以使得所有“*”被炸掉。 思路:一看就以为是个最小顶点覆盖。然
阅读全文