05 2018 档案
摘要:sb dp 没啥好说的。。
阅读全文
摘要:思路:比较裸的状压 dp[ i ][ s ][ 0 ] 表示已经加入的牛的情况为s, 最后一个为i 的 混乱种数, dp[ i ][ s ][ 1 ]表示不混乱种数。
阅读全文
摘要:n >= 6 的时候减3, 最后分类讨论, 上个Java
阅读全文
摘要:思路:好难想啊, 考虑到应该从每个数字只有5个数字下手, 但是不知道到底该怎么写。。 首先我们将第一个串按数字的种类分类, 每一类里面有5个, 然后将第二个串里面的数字一个一个加,如果一个加入的第 i 个数为5, 那么也只会对第一个串中的 5 产生影响, 如果第一个串中5的位置为pos, 那么显然d
阅读全文
摘要:sb 线段树
阅读全文
摘要:题目大意:给你一棵技能树,如果要学习一个技能,那么它之前的技能要全部学完,第 i 个点需要ai 能学习 每条边有一个消耗c 如果支付c那么就能去掉这条边, 你还可以kejin 花费di 就能直接学习 第 i 个技能, 问你最少花费多少能学习到s。 思路:这个最小割好难想啊, 将每个点拆成两个点 i
阅读全文
摘要:找了半天bug 发现把q打成了p。。。 思路:用dp[ i ][ j ][ k ] 表示在 i 这个点 这个点的状态为 j (0:不选 1:属于奇联通块 2:属于偶联通块) 且 奇联通块 - 偶联通块 = k 的方案数, 这个统计的方案数不包括i这个点的联通块。
阅读全文
摘要:思路:找出最短路图, 然后求最小割。
阅读全文
摘要:思路:字典树+dp, dp[ i ] 表示 前缀到 i 能不能被理解, 如果dp[ i ] 是能被理解的那么, 把i + 1, i + 2 .... 在字典树上走,走到一个单词就转移。 ,这样可行的原因是因为模板串长度不超过10,所以字典树的深度不会超过10, 所以进行一次dp的复杂度为 10 *
阅读全文
摘要:思路:对于每个点出发bfs做一次dp, dp[ i ][ j ][ k ] 表示从枚举的该点能不能经过k个障碍物到达(i , j)。
阅读全文
摘要:思路:首先我们先了解一个性质, 对于一个邻接矩阵 edge 来说, (edge^t)[ i ][ j ] 表示走t次能从i 到 j 的路径条数,但是 这道题里面不是邻接矩阵,所以我们要拆点变成邻接矩阵然后矩阵快速幂。
阅读全文
摘要:F - Isomorphic Strings 题目大意:给你一个长度为n 由小写字母组成的字符串,有m个询问, 每个询问给你两个区间, 问你xi,yi能不能形成映射关系。 思路:这个题意好难懂啊。。。 字符串哈希, 将26个字符分开来hash, 那么check就变成啦, 区间内对应的26个字符的ha
阅读全文
摘要:思路:把每天拆乘两个点Xi, Yi 两堆点 建边过程: 1、从S向每个Xi连一条容量为a[ i ],费用为0的有向边。 2、从每个Yi向T连一条容量为a[ i ],费用为0的有向边。 3、从S向每个Yi连一条容量为inf,费用为c1的有向边。 4、从每个Xi向Xi + 1(i+1<=N)连一条容量为
阅读全文
摘要:prufer的应用。。 详细见这篇博客:https://www.cnblogs.com/dirge/p/5503289.html
阅读全文
摘要:数学题好难啊!!!! 最长长度不超过十位, 折半枚举。。。 题解
阅读全文
摘要:思路:二维前缀和, 枚举矩形左上端点。
阅读全文
摘要:思路:两次dp, 第一次行内, 第二次行间, 刚开始读错题。。要死了。
阅读全文
摘要:我居然用暴力跑过去了。。。 思路:两个区间合成一个新的区间才会产生冲突, 我们用并查集维护前缀和, 0 - n 个节点分别表示sum[ 0 ] - sum[ n ], d[ i ] 表示 前缀i 和它的父亲的差值, 那么对于两个在同一个并查集里的来说, 就表示这个区间的值已经知道啦, check一下
阅读全文
摘要:题目大意:给你n,k, 让你求 k % 1 + k % 2 + k % 3 + ..... + k % n的值。 思路:我们能将k % i 转换成 k - (k / i) * i,原式变为 n * k - Σi * (k / i), 因为 k / i 是向下取整, 所以一段连续的i里边肯定 存在k
阅读全文
摘要:思路:dp, 用dp[ i ][ j ][ u ][ v ] 表示, 有n个人,其中有j个是男生,后缀区间中男生人数减去女生人数的最大值为u, 女生人数减去男生人数 的最大值为v, 然后就能写出状态转移方程。
阅读全文
摘要:思路:因为每个人最多只能看到五个动物,我们考虑将其状压,f[ i ][ s ] 表示到了第 i 个位置, i, i + 1, i + 2, i + 3, i + 4这四个动物的状态为s, 此时的最大值。 因为它是一个环,所以我们考虑枚举前4位,这样就能dp啦,dp[i][s] = max(dp[i
阅读全文
摘要:这题好难啊! 我好菜啊! 思路:对于最多线段不相交, 我们可以按左端点sort之后,贪心取。 但是这个题要求选取的线段排序之后序号的字典序最小。 那么我们如果按序号贪心地从大往小往里放, 那么对于第k个线段,我们考虑放进去之后是能是还能保证所取的线段个数能 达到最大, 我们考虑函数cal(l, r)
阅读全文
摘要:思路:好像以前谁问过我这题。。。 状个压就好啦, 把包含在其他串中的字符串删掉, 预处理除每两个字符串之间的关系, dp[ state ][ i ] 表示在state的状态下, 最后一个字符串是第i个的最优解, 字典序最小的话暴力把转移过程中的字符串存下来 就好啦。
阅读全文
摘要:思路:分层dp,因为给的w都是a*(2 ^ b)的形式, 我们将这些物品按b分层, 我们设 dp[ i ][ j ]表示在 第 i 层 容量为(j << i)的最大值, 然后通过层与层之间dp 把dp[ i ][ j ] 扩充为 容量为(j << i) + W & ((1 << i - 1) - 1
阅读全文
摘要:B - Clique Problem 题目大意:给你坐标轴上n个点,每个点的权值为wi,两个点之间有边当且仅当 |xi - xj| >= wi + wj, 问你两两之间都有边的最大点集的大小。 思路:其实问题能转换为一堆线段问你最多能挑出多少个线段使其两两不相交。。 对于一个点来说可以变成[x -
阅读全文
摘要:博弈的题目做的还是太少啦。。。 不会写啊啊啊 思路:将每个石子看成一个游戏, 那么整个游戏sg值就是全部石子sg值的异或。
阅读全文
摘要:题目大意: 给你n个点求最小矩形覆盖。 思路:枚举凸包上的边然后,旋转卡壳找三个相应的为止把矩形的四个点求出来。
阅读全文
摘要:题目大意:给你n个点的一棵树, 每个点的权值为2^i ,让你删掉k个点使得剩下的权值和最大。 思路:这题还是比较好想的, 我们反过来考虑, 剩下一个的情况肯定是选第n个点,剩下两个 我们肯定优先考虑第n - 1 个点, 因为其他点全部加起来都没有这个点的权值大, 所以我们可以 以第n个点为根, 倍增
阅读全文
摘要:思路:dp + 容斥, 我们先算出四种硬币的个数都没有限制的组成s的种类 减去 不符合个数限制的种类组成s 的种类。 注意dp的去重。
阅读全文
摘要:思路:写的时候感觉是贪心但是没有什么思路... 看了题解,原来有一个选了能反悔的贪心思路, 如果最优那么每个城市只能和旁边的相邻 城市连边,所以问题变成了由n个数,不能取相邻的两个数,取k个最小是多少。 我们将这n个数放进优先队列里边贪心地取小的,取完最小 的之后,把当前这个now和当前这个的左边l
阅读全文
摘要:题目大意:有一棵树根为1,刚开始每条边的权值为1, 现在有m + n - 1 个操作, A :x y , 将x和y相连的边权值变为1, W:x, 询问x到1路径上的权值和。 思路 : 方法一: 用dfs序建立树状数组, 每个点入栈位置的值为1, 出栈为-1, 询问的值就是sum( l [ x ] )
阅读全文
摘要:求最长反链裸题 补充一点知识。。 链 : D 中的一个子集 C 满足 C 是全序集 及C中所有元素都可以比较大小 反链 : D 中的一个子集 B 满足 B 中任意非空子集都不是全序集 即所有元素之间都不可以比较大小 链覆盖 : 若干个链的并集为 D ,且两两之间交集为 ∅ 反链覆盖 : 若干个反链的
阅读全文
摘要:题意:给你一个有向图,每个点有一个权值,有一个起点和q个终点,没经过一个点加上这个点的权值,让你选一条路,问你最大值是多少。 思路:tarjan强连通缩个点, 然后在拓扑图上dp一下就好啦, 注意第二次建图建反向边会好一点。
阅读全文
摘要:1 #include 2 #define LL long long 3 #define fi first 4 #define se second 5 #define mk make_pair 6 #define pii pair 7 8 using namespace std; 9 10 const int N=2000+7; 11 const int M=1e4+7; 1...
阅读全文
摘要:题目大意:有n个点, 每个点有一个数字0 - 9, 第 i 个点只能到 第(i * i + 1)个点,问你在哪个点出发走n次构成的数字串最大。 思路:利用求后缀数组的倍增比较思想, 许多细节需要注意。
阅读全文
摘要:题目大意: 给你一个n × m 的图,有p种宝箱, 每个点上有一个种类为a[ i ][ j ]的宝箱,a[ i ][ j ] 的宝箱里有 a[ i ][ j ] + 1的钥匙,第一种宝箱是没有锁的, 第p类宝箱只有一个且里面由宝藏,你现在在(1 ,1)问你最少需要多少步才能拿到宝藏。 (n, m <
阅读全文
摘要:题意: 链接:https://www.nowcoder.com/acm/contest/96/J一天durong同学买了一个无限长的杯子,同时买了n个球,并且标号为1,2,3......n,durong同学突然想到一个问题 如果他把n个球依次, 也就是按照1,2,3...n的顺序放进杯子里,然后在全
阅读全文
摘要:题目大意: 链接:https://www.nowcoder.com/acm/contest/84/E 给定n个数字a1, a2, ..., an。 定义f(l, r) = al | al+1| ... | ar。 现在枚举(1 <= l <= r <= n),问不同的f值一共有多少个。 思路:确定一
阅读全文
摘要:把点抽出来 跑个最短路就好啦。
阅读全文
摘要:推一推矩阵直接快速幂。
阅读全文
摘要:1 #include 2 #include 3 #define LL long long 4 #define fi first 5 #define se second 6 #define mk make_pair 7 #define pii pair 8 9 using namespace std; 10 11 const int N=2e5+7; 12 const int...
阅读全文

浙公网安备 33010602011771号