
DP
文章平均质量分 61
yuege38
在校学生,努力学习
展开
-
POJ2411_Mondriaan's Dream_轮廓线dp
Mondriaan's DreamTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 16640 Accepted: 9606DescriptionSquares and rectangles fascinated the famous Dutch pai原创 2017-05-31 15:56:15 · 337 阅读 · 0 评论 -
814D - An overnight dance in discotheque@tree dp||greedy
题意给出 n 个圆,每个圆给出圆心坐标和半径。任意两个圆之间最多只有一个公共点。将这 n 个圆放到两个坐标系内,使被奇数个圆覆盖的区域的面积最大,求这个最大面积。思路Tree DP任意两个圆最多只有一个公共点,也就是说两个圆的关系要么外离,要么内含。一个圆最多被一个圆直接包含。由此联想到树的结构,准确的说是森林,进而可以想到Tree DP的做法。Greedy后来看了官方神犇的题解,这个题完全可以贪心原创 2017-06-08 18:07:43 · 428 阅读 · 0 评论 -
HDU2089_不要62_数位DP
题意包含 4 或 62 字段的数字称为不吉利数字。统计 [n, m] 中吉利数字的数目原创 2017-07-21 13:32:19 · 233 阅读 · 0 评论 -
HDU3652_B-number_数位DP&记忆化搜索
题意给定 n ,问区间 [1, n]中,求有多少个数字满足以下条件: 1.包含字串 13 2.能被 13 整除原创 2017-07-21 16:05:53 · 224 阅读 · 0 评论 -
Codeforces55D_Beautiful numbers_记忆化搜索版数位DP
题意求 [a, b] 中满足以下条件的数字的个数: 这个数字能被它各个位上的非零数字整除。原创 2017-07-21 23:42:40 · 354 阅读 · 0 评论 -
HDU5890_Eighty seven_排除物品的01背包&&bitset
题意给出 n 个数,进行 m 轮判断。每一轮去掉最多三个数,问从剩下的数中选恰好10个数的和恰好是87。原创 2017-08-25 22:54:56 · 317 阅读 · 0 评论 -
CodeForces - 687C_The Values You Can Make_DP
题意要用 n 个硬币中的若干个支付 k 元。要求计算,用支付出去的硬币可能组成哪些钱数。思路bool dp[i][j] 拼成 i 的硬币能拼成钱数 j。链接https://vjudge.net/contest/176068#problem/D代码#include<cstdio>#include<iostream>#include<cstdio>#include<vector>#include原创 2017-10-31 22:09:30 · 194 阅读 · 0 评论 -
HYSBZ - 4806_炮_DP
题意在 N * M 的棋盘上放任意个象棋棋子炮,要求两两之间不能相互攻击。求有多少中方案。原创 2017-11-01 22:30:09 · 228 阅读 · 0 评论 -
Millionare_离散化&&DP
相当于在不同模块之间来回移动#include#include#includeusing namespace std;//最大可能的模块数 const int maxn = 1 << 15 + 10;//轮数 int M;//赌赢概率 double P;//本钱 int X;//dp[i][j] 表示第i轮每个模块赢到100W的概率//这里采用滚动数组节约内转载 2017-05-05 15:23:38 · 364 阅读 · 0 评论 -
hdu5887_Herbs Gathering_较大规模(玄学)dp
题意n 种药草,每种药草有价值 vi,需要花费时间 ti。求时限 m 内能获得的最大价值。思路不能更裸的01背包,问题在于 m 可以大到 1e9。于是老师就教了一个神奇的dp。 简单地说就是把状态用 vector 存下来,一步转移之后,按价值从大到小排序,把价值小,时间反而多的状态删掉。据老师讲状态数是可证地不超过某个值(时间太久忘了)。链接https://vjudge.原创 2018-01-21 11:28:58 · 467 阅读 · 0 评论 -
Codeforces Round #455 (Div. 2)C_Python Indentation_DP
题意python语言有两种语句,simple语句(s语句)和for语句(f语句)。其中for语句的循环体需要缩进一格,并且不能为空(for语句的循环体里至少有一个s语句或for语句)。给出n条语句,问总共有多少种合法的缩进方法。思路dp[i][j] 第i行缩进j格的种数。 如果第i行是f语句,它的下一行只能放在它的循环体里,缩进格数只能加一。dp[i+1][j+1] = dp[i][j] 如果原创 2017-12-29 22:25:10 · 250 阅读 · 0 评论 -
POJ2068_Nim_DP博弈
题意两个队伍,每支队伍有n名队员交错入座,单次分别能最多取走Mi块石头,取走S块石头中的最后一块的队伍失败,求第一支队伍是否有必胜策略思路DP博弈。 dp[i][j][s] 第 i 队第 j 名队员取时剩下 s,此时是否必胜。 s = 0 时是必胜态。 第 i 队第 j 名队员从此状态出发, 能达到的状态中存在下一个取的队员(对方)的必败态,则此状态为必胜态。否则为必败态。链原创 2018-01-07 16:07:05 · 233 阅读 · 0 评论 -
POJ3709_K-Anonymous Sequence_双端队列优化dp
题意 给出一个长度为 n 的非严格单调递增数列,每一次操作可以使数列中的任何一项 -1。问至少需要多少次操作,使得任意一项都与其他至少 k - 1 项相等。思路 首先想到DP。 dp[i]:考虑前 i 项,满足要求的最小操作数。 dp[i] = min( dp[j] + sigma( dp[i] - dp[j] ) ) k 用这个式子,复杂度为 O(n^3),相当原创 2018-02-02 14:31:20 · 286 阅读 · 0 评论 -
POJ1180_Batch Scheduling_斜率dp
题意有 n 项任务,每项任务有时间成本 ti 和 原料成本 fi。把任务分成若干批次,由一台机器完成。每个批次的总成本 = 批次完成时间 * 批次中任务原料成本之和。其中,第一批次的第一项任务从时间 0 开始执行。执行每个批次之前,需要时间 S 来启动机器。思路链接http://poj.org/problem?id=1180代码#include<i...原创 2018-02-11 08:47:45 · 262 阅读 · 0 评论 -
POJ3260_The Fewest Coins_deque优化dp解多重背包和完全背包
题意拿着 n 种硬币,每种硬币面值 vi,数量 ci,去商店购买价值 t 的物品。商店也同样有这些种类的硬币,但数目无限。问付钱和找零的过程中,至少 需要多少个硬币。思路付钱是多重背包,找零是完全背包。 有意思的地方是付款金额的上界问题,网上证明了 maxv * maxv + t。然而证明过程一知半解。其实猜一猜也就过了。链接http://poj.org/proble原创 2018-02-06 13:22:53 · 196 阅读 · 0 评论 -
POJ1795_DNA Laboratory_状压DP
DNA LaboratoryTime Limit: 5000MS Memory Limit: 30000KTotal Submissions: 2427 Accepted: 433DescriptionBackground Having started to build his own DNA lab just r原创 2017-05-30 17:55:55 · 380 阅读 · 0 评论 -
POJ1769_Minimizing maximizer_DP|线段树优化
Minimizing maximizerTime Limit: 5000MS Memory Limit: 30000KTotal Submissions: 4355 Accepted: 1792DescriptionThe company Chris Ltd. is preparing a new sorting ha原创 2017-05-30 10:37:54 · 4410 阅读 · 2 评论 -
POJ2686_Traveling by Stagecoach_状压DP
Traveling by StagecoachTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 3357 Accepted: 1295 Special JudgeDescriptionOnce upon a time, there was a t原创 2017-05-28 14:31:14 · 341 阅读 · 0 评论 -
POJ1157_LITTLE SHOP OF FLOWERS_动态规划
LITTLE SHOP OF FLOWERSTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 21143 Accepted: 9786DescriptionYou want to arrange the window of your flower sho原创 2017-02-26 19:13:56 · 346 阅读 · 0 评论 -
POJ3280_Cheapest Palindrome_DP
Cheapest PalindromeTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 9538 Accepted: 4588DescriptionKeeping track of all the cows can be a tricky task so原创 2017-04-01 10:48:33 · 232 阅读 · 0 评论 -
POJ1185_炮兵阵地_状压dp
炮兵阵地Time Limit: 2000MS Memory Limit: 65536KTotal Submissions: 27149 Accepted: 10512Description司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),原创 2017-03-16 21:13:45 · 268 阅读 · 0 评论 -
POJ3666_Making the Grade_DP
Making the GradeTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 6994 Accepted: 3234DescriptionA straight dirt road connects two fields on FJ's farm, b原创 2017-04-08 01:31:16 · 1571 阅读 · 2 评论 -
POJ1742_Coins_DP_增加维数的优化
CoinsTime Limit: 3000MS Memory Limit: 30000KTotal Submissions: 36664 Accepted: 12430DescriptionPeople in Silverland use coins.They have coins of value A1,A2,A3.原创 2017-04-05 17:04:12 · 261 阅读 · 0 评论 -
129_Bribe the Prisoners_DP
#include#include#includeusing namespace std;const int maxq = 100+10;const int inf = 0x3f3f3f3f;//待释放囚犯的位置 int a[maxq];//dp[i][j] 释放第 i 个和第 j 个之间所有囚犯所需金币//这里的认为把需要释放的囚犯单独提取出来//也就是说,i j 是转载 2017-05-05 15:11:40 · 260 阅读 · 0 评论 -
HDU1520_Anniversary party_树状DP
Anniversary partyTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10356 Accepted Submission(s): 4366Problem DescriptionThere i原创 2017-03-03 15:00:54 · 336 阅读 · 0 评论 -
POJ2378_Tree Cutting_树状DP
Tree CuttingTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 4494 Accepted: 2744DescriptionAfter Farmer John realized that Bessie had installed a "tree原创 2017-03-03 15:41:12 · 220 阅读 · 0 评论 -
Codeforces Round #465 (Div. 2) D_Fafa and Ancient Alphabet_辗转相除求逆元&&DP
题意给出两个正整数串,每个串中有若干个空格,每个空格等概率地用 1 - m 中的数字填充。问第一个串大于第二个串的概率。思路简单dp。 mark 辗转相除法求逆元LL exgcd(LL a, LL b, LL &x, LL &y){ LL d = a; if(b != 0){ d = exgcd(b, a % b, y, x...原创 2018-03-03 20:33:56 · 323 阅读 · 0 评论