自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 2019-6-30 训练日记-区间dp

今天上午考毛概,5分钟交卷走人,然后写了个澡,下午开始刷区间dp,从最简单的石子合并。开始到环形石子合并,再用四边形不等式优化+环形石子合并。感觉区间dp很像分治,把大区间问题分解成小区间问题。用小区间推大区间。用四边形不等式优化的作用是减少分割位置的枚举。把复杂度从O(n ^ 3)减到O(n ^ 2),等会有cf。就写到这了。航6.30...

2019-06-30 21:20:03 169

原创 区间dp-HDU-3506-环形石子合并+四边形不等式优化

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3506题目大意:就是环形的一堆石子进行合并,合并代价为合并成一堆石子的总重量。普通的石子合并,这里是不能用的。O(n^3)复杂度会T。必须进行优化,优化方法:四边形不等式优化。转:https://www.cnblogs.com/hadilo/p/5800306.html  在动态规划中,经常遇...

2019-06-30 20:35:16 256

原创 区间dp-洛谷-1880 环形石子归并

题目链接:https://www.luogu.org/problemnew/show/P1880题目大意:思路:考虑把环形展开成链:那么现在只要找到长度为n的区间的合并最小值和最大值就行了。#include<bits/stdc++.h>using namespace std;int a[205];int s[205];int dp1[205][205];int d...

2019-06-30 17:40:50 150

原创 区间dp-51nod-1021 石子归并

题目链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1021题目大意:for(int Len=2;Len<=n;Len++)//枚举区间长度 { for(int L=1;L<=n-Len+1;L++)//枚举区间起点 { int R=L+Len-1;...

2019-06-30 16:50:46 108

原创 2019-6-29 训练日记-状压dp结束

终于把状压dp刷完了,虽然感觉还是不太会,紫书上的题感觉很难,但是也应该比较经典吧,感觉状压dp就是暴力,完完全全的暴力。。。不过把状态压缩了,减少了大量的空间消耗。并且记忆化搜索,减少了重新状态的计算。这是我暂时的理解,明天开始刷区间dp。航6.29...

2019-06-29 23:32:26 95

原创 状压dp-UVA-1252-20个问题(最坏情况下的最好策略)

题目链接:http://fastvj.rainng.com/contest/307763#problem/E题目大意:思路:就是要求最坏情况下用最好的策略猜到这个数字,最坏情况:每次的询问,回答结果都是偏向次数多的情况。最好情况:每次选择询问的位置。思考:状压dp是一种优雅的暴力。复杂度往往是指数级。考虑了所有的情况。#include<bits/stdc++.h>usi...

2019-06-29 21:03:59 157

原创 状压dp-UVA-10817-校长的烦恼

题目链接:http://fastvj.rainng.com/contest/307763#problem/D题目大意:思路:思路比较容易明白,就是代码比较不容易写,对位运算必须非常熟悉。#include<bits/stdc++.h>using namespace std;int st[150];int fy[150];int s, n, m;int dp[150][...

2019-06-29 16:03:59 232

原创 2019-6-28 训练日记-写Java课设报告和记一次糟糕的cf比赛

下午那场cf打得心烦,B题怎么都写不出来,后来直接跳C题,发现也不会,看D题都过1000人了,发现果然是个sb题,然后发公告B题错误了。不计分。我就觉得那题绝对没有那么简单。今天就把Java的课设写完了。明天继续状压dp吧。航6.28...

2019-06-28 22:31:18 172

原创 dp -51nod -1202 子序列的个数

题目链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1202题目大意:给你一个序列,求它子序列的个数(不包含空集)直接dp:dp[i]前i个数的子序列个数。数字a[i]没有出现过:dp[i-1]的子序列+(有a[i]+没有a[i])dp[i]=dp[i-1]+dp[i-1]数字a[i]出现最近的位置位j:那么dp...

2019-06-27 22:23:19 76

原创 状压dp-POJ - 3254- 农夫玉米田

题目链接:题目大意:题目大意:农夫有一块地,被划分为m行n列大小相等的格子,其中一些格子是可以放牧的(用1标记),农夫可以在这些格子里放牛,其他格子则不能放牛(用0标记),并且要求不可以使相邻格子都有牛。现在输入数据给出这块地的大小及可否放牧的情况,求该农夫有多少种放牧方案可以选择(注意:任何格子都不放也是一种选择,不要忘记考虑!)转大佬的思路:https://www.cnblogs.com...

2019-06-27 21:37:54 428

原创 2019-6-27 训练日记-序列自动机

昨天晚上打div成功被群友带偏,E题就是个暴力,说是序列自动机,所以今天就搞了一天的序列自动机,发现的确是个好东西。尤其对子序列的遍历,统计子序列的个数。和查询两个字符串的公共子序列,都有很高的效率,应该还可以补一题状压dp。航6.27...

2019-06-27 20:05:51 110

原创 Codeforces Round #570 (Div. 3) E - Subsequences 子序列的枚举

题目链接:http://codeforces.com/contest/1183/problem/E题目大意:给你一个长度为n的字符串s,让你找到k个子序列。使得n-(每个子序列的长度最大)的和最小。输入n, k, s(1≤n,k≤100)找不到k个输出0,空串也算一个子序列。思路:很容易想到就是找长度最大的k个子序列。想到k很小,就可以枚举,但是一直没有找到好的枚举方法,我想可...

2019-06-27 20:01:13 181

原创 2019-6-26 训练日记-状压dp

昨天晚上失眠了,加上起的晚,差不多下午才开始写,然后就是debug半天,发现一个sb错。导致现在才A了两题,本来还可以A一题的。但是等会有cf。就休息了。状压dp好难航6.26...

2019-06-26 22:06:31 113

原创 状压dp-POJ - 3311-旅行商问题

题目链接:https://vjudge.net/contest/307763#problem/B题目大意:poj这题是变形:一个送外卖的人,要将外卖全部送去所有地点再回到店里,求最短路。店:0因为这里可以重复经过每个地点。所以首先用floyd求出最短路,然后再进行DP即可我看题解基本上都是递推dp,我写的记忆化搜索。因为没有删除别人的变量定义,导致数组开小,又debug了2个小时。...

2019-06-26 16:45:55 234

原创 状压dp-UVA-1091-最优配对问题-集合状压

题目链接:https://vjudge.net/contest/307763#problem/A题目大意:思路:我这里把i枚举的是最大值:#include <bits/stdc++.h>using namespace std;double x[20], y[20];double dp[1<<(17)];const double INF = 10e...

2019-06-25 22:33:07 178

原创 2019-6-25 训练日记-树形dp

之前一直说写训练日记的,然后就是咕咕咕,今天开始吧,一直在刷紫书上的dp,毕竟我dp是真的菜,今天就刷了4道树形dp的入门题。明天开始刷状压dp,争取两天能把7题刷完,比C学长刷的慢多了,当年他能一天10题+,我每天很多时间都用在debug上了。debug=找不同不能在一个专题浪费太多时间,又当心到时候出的题稍微难一个又不会。毕竟没有一起刷题队员是很一件难受的事。学弟们应该都忙着应付高...

2019-06-25 21:32:26 130

原创 状压dp-基础知识点

对于状态集合for(int i=0;i<(1<<n);I++){ }例如n=2所有的状态:00 01 10 11最大为3<(1<<2)还有位运算的常见操作

2019-06-25 20:58:39 174

原创 树上直径-树上最远点O(n)

题目大意:对于一棵n个结点的无根树,求出每个结点的最远点,要求时间复杂度为O(n)。对于一个点,距离它最远的点一定是直径的端点。证明:我们求直径的时候,两次dfs。两次bfs(或者dfs)方法:先从任意一点P出发,找离它最远的点Q,再从点Q出发,找离它最远的点W,W到Q的距离就是是的直径①若P已经在直径上,根据树的直径的定义可知Q也在直径上且为直径的一个端点②若P不在直径上,我们用...

2019-06-25 17:17:28 1133 1

原创 树形dp-UVA-1218-完美的服务-与父节点有关的dp

题目链接:https://vjudge.net/contest/307650#problem/B题目大意:思路:因为d(u, 1)和d(u, 2)对子节点来说只要一个区别d(u, 1):所有子节点都不是服务器d(u, 2):只有一个子节点是服务器那么d(u, 1):自己不是服务器,所有子节点都不是服务器,那么他的子节点状态是d(v, 2)d(u, 1)-d(v, 2)表示u节点...

2019-06-25 13:09:08 204

原创 树形dp-poj3342 - 树的最大独立集 及其 是否唯一

题目链接:http://poj.org/problem?id=3342题目大意:思路:字符串用map编个号。然后存树,可以无向图,也可以有向图,因为这里输入a b,b是a的老板。那么就是b->a。此处用d[u][0]表示不选择节点u时,以u为根的子树的最大可选人数,那么d[u][1]则表示选择节点u的时候,以u为根的子树的最大可选人数。同样的f[u][0]表示不选择节点u时,...

2019-06-24 22:27:52 151

原创 dp专题-UVa-1625- 合并字符串使代价最小

题目链接:https://vjudge.net/contest/306591#problem/H题目大意:输入两个长度分别为n和m的颜色序列,要求按顺序合并成同一个序列,即每次可以把一个序列开头的颜色放到新序列的尾部。对于每个颜色c来说,其跨度L(c)等于最大位置和最小位置之差。应使得合并成的序列中所有颜色的L(c)之和尽量小。思路:思路:…无后效性,但是这个代价条件想不出来怎么搞。参看紫书...

2019-06-24 16:07:32 175

原创 dp专题-UVA - 11584 划分回文串-O(n^2)处理子串是否为回文串

题目链接:https://vjudge.net/contest/306591#problem/G题目大意:意思就是:把一个字符串进行划分,要求每个子串为回文串,并且要求划分之后总的回文子串最少。dp其实很好想:dp[i]表示:以i为结尾划分的最少的回文数量。那么:dp[i]=min(dp[i], dp[j]+[j+1, i]为回文?1:0);(j<i)但是要频繁判断子串是否为回文...

2019-06-24 11:15:47 452

原创 dp专题-UVA - 11400-贪心+dp

题目链接:http://fastvj.rainng.com/contest/306591#problem/F题目大意:思路:我们先把所有的灯泡按电压排(升)序。结论一:结论1:每种灯泡要么不换,要么全换。如果单拿两种灯泡,我们什么情况换?(1) 灯泡2的灯泡价格比灯泡1低。(2) 灯泡2的价格比灯泡1的价格高,但是把灯泡1全部换成灯泡2, 可以减少灯泡的电源钱,比换灯泡的价格花...

2019-06-23 23:01:31 115

原创 dp专题-UVA - 12563-优先保证数量最多,再保证价值最大的01背包

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4008题目大意:如果问一个麦霸:“你在KTV里必唱的曲目有哪些?”得到的答案通常都会包含一首“神 曲”:古巨基的《劲歌金曲》。为什么呢?一般来说,KTV不会在“时间到”...

2019-06-23 21:19:36 232

原创 牛客练习赛48 矩阵前k大元素 multiset+贪心

题目链接:https://ac.nowcoder.com/acm/contest/923/E题目大意:思路:矩阵中每个元素都是a[i]+b[j],那么如果a[i]和b[j]都越小,那么这个矩阵元素值就越小。用multiset维护一下,a[i]和b[i]。每次查询时,优先队列暴力得到前k个就行了。重点讲一下:优先队列暴力优先队列的状态为:struct node{ multis...

2019-06-23 10:38:29 306

原创 牛客练习赛48 正整数哈希

题目链接:https://ac.nowcoder.com/acm/contest/923/B题目大意:当时看了看数太大,大整数复杂度也高,仔细看了看公式既然全部是乘法,那么取模后结果应该也是一样的。a[i], b[i]范围<=10^5直接预处理阶乘。哈希搞一搞。当时有预感,会卡ull。不过都写完了。直接交一发,果然wa。然后直接mod个大整数就AC了。#include <bits...

2019-06-22 23:31:22 259

原创 牛客练习赛48 差分+前缀和:维护多项式

题目链接:https://ac.nowcoder.com/acm/contest/923/C题目大意:当时自己就找了找三个人前一项和后一项的关系。直接差分搞的。但是当x的幂很大时,是很难找到规律的。差分有个性质。对于y=c,可以直接差分求。跟据差分数组的性质:b[i]=a[i]-[i-1]定义一:那么对于一个常数的区间修改+c,只要b[i]=c进行前缀和还原就可以了。定理二:如果...

2019-06-22 23:22:59 231

原创 dp专题-UVA - 116-多阶段的决策的问题

题目大意:思路:dp逆推。由最后一列推到第一列。记录路径(只要记录由下一列转化而来的行)。#include <bits/stdc++.h>using namespace std;int a[105][105];int dp[105][105];int Next[105][105];int main(){ int n, m; while(~scanf(...

2019-06-15 17:57:10 296

原创 dp专题-UVA - 1347-双调欧几里得旅行商问题-不重复的来回路径问题

题目大意:双调欧几里得旅行商问题(动态规划)给定平面上n(n≤1000)个点的坐标(按照x递增的顺序给出。各点x坐标不同,且均为 正整数),你的任务是设计一条路线,从最左边的点出发,走到最右边的点后再返回,要求 除了最左点和最右点之外每个点恰好经过一次,且路径总长度最短。两点间的长度为它们的 欧几里德距离,如图9-4所示。图9-4 旅行路线示意图正确的问题应该是这个:双调欧几里得旅行商...

2019-06-15 16:22:10 514

原创 dp专题-UVA - 437-DGA上的dp-立方体堆积求最大高度

题目链接:http://fastvj.rainng.com/contest/306591#problem/B题目大意:有n(n≤30)种立方体,每种都有无穷多个。要求选一些立方体摞成一根尽量高的柱子 (可以自行选择哪一条边作为高),使得每个立方体的底面长宽分别严格小于它下方立方体的底面长宽。把一个立方体分成三个点,底不同,点权=高,根据堆积的条件建图。DGA上跑最长链。#include...

2019-06-15 12:08:20 142

原创 dp专题-UVA - 1025-城市里的间谍-时间线作为序

题目链接:http://fastvj.rainng.com/contest/306591#problem/A题目大意:某城市的地铁是线性的,有n(2≤n≤50)个车站,从左到右编号为1~n。有M1辆列车从 第1站开始往右开,还有M2辆列车从第n站开始往左开。在时刻0,Mario从第1站出发,目的 是在时刻T(0≤T≤200)会见车站n的一个间谍。在车站等车时容易被抓,所以她决定尽量躲 在开动的...

2019-06-15 11:03:09 183

原创 dp专题-DGA上的dp:硬币问题-完全背包:回溯路径+记录路径

题目:硬币问题。有n种硬币,面值分别为V1, V2, …, Vn,每种都有无限多。给定非负整数S, 可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最小值和最大值。 1≤n≤100,0≤S≤10000,1≤Vi≤S。分析:这个模型和上一题类似,但也有一些明显的不同之处:上题并没有确定路径的起点和终点(可以把任意矩形放在第一个和最后一个),而本题的起点必须为S,终点必须为0;点固 定之后“...

2019-06-14 17:27:38 481 1

原创 dp专题-DGA上的dp-最长路:矩阵嵌套

题目大意:描述有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排成一行,使得除最后一个外,每一个矩形都可以嵌套在下一个矩形内。输入第一行是一个正正数N(0<N...

2019-06-14 16:25:40 130

原创 OS-进程同步-读者写者问题-读者优先

//允许多个读者同时读//不允许读-写 写-写存在#include<bits/stdc++.h>using namespace std;int RN;//最多允许Rn个读者同时读int L=RN, mx=1;//空位, 有无写者void Reader(){ do { Swait(L, 1, 1);//L>=1 L=L-1 //有...

2019-06-06 16:03:43 344

原创 OS-进程同步-哲学家就餐

避免死锁1.最后只允许4位哲学家同时去拿左边的筷子。保证一定有一位哲学家就餐2.当且仅当左右筷子均可以拿起时,才允许他拿起筷子就餐3.规定奇数编号的哲学家先拿左手的筷子, 偶数哲学家先拿右手的筷子//方法2 ADD信号量#include<bits/stdc++.h>using namespace std;bool chopstick[5]={1, 1, 1, 1, 1...

2019-06-06 14:08:41 155

原创 OS-进程同步-生产者消费者

#include<bits/stdc++.h>using namespace std;int in=0;//队列的队首int out=0;//队列的队尾int buff[n];//缓冲区bool mutex=1;//缓冲区是否可用int empty=n;//空缓冲区的个数int full=0; //有数据的缓冲区的个数void producer(){ d...

2019-06-06 13:19:56 722

原创 CCPC2019河南省省赛总结:lwh

之前的邀请赛突然变成省赛。多了次拿牌的机会,还挺开心的,然后旷了2节课和队友去打了网络赛,成绩还不错,应该能够拿个金,然后就是现场赛了,不知道什么原因,现场赛开始前推迟了20分钟,比赛开始。开始一眼望过去,学长选了题,签到题直接敲,样例过了直接交,AC,本来以为能抢个一血的(虽然开始不知道一血奖励500块),看榜,榜出来问题,全是WA。就没有管了,看D题有人过了。去看D题,又是签到题,但是学长敲完...

2019-06-06 12:41:55 994

原创 2018暑假训练总结之:lwh

在开始之前先摘写一句话:二进制是世界上最好的语言总的来说,这次的集训的收获非常大。首先认识了一些集训队里非常厉害的学长学姐和一起参加集训的队友。只有身边都是优秀的人才会促使自己变的优秀。集训前已经学习的算法:枚举->递归->二分算法->分治->dp->dfs->bfs->贪心这个假期的学习路线(感谢lxz学长和hlq学姐拉的专题):基础dp练习(一点...

2019-06-06 12:38:37 245

原创 codeforces Round 66 D. Array Splitting 数组分割k段(价值=∑a[i]*序列号) 求最大价值+后缀和

题目链接:http://codeforces.com/contest/1175/problem/D题目大意:把一个有n个元素的数组分割成k段,不能为空。价值=∑(每段的和*段号)。求最大的价值。例一:[-1 -2] [5 -4 8]价值= -3 * 1 + 9 * 2 = 15思路:开始想的贪心,在满足前面能够分的情况下,让最后一段尽可能大。以此类推。k=1时特判,剩余的全部相加...

2019-06-06 10:39:03 294

原创 codeforces #563 (Div. 2) D 构造区间异或 !=0 和 !=x 的最长序列+异或的区间性质转化成前缀和

题目链接:http://codeforces.com/contest/1174/problem/D题目大意:给你一个n,让你用[1, 2^n)的数来构造一个序列。使序列尽量长。要求:没有子序列的异或=0或者x。思路:直接构造这个序列很难,根据异或的知识,我们可以知道:如果sum[i]:异或的前缀和:sum[i]=a[1]^a[2]^...^a[i]1.如果这个子序列异或=0, 那么su...

2019-06-04 10:03:20 181

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除