随笔分类 - DP
摘要:书上好多题没补 PS.整个DP是根据Q来划分的,dalao的代码就是不一样啊 C++ include define rep(i,j,k) for(int i=j;i T; while(T ){ cin P Q; rep(i,1,Q) cin A[i];A[Q+1]=P+1; memset(dp,0,
阅读全文
摘要:方程很简单,每一公里往上推就行 WA了2发,忘了单通道时的特判,还有n m傻傻分不清,忘了fixed什么的我好弱啊QAQ.. C++ include define rep(i,j,k) for(int i=j;i vec[1003]; int n,m,p,k,a,b; int main(){ ios
阅读全文
摘要:每层至少一个,滚动时要判上一层非法与否,所以每次都要memset C++ include define rep(i,j,k) for(int i=j;i=k;i ) define scan(a) scanf("%d",&a) using namespace std; const int maxn =
阅读全文
摘要:T了两发,DP方程很简单粗暴 dp[i][j][k]:用前i物品使得容量分别为j和k的背包恰好装满 背包的调用只需一次即可,第一次T就是每次check都丧心病狂地背包一次 对于sum的枚举,其实i j枚举到sum/2就可以了
阅读全文
摘要:```C++ include include include include define rep(i,j,k) for(int i = j; i n m){ rep(i,1,n)rep(j,1,m)cin a[i][j]; memset(dp,0,sizeof dp); rep(i,1,n)dp[
阅读全文
摘要:迭代式不知道怎么敲 DFS就很清晰 C++ include include include include include include define rep(i,j,k) for(int i = j; i =1&&i=1&&jG[i][j]) maxlen=max(maxlen,DP(x,y)+
阅读全文
摘要:要求max{F/P},先枚举下界lowf,再贪心求符合约束条件的n个最小价值和 记录F的离散值和去重可以大幅度常数优化 (本来想着用DP做的) (辣鸡POJ连auto都Complie Error) DP写法 因为二维的dp[][k]是滚动更新的,所以每次更新当前最小值是dp[i 1][k]必然存在最
阅读全文
摘要:f[i][j]:i种花放j盆的方案数 C++ include using namespace std; const int maxn = 3e2+11; const int mod = 1000007; typedef long long ll; ll f[maxn][maxn],a[maxn],n
阅读全文
摘要:从来不会DP的家伙终于要开始重拾DP了 最大子矩阵没啥好说的,注意单调最大子矩阵不用这么高复杂度,另行更新
阅读全文

浙公网安备 33010602011771号