![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
cat_pikapikapi
这个作者很懒,什么都没留下…
展开
-
nanchang B A Funny Bipartite Graph
题意是:给你一个二分图,让你在其中选一些边,边和边两边的点构成一个新图,然后问新图的最小代价?新图要满足两个条件:右边的点必须全选,左边的点必须满足互斥关系。原图也满足一些性质,每个点的度小于3,左边的每个点不会向左边编号比它小的点连边。为什么爆搜能过,为什么爆搜能过,为什么爆搜能过。。。。。。而且还比我快。爆搜就是加个剪枝,如果当前的sum比ans大就不继续往下搜了。。。。不会...原创 2019-12-11 16:32:54 · 575 阅读 · 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 · 336 阅读 · 0 评论 -
Solid Dominoes Tilings HDU - 5731 (轮廓线 容斥 )
比较好玩的容斥,,,如果不加限制的话,是一个经典的轮廓线dp。加上限制之后,考虑利用容斥求出不合法的方案数。最开始想的时候,想的是求出所有的方案数,减去所有列不合法的方案数,减去所有行不合法但列合法的方案数。。但是好像过去麻烦,可以考虑再求得时候就保证行合法,这样就只需要减去列不合法的方案数。只需要容斥一下,枚举所有可能的列状态,减去一列不合法的方案,加上两列不合法方案,,,...原创 2019-08-28 16:13:52 · 121 阅读 · 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 · 109 阅读 · 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 · 128 阅读 · 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 · 185 阅读 · 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 · 169 阅读 · 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 · 137 阅读 · 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 · 185 阅读 · 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 · 1273 阅读 · 3 评论