DP
cat_pikapikapi
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
nanchang B A Funny Bipartite Graph
题意是:给你一个二分图,让你在其中选一些边,边和边两边的点构成一个新图,然后问新图的最小代价? 新图要满足两个条件:右边的点必须全选,左边的点必须满足互斥关系。 原图也满足一些性质,每个点的度小于3,左边的每个点不会向左边编号比它小的点连边。 为什么爆搜能过,为什么爆搜能过,为什么爆搜能过。。。。。。 而且还比我快。 爆搜就是加个剪枝,如果当前的sum比ans大就不继续往下搜了。。。。不会...原创 2019-12-11 16:32:54 · 640 阅读 · 0 评论 -
The 2019 Asia Nanchang First Round Online Programming Contest C. Hello 2019
赛后发现是道原题。。。 比赛时想到了线段树维护dp,然而dp没有写好。。。 考虑如果只对原序列询问一次,那么可以o(n)的dp去做,dp[i][j]表示在i个位置达到状态j的最小花费,第二维的状态有{2},{20},{201},{2019}。 发现可以分开考虑在每个位置转移的花费,然后用线段树维护。 考虑两个不同区间状态的合并,可以暴力枚举中间转态,k^3的转移。 #includ...原创 2019-09-09 16:18:40 · 396 阅读 · 0 评论 -
Solid Dominoes Tilings HDU - 5731 (轮廓线 容斥 )
比较好玩的容斥,,, 如果不加限制的话,是一个经典的轮廓线dp。 加上限制之后,考虑利用容斥求出不合法的方案数。 最开始想的时候,想的是求出所有的方案数,减去所有列不合法的方案数,减去所有行不合法但列合法的方案数。。 但是好像过去麻烦,可以考虑再求得时候就保证行合法,这样就只需要减去列不合法的方案数。 只需要容斥一下,枚举所有可能的列状态,减去一列不合法的方案,加上两列不合法方案,,, ...原创 2019-08-28 16:13:52 · 175 阅读 · 0 评论 -
2019牛客1 i
大致题意:给你n个点,第i个点在的位置为(xi,yi),有两个属性值(ai,bi)。现在让你把这n个点划分为A和B两个部分,使得最后不存在i∈A和j∈B,使得xi>=xj且yi<=yj。然后对于所有的划分方法,找到并输出 比较巧妙的dp思路吧。。。。 ...原创 2019-08-02 14:25:26 · 164 阅读 · 0 评论 -
HDU-6065 RXD, tree and sequence(dp+LCA)
主要利用了LCA 的性质——一个区间的LCA等于区间内相邻点的深度最低的LCA。 所以这个问题就转化成选取k个相邻点的深度 或 单点的深度。 #include <bits/stdc++.h> using namespace std; #define N 300005 #define go(i,a,b) for(int i=(a);i<=(b);i++) #define i...原创 2019-07-12 10:12:39 · 178 阅读 · 0 评论 -
牛客第一场多校H Longest Path &&斜率dp
题意:给你一颗树,每条边有边权,定义每条路径长度为路径上相邻边 权值差的平方和。 树dp加斜率优化 #include <bits/stdc++.h> using namespace std; #define N 200005 #define ll long long #define go(i,a,b) for(int i=(a);i<=(b);i++) #define de...原创 2019-07-01 10:05:25 · 237 阅读 · 0 评论 -
Wavel Sequence HDU - 6078 (dp)
这个题,做的时候想了个cdq的做法,但是o(n^2 lognlogn)的,感觉上就会T死。 正解还是很巧妙的。。。 定义dp[i][j],1<=i<=n,0<=j<=1,表示以a[i]为结尾,大于或小于的情况。 枚举第二个数组的元素,对于每个元素,遍历第一个数组,用前缀和统计一个大于和小于的情况,遇到相等遍进行修改。 #include <bits/stdc+...原创 2019-07-14 10:48:58 · 233 阅读 · 0 评论 -
E.F(cf div2 Round 66)
E.Ehab and the Expected GCD Problem 题意:对n的一个排列,使这个排列中前缀的不同gcd个数最大,问有多少种这样的排列? 思路:考虑gcd的衰减,所以第一个数一定有最多的质因子个数。那么它一定是形如2^x*3^y,(其中y<=1)。因为任何比3大的质数都至少可以提供2个2,而3^2可以提供3个2。 所以我们可以考虑如下的dp: dp[i][j][k]...原创 2019-06-04 06:47:46 · 201 阅读 · 0 评论 -
牛客多校第一场 B Symmetric Matrix
链接:https://ac.nowcoder.com/acm/contest/139/B 来源:牛客网 题目描述 Count the number of n x n matrices A satisfying the following condition modulo m. * Ai, j ∈ {0, 1, 2} for all 1 ≤ i, j ≤ n. * Ai, j = Aj, i...原创 2019-06-05 19:49:48 · 279 阅读 · 0 评论 -
Neko and tree HDU - 6540 (树形dp)
题意:给你一棵树,树上有一些重要的点,让你选一个只包含重要的点的点集,满足点集里最远的两个点不超过k,问有多少种选法 想了好久,题解说得太简略了。。。 dp[i][j]表示在i这颗子树中距离i点最远点距离为j的方案数。 考虑如何从子树转移,显然 我们遍历到一颗新子树时,要用之前的所有方案乘以这颗子树的方案来更新。 即dp[u][max(i,j+1)]+=dp[u][i]*dp[to][j...原创 2019-05-24 19:26:27 · 1385 阅读 · 3 评论
分享