
dp
文章平均质量分 50
掀开棺材板
这个作者很懒,什么都没留下…
展开
-
区间DP D - Dire Wolf
dp题意思路AC代码题意有n只狼排成一排我们需要消灭所有的狼每次狼都有a和 b消灭第i只狼 需要第i只狼的a和其周围狼的b思路为了尽可能小消灭有高b的狼或者从一端是最好的选择dp[i][j]表示从i消灭到j需要的价值(先抛开a)最先被消灭的其b就没有用了(枚举哪个先被消灭)所以状态转移方程是dp[i][j]=dp[i][k-1]+dp[k+1][j]+b[j+1]+b[i-1]//b是加两端的AC代码#include <bits/stdc++.h>#define e原创 2021-11-07 18:15:55 · 146 阅读 · 0 评论 -
DP 记忆搜索 E. Vasya and Binary String
DP题意思路AC代码题意有一个长度为n的01串你可以删除连续的’0’或’1’并获得相应的ai直到把01串删除完毕最多可以获得多少价值思路记忆DPdp[l][r][len]l 表示起点r 表示终点len 表示长度dp[i][r][len]就是在i到r区间内删除接下来看来代码注释AC代码#include <bits/stdc++.h>#define endl "\n" #define INF 0x3f3f3f3f3f3f3f3f#define IO ios::sy原创 2021-11-07 17:41:31 · 136 阅读 · 0 评论 -
异或dp Happy Matt Friends
hdu 5119 异或 dp 状压 题意思路AC代码题意给n(0<n<=40)个数 和 一个k从n个数中任取 使异或和>=k求有多少种方案思路所以暴力dp本来开40倍可以状压开2倍状态转移方程如下j代表目前的数答案 就是遍历一下AC代码#include <bits/stdc++.h>#define endl "\n" #define INF 0x3f3f3f3f3f3f3f3f#define IO ios::sync_with_stdio(f原创 2021-10-31 13:05:47 · 128 阅读 · 0 评论 -
D. Frog Traveler
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档bfs+dp+前驱题意思路AC代码题意青蛙跳进了一个深度为n的井里不同的深度青蛙最多可以跳ai的高度(0~a[i])每次跳跃后要休息一下在不同的深度休息会往下掉b[i]要求 如果能够出到井外求最小跳跃次数和路径如果不能输出-1思路暴力直接想到bfs但是需要细节不然会TAC代码#include <bits/stdc++.h>#define endl "\n" #define INF 0x3f3f3原创 2021-10-28 11:44:20 · 427 阅读 · 0 评论 -
P4280 逆序对
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档P4280 逆序对题意思路AC代码题意给 一个长度为 n的数组每个数的范围 为 1~k其中有 -1的 表示 未知(可填从1~k的任意一个数)求少逆序对的数量思路从大佬博客看来的思路我自己就心证 证明了-1位置必须要填非严格单调递增因为数据其实挺少的可以稍微暴力一点先预处理biger[i][j]; //代表i位置上填j其前面有多少比他大的数的数目small[i][j];//代表i位置上填j其后面有多少比他小的数的数目原创 2021-09-16 10:31:49 · 107 阅读 · 0 评论