随笔分类 -  动规

摘要:1 #include <iostream> 2 #include <queue> 3 #include <stack> 4 #include <cstdio> 5 #include <vector> 6 #include <map> 7 #include <set> 8 #include <bits 阅读全文
posted @ 2017-08-23 00:53 Kcl886 阅读(187) 评论(0) 推荐(0)
摘要:题目大意:你是一个战士现在面对,一群狼,每只狼都有一定的主动攻击力和附带攻击力。你杀死一只狼。你会受到这只狼的(主动攻击力+旁边两只狼的附带攻击力)这么多伤害~现在问你如何选择杀狼的顺序使的杀完所有狼时,自己受到的伤害最小。(提醒,狼杀死后就消失,身边原本相隔的两只狼会变成相邻,而且不需要考虑狼围城 阅读全文
posted @ 2017-07-30 19:20 Kcl886 阅读(268) 评论(0) 推荐(0)
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 ... 阅读全文
posted @ 2017-05-18 20:25 Kcl886 阅读(193) 评论(0) 推荐(0)
摘要:1 //HDU - 5787为例 2 //求区间[L,R]内,任意相邻k位(如果位数不足k,就是全部的数位)没有两两相同的数位的数的个数 3 LL l,r; 4 int k; 5 int num[20]; 6 LL dp[20][10010][5]; 7 //pos表示当前处理的位置(一般从高到低) 8 //limit是限制当前这位能否随便取,即决定top=num[pos]或... 阅读全文
posted @ 2017-05-11 23:00 Kcl886 阅读(128) 评论(0) 推荐(0)
摘要:题意:一个b位的数Y,每一位的数可以从题目给的n个数里面选,问有多少种方案使得Y mod x == k? 思路:数位dp,另dp[i][k]表示前i位模x结果为k的方案数,则转移方程为:dp[i][(k*10+j)%x]+=dp[i-1][k]*num[j](0<=j<=9),num[j]为题目所给 阅读全文
posted @ 2017-03-02 21:05 Kcl886 阅读(300) 评论(0) 推荐(0)
摘要:题意:给定一个小写字母组成的字符串和每个小写字母最多存在长度为a[i]的子串中,输出满足条件的分割方案数,并输出所有方案中最长子串的长度和最少的分割次数。 思路:另dp[i]表示在第i个字符后面有一个横杠的方案数,从第i个往前枚举前一个横杠的位置j,设从i到合法的j的子串长度为l,则l=min(l, 阅读全文
posted @ 2017-02-09 20:07 Kcl886 阅读(309) 评论(0) 推荐(0)
摘要:题意:给定一颗n节点的树以及每个节点的权值,另dis(u,v)表示节点u到v路径上的异或和,求不大于i的节点与i组成的有序对的距离的和(1<=i<=n)。 思路:位运算的话大多可以想到按位拆分,统计每一位对答案的贡献,因为每一位的运算都是独立的。所以按位枚举,假设当前是第b位,则dp[x][0]表示 阅读全文
posted @ 2017-02-09 16:37 Kcl886 阅读(293) 评论(0) 推荐(0)
摘要:题意:给定一个01串,一个有效的n切割定义如下:一个横杠代表一次切割,第一条横杠前面的01串不算,最后一条横杠后面的01串不算,将两个横杠中的01串转化成十进制数字,假设这些数字的最大值是MAX且这些数字囊括了1-MAX的所有数字,则称为一次有效切割。求2~n+1次有效切割的切法。 思路: 由于题目 阅读全文
posted @ 2017-01-16 03:17 Kcl886 阅读(672) 评论(1) 推荐(2)
摘要:C. Coloring Trees time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output C. Coloring Trees time 阅读全文
posted @ 2016-09-02 15:47 Kcl886 阅读(227) 评论(0) 推荐(0)