动态规划----动规
Top_xiao
这个作者很懒,什么都没留下…
展开
-
UVA 10626 Buying Coke (DP + 记忆化搜索)
I often buy Coca-Cola from the vending machine at work. Usually I buy several cokes at once, since my working mates also likes coke. A coke in the vending machine costs 8 Swedish crowns, and the machi原创 2018-02-14 18:17:24 · 250 阅读 · 0 评论 -
bzoj 1068: [SCOI2007]压缩1068: [SCOI2007]压缩
1068: [SCOI2007]压缩1068: [SCOI2007]压缩给一个由小写字母组成的字符串,我们可以用一种简单的方法来压缩其中的重复信息。压缩后的字符串除了小写字母外还可以(但不必)包含大写字母R与M,其中M标记重复串的开始,R重复从上一个M(如果当前位置左边没有M,则从串的开始算起)开始的解压结果(称为缓冲串)。 bcdcdcdcd可以压缩为bMcdRR,下面是解压缩的过程另一...原创 2018-10-24 13:08:57 · 252 阅读 · 0 评论 -
1090: [SCOI2003]字符串折叠
折叠的定义如下: 1. 一个字符串可以看成它自身的折叠。记作S S 2. X(S)是X(X>1)个S连接在一起的串的折叠。记作X(S) SSSS…S(X个S)。 3. 如果A A’, BB’,则AB A’B’ 例如,因为3(A) = AAA, 2(B) = BB,所以3(A)C2(B) AAACBB,而2(3(A)C)2(B)AAACAAACBB 给一个字符串,求它的...原创 2018-10-24 19:14:32 · 132 阅读 · 0 评论 -
BZOJ 1725: [Usaco2006 Nov]Corn Fields牧场的安排 (状压DP)
DescriptionFarmer John新买了一块长方形的牧场,这块牧场被划分成M列N行(1<=M<=12; 1<=N<=12),每一格都是一块正方形的土地。FJ打算在牧场上的某几格土地里种上美味的草,供他的奶牛们享用。遗憾的是,有些土地相当的贫瘠,不能用来放牧。并且,奶牛们喜欢独占一块草地的感觉,于是FJ不会选择两块相邻的土地,也就是说,没有哪两块草地有公共边。当...原创 2018-11-04 16:40:05 · 114 阅读 · 0 评论 -
bzoj2748: [HAOI2012]音量调节
Description一个吉他手准备参加一场演出。他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量。在演出开始之前,他已经做好了一个列表,里面写着在每首歌开始之前他想要改变的音量是多少。每一次改变音量,他可以选择调高也可以调低。音量用一个整数描述。输入文件中给定整数beginLevel,代表吉他刚开始的音量,以及整数maxLevel,代表吉他的最大音量。音量不能小于...原创 2018-11-27 08:59:57 · 204 阅读 · 0 评论 -
bzoj 1037: [ZJOI2008]生日聚会Party 难想的DP
Description 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party。 hidadz带着朋友们来到花园中,打算坐成一排玩游戏。为了游戏不至于无聊,就座的方案应满足如下条件:对于任意连续的一段,男孩与女孩的数目之差不超过k。很快,小朋友便找到了一种方案坐了下来开始游戏。hidadz的好朋友Susie发现,这样的就座方案其实是很多的,所以大家很快就找到了一种,那...原创 2018-12-12 15:17:39 · 399 阅读 · 0 评论 -
bzoj 1296: [SCOI2009]粉刷匠 两次,DP
Descriptionwindy有 N 条木板需要被粉刷。 每条木板被分为 M 个格子。 每个格子要被刷成红色或蓝色。 windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色。 每个格子最多只能被粉刷一次。 如果windy只能粉刷 T 次,他最多能正确粉刷多少格子? 一个格子如果未被粉刷或者被粉刷错颜色,就算错误粉刷。Input输入文件paint.in第一行包含三个整数...原创 2018-12-28 14:56:46 · 127 阅读 · 0 评论 -
bzoj 1260: [CQOI2007]涂色paint
Description假设你有一条长度为5的木版,初始时没有涂过任何颜色。你希望把它的5个单位长度分别涂上红、绿、蓝、绿、红色,用一个长度为5的字符串表示这个目标:RGBGR。 每次你可以把一段连续的木版涂成一个给定的颜色,后涂的颜色覆盖先涂的颜色。例如第一次把木版涂成RRRRR,第二次涂成RGGGR,第三次涂成RGBGR,达到目标。 用尽量少的涂色次数达到目标。Input输入仅一行,...原创 2019-02-08 10:48:04 · 272 阅读 · 0 评论 -
bzoj 1231: [Usaco2008 Nov]mixup2 混乱的奶牛 (状压dp)
Description混乱的奶牛 [Don Piele, 2007] Farmer John的N(4 <= N <= 16)头奶牛中的每一头都有一个唯一的编号S_i (1 <= S_i <= 25,000). 奶牛为她们的编号感到骄傲, 所以每一头奶牛都把她的编号刻在一个金牌上, 并且把金牌挂在她们宽大的脖子上. 奶牛们对在挤奶的时候被排成一支"混乱"的队伍非常反感. ...原创 2019-02-10 10:48:37 · 227 阅读 · 0 评论 -
bzoj 2442: [Usaco2011 Open]修剪草坪 (单调队列 +dp)
Description在一年前赢得了小镇的最佳草坪比赛后,FJ变得很懒,再也没有修剪过草坪。现在,新一轮的最佳草坪比赛又开始了,FJ希望能够再次夺冠。然而,FJ的草坪非常脏乱,因此,FJ只能够让他的奶牛来完成这项工作。FJ有N(1 <= N <= 100,000)只排成一排的奶牛,编号为1...N。每只奶牛的效率是不同的,奶牛i的效率为E_i(0 <= E_i &l...原创 2019-02-28 21:18:27 · 144 阅读 · 0 评论 -
Count The Bits Gym - 101982D 数位
求 0 …… 2^i -1 中所有 % k == 0 的数,二进制中 1的个数。#include<bits/stdc++.h>using namespace std;int mod = 1e9+9;long long f[200][2000],g[200][2000];//f 前 i 位, % k 余 j 有多少个数。//g 前 i 位, % k ...原创 2019-03-01 09:36:22 · 271 阅读 · 0 评论 -
bzoj 1801: [Ahoi2009]chess 中国象棋
Description在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮。 请问有多少种放置方法,中国像棋中炮的行走方式大家应该很清楚吧.Input一行包含两个整数N,M,中间用空格分开.Output输出所有的方案数,由于值比较大,输出其mod 9999973Sample Input1 3Sample Output7HINT...原创 2019-03-11 13:02:43 · 141 阅读 · 0 评论 -
bzoj 1026: [SCOI2009]windy数 (数位DP)
Description windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道,在A和B之间,包括A和B,总共有多少个windy数?Input 包含两个整数,A B。Output 一个整数Sample Input【输入样例一】1 10【输入样例二】25 50Sample Output【输...原创 2019-03-12 16:30:04 · 120 阅读 · 0 评论 -
bzoj 1806: [Ioi2007]Miners 矿工配餐 (dp ,动规)
Description现有两个煤矿,每个煤矿都雇用一组矿工。采煤工作很辛苦,所以矿工们需要良好饮食。每当一辆食品车到达煤矿时,矿工们便会产出一定数量的煤。有三种类型的食品车:肉车,鱼车和面包车。 矿工们喜欢变化的食谱。如果提供的食品能够不断变化,他们的产煤量将会增加。每当一个新的食品车到达煤矿时,矿工们就会比较这种新的食品和前两次(或者少于两次,如果前面运送食品的次数不足两次)的食品,并且: ...原创 2019-03-21 21:04:03 · 116 阅读 · 0 评论 -
gym/100837 F - Controlled Tournament (树上 + 状压dp)
题意:已知 n 个人,知道 n 个人的实力,了解到两两比赛的结果,现在让你安排 n 个人的比赛顺序。让编号 为 k 的人顺利。问你有几种安排的顺序。安排的顺序要满足竞赛树的高度最小。思路:树上 + 状压 DP。这里要考虑一下树的高度。严格根据高度来 DP。这里面有一个for循环,可以找到一个状态中 所有 1 的情况。#include<bits/stdc++.h>#d...原创 2019-03-28 18:45:53 · 187 阅读 · 0 评论 -
1079: [SCOI2008]着色方案 记忆化搜索+DP
有n个木块排成一行,从左到右依次编号为1~n。你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块。所有油漆刚好足够涂满所有木块,即c1+c2+...+ck=n。相邻两个木块涂相同色显得很难看,所以你希望统计任意两个相邻木块颜色不同的着色方案。Input 第一行为一个正整数k,第二行包含k个整数c1, c2, ... , ck。Output 输出一个整数,即方案总数模1...原创 2018-10-14 14:48:02 · 159 阅读 · 0 评论 -
bzoj 1040: [ZJOI2008]骑士(树形DP)
Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英。他们劫富济贫,惩恶扬善,受到社会各界的赞扬。最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争。战火绵延五百里,在和平环境中安逸了数百年的Z国又怎能抵挡的住Y国的军队。于是人们把所有的希望都寄托在了骑士团的身上,就像期待有一个真龙天子的降生,带领正义打败邪恶。骑士团是肯定具有打败邪恶势力的能力的,但是骑士们互相之间...原创 2020-02-24 09:38:14 · 164 阅读 · 0 评论 -
POJ1014 :Dividing(多重背包) 二进制优化
Marsha and Bill own a collection of marbles. They want to split the collection among themselves so that both receive an equal share of the marbles. This would be easy if all the marbles had the same v...原创 2018-02-15 11:00:00 · 237 阅读 · 0 评论 -
POJ - 1276 Cash Machine (多重背包,优化,)
A Bank plans to install a machine for cash withdrawal. The machine is able to deliver appropriate @ bills for a requested cash amount. The machine uses exactly N distinct bill denominations, say Dk, k...原创 2018-05-31 23:20:10 · 113 阅读 · 0 评论 -
Gym - 100712L Alternating Strings II (线段树 + dp)
题目链接题意: 给你一串 01 序列,最少切几刀,使得每串的长度不超过 m 且 这个串不能是交替的 (从第二位开始,每个字符都与前面一个字符不一样。)状态转移方程。 f[i] = min(f[i],f[j] + 1); 满足 j+1到i是可行子串。这样的是暴力的方程。肯定过不了这个题。仔细一想的话,f[i] 能从什么地方转移过来,是 i-m+1 到 i-1, 在想一想满足条件...原创 2018-07-25 07:37:36 · 154 阅读 · 0 评论 -
HDU - 3001 Travelling (状压DP, 三进制优化)
题目链接题意:从任一点出发,经过所有城市,求最小的步数。经过每个城市不超过两次。 每个顶点经过最多2次,也就是说有0,1,2三总状态,我们状态转移的时候要用三进制。 #include <bits/stdc++.h>using namespace std;#define mem(x,v) memset(x,v,sizeof(x))typedef long lo...原创 2018-07-29 20:19:50 · 146 阅读 · 0 评论 -
POJ 2686 Traveling by Stagecoach (dp,状态压缩)
题意:旅行家要从城市a旅行到城市b,他的手里有n张马车票,使用马车票可以让旅行家在任意一条马路上通行,马车票上印有马匹的数量t[i],并规定道路的长度除以马匹的数量就是通行该路所花的时间。那么旅行家从城市a到b至少需要花多少时间,如果无法通行,输出‘Impossible’思路:状态压缩dp,设集合S为旅行家手里剩余的马车票,dp[S][v]含义:旅行家还剩余的马车票组成集合S,并...原创 2018-07-27 16:05:49 · 142 阅读 · 0 评论 -
Hie with the Pie (状压 DP)
从 0 点出发,每个点可以走多次。最后再回到 0 点,问最小的距离是多少。因为是从 0 点出发,所以每次更新的时候,我们要保证 0 这个位置一定要是 1 。 for 循环的时候 i = i | 1;然后从当前节点,走到下一个节点。更新就行了。 #include <bits/stdc++.h>using namespace std;#define mem(x...原创 2018-08-01 16:51:12 · 449 阅读 · 1 评论 -
POJ 2955-Brackets (括号匹配,。。经典区间DP)
求区间 DP,这个题写了两个程序,两个程序的 DP 方程是一样的,但是 循环是不一样的,发现一了一个规律,如果我们最后想要输出 f[0][n],那么我们需要最后更新 1,n。不然可能会错过最优解。 #include <iostream>#include <cstdio>#include <cstring>using ...原创 2018-08-01 18:59:01 · 224 阅读 · 0 评论 -
Halloween Costumes (区间 DP)
一个区间DP,题意:给你一些衣服的编号,然后有n 天要穿的衣服,衣服可以套着穿,问你最少要穿几次衣服。比如1 2 1先传1 接着穿2 ,第三次直接把2 脱掉就行了,所以一共需要穿2 次。 用 dp[i,j] 来表示 i j 这个区间最少要穿几次衣服。首先要预处理一下, 每个区间最多要穿 j - i + 1 次衣服。然后 状态转移方程。if (c[k] ==...原创 2018-08-02 11:00:25 · 276 阅读 · 0 评论 -
【bzoj】1010: [HNOI2008]玩具装箱toy (斜率优化,模板题)
https://www.cnblogs.com/Paul-Guderian/p/7259491.html#4009803 看链接#include <bits/stdc++.h>#define mem(x,v) memset(x,v,sizeof(x)) #define rep(i,a,b) for (int i = a; i <= b; i++)#define p...原创 2018-08-12 11:04:12 · 157 阅读 · 0 评论 -
【bzoj】1096: [ZJOI2007]仓库建设 (斜率优化模板题)
#include <bits/stdc++.h>#define mem(x,v) memset(x,v,sizeof(x)) #define go(i,a,b) for (int i = a; i <= b; i++)#define og(i,a,b) for (int i = a; i >= b; i--)using namespace std;...原创 2018-08-12 11:06:18 · 160 阅读 · 0 评论 -
POJ2441--Arrange the Bulls(状态压缩。)
题目大意:有N头牛,M个谷仓。每头牛都有自己喜欢呆的谷仓。每个谷仓只能安排一头牛。问一共有多少种分法思路:我们用 dp[i][j] 来代表 前 i 头牛,j 的状态,有多少种放法。dp[i][j] = dp[i][j] + dp[i-1][k] k 属于 1 ~ (1 << m)-1 我们可以发现, 第 i 状态只和 i-1 的状态有关 ,所以可以滚动数组。最后...原创 2018-08-28 14:55:47 · 175 阅读 · 0 评论 -
1087: [SCOI2005]互不侵犯King (网格状压DP)
在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。Input 只有一行,包含两个数N,K ( 1 <=N <=9, 0 <= K <= N * N)Output 方案数。Sample Input3 2Sample Output16 ...原创 2018-09-04 22:16:54 · 109 阅读 · 0 评论 -
bzoj 1076: [SCOI2008]奖励关(期望DP,状压。)
Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关。在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的宝物以后也不能再吃)。 宝物一共有n种,系统每次抛出这n种宝物的概率都相同且相互独立。也就是说,即使前k-1次系统都抛出宝物1(这种情况是有可能出现的,尽管概率非常小),第k次抛出各个宝物的...原创 2018-09-05 11:03:37 · 144 阅读 · 0 评论 -
bzoj 1084: [SCOI2005]最大子矩阵 (dp)
这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。Input 第一行为n,m,k(1≤n≤100,1≤m≤2,1≤k≤10),接下来n行描述矩阵每行中的每个元素的分值(每个元素的分值的绝对值不超过32767)。Output 只有一行为k个子矩阵分值之和最大为多少。思路:这里我们要注意到 m 是小于等...原创 2018-09-03 21:47:41 · 164 阅读 · 0 评论 -
AreYouBusy HDU - 3535 (DP 分组背包)
Happy New Term!As having become a junior, xiaoA recognizes that there is not much time for her to AC problems, because there are some other things for her to do, which makes her nearly mad.What's ...原创 2019-05-06 22:05:44 · 157 阅读 · 0 评论