dp
MrBird_to_fly
这个作者很懒,什么都没留下…
展开
-
Sgu 132 状压dp(gtmd128)
辣鸡题卡常,改了以后又zz地把数组开小了,debug到死都没有发现。一题做了一天多沃日。 代码:#include <bits/stdc++.h>using namespace std;const int INF=0x3f3f3f3f;int m, n;char str[10];int g[80];int dp[2][200][200];int tofix1, tofix2;void原创 2016-09-23 19:43:48 · 449 阅读 · 0 评论 -
CF 467D 强连通分量缩点DP
缩点之后按拓扑序在DAG上做一下DP。 注意SUMLEN可能会爆INT。#include <bits/stdc++.h>using namespace std;map<string,int>mp;int tot=0;int n,m;string s[200003];struct edge{ int to,next;}e[200003];int ...原创 2018-05-08 17:28:52 · 400 阅读 · 0 评论 -
Hdu 6241 二分+树形dp
这是哈尔滨的L题。只要想到二分答案就很水了。总数确定后每个子树有一个区间,树dp合并这个区间,一旦有空区间就不够。需要注意的是要特判下根节点的最大值是否能取到二分的答案。 代码:#include <bits/stdc++.h>using namespace std;const int maxn=100007;struct edge{ int to, next;}e[maxn*2];原创 2017-11-16 15:05:28 · 686 阅读 · 0 评论 -
Hdu 3507 斜率dp
从这里学习了斜率dp:http://www.cnblogs.com/ka200812/archive/2012/08/03/2621345.html照葫芦画瓢写了一遍,然后感觉po主写得太好了基本没什么别的好讲代码:#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long lo原创 2016-12-01 23:23:21 · 302 阅读 · 0 评论 -
Hdu 4495 hash+dp
题意:给一个字符矩阵,求最大对称等腰直角三角形面积。做法:首先,旋转对称,做四次。每次先用二分hash预处理出点(i,j)向左和向上延伸的最长长度len[i][j],然后dp[i][j]=min(len[i][j]+dp[i-1][j-1]+2),所有dp值取最大就是边长,算一下得到面积。代码:#include <cstdio>#include <cstring>#include <algori原创 2016-12-13 09:06:12 · 417 阅读 · 0 评论 -
Hdu 6155 线段树维护转移矩阵
这个题难点不在线段树上,事实上只要解决了如何求一个01串有多少个不同子串的问题之后,基本上就是一马平川了。所以我队因为不会计数比赛的时候GG了。。。之后围观了叉姐的题解学会了计数,就xjb写完了。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int mod=1e9+7;const int maxn原创 2017-08-20 14:51:24 · 774 阅读 · 0 评论 -
Hdu 4695 线性递推模版(m^2logn)
#include <bits/stdc++.h>#pragma comment(linker, "/STACK:102400000,102400000")using namespace std;typedef long long ll;#define LL long longconst int mod=1e9+7;const int MOD=1e9+7;const int MAXN=2原创 2017-06-24 18:39:24 · 967 阅读 · 0 评论 -
2010 成都Regional H 博弈,概率dp
#include <bits/stdc++.h>using namespace std;double dp[2][3][4][19][28][28];//状态分别是(轮次)(最上层数)(第二层状态)(A状态个数)(B状态个数)(C状态个数),D状态个数和高度可以算出来bool vis[2][3][4][19][28][28];double ba1, da1, ba2, da2, ba3, da3原创 2017-06-30 18:53:07 · 388 阅读 · 0 评论 -
CF 682D dp
题意:给出两个字符串,和一个正整数k,在每个串中找出k个子串,使得这k个字串按顺序对应相等。求满足以上条件的k个子串长度和的最大值。其中子串长不超过1000,k不超过10。做法:dp dp[i][x][y]表示a串第x结尾,b串第y结尾,i个子串的最大长度。 每做一次更新一遍pro[x][y],为(x,y)以前的最大值。 最后取pro[m][n]即可。代码:#include <cstdio>原创 2016-06-18 04:27:40 · 694 阅读 · 0 评论 -
Poj 1185&Poj 2411 状压dp(from Poj2663)
鱼头最近查刷题有点紧,事情又多,红了。不得已敲了几发水题,罪恶感爆棚。 不过敲水题过程中发现了这样一个题: POJ2663:问3*n的方格用1*2的domino填充有多少种方法。 瞎几把YY了之后得出递推公式如下 a[i]=3*a[i-1]+2*b[i-1]; b[i]=a[i-1]+b[i-1]; 其中a[i]是n=2*i的答案啦(显然n为奇数的结果为0) b[i]是原创 2016-05-19 10:04:56 · 606 阅读 · 0 评论 -
CF 721C DAG上的dp
C. Journey time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard output Recently Irina arrived to one of the most famous cities of Berland — the Berlat原创 2016-10-04 20:32:08 · 573 阅读 · 0 评论 -
CF 815C 树形背包
翻zzq的blog过程中发现了一个题一类有依赖的树形背包dp方法。搜题过程中搜到了某场打过的CF的某个题,尴尬的是这题还T着。于是尝试使用blog中的思路dp,发现可能不太行(也可能是我太菜了),但是回忆起jls说的树形dp优化,发现zzq的做法可能年代有点久远,好像被完爆了啊。#include <bits/stdc++.h>using namespace std;typede...原创 2018-08-24 17:16:16 · 302 阅读 · 0 评论