自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(97)
  • 收藏
  • 关注

转载 【游记】NOIP2018 退役滚粗记

day0早上6点半到机房 又复习了一下还没看的板子刷了2道水题练手感 结果还是肛起了fgo早上单抽出梅林 美滋滋感觉把两天的RP都用光了早上坐上了去福州的动车 一路上说说笑笑 自信满满下午三点左右到的考场吧在福州农林大学 环境挺好的试机 打了波线段树 优先队列 重载运算符还想打个tarjan的 被老师催着下去了然后去了传说中江景房的宾馆江景是...

2018-11-11 23:10:00 183

转载 【题解】洛谷P4158 [SCOI2009] 粉刷匠(DP)

次元传送门:洛谷P4158思路f[i][j][k][0/1]表示在坐标为(i,j)的格子 已经涂了k次 (0是此格子涂错 1是此格子涂对)涂对的格子数显然的是 每次换行都要增加一次次数那么当j=1时:f[i][j][k][1]=max(f[i-1][m][k-1][1],f[i-1][m][k-1][0])+1;//可以从前一排最后一个转移过来 记得+1f[i...

2018-11-06 18:37:00 257

转载 【题解】洛谷P1070 道路游戏(线性DP)

次元传送门:洛谷P1070思路一开始以为要用什么玄学优化 没想到O3就可以过了我们只需要设f[i]为到时间i时的最多金币需要倒着推回去 即当前值可以从某个点来那么状态转移方程为:f[i]=max(f[i],f[i-k]+val-cost[now]);now表示从now这个工厂来cost表示在now买下了机器人val为从now走i个单位时间路上可...

2018-11-06 11:30:00 246

转载 【题解】洛谷P2577 [ZJOI2005] 午餐(DP+贪心)

次元传送门:洛谷P2577思路首先贪心是必须的我们能感性地理解出吃饭慢的必须先吃饭(结合一下生活)因此我们可以先按吃饭时间从大到小排序然后就能自然地想到用f[i][j][k]表示前i个人在第一个窗口排队用了j时间 在第二个窗口排队用了k时间然后就自然地炸空间了所以我们要降维因为我们可以由第一个窗口推出第二个窗口所用时间 所以我们可以改原来的数组为:f...

2018-11-06 09:01:00 188

转载 【题解】洛谷P1169 [ZJOI2007] 棋盘制作(坐标DP+悬线法)

次元传送门:洛谷P1169思路浙江省选果然不一般用到一个从来没有听过的算法 悬线法:所谓悬线法 就是用一条线(长度任意)在矩阵中判断这条线能到达的最左边和最右边及这条线的长度 即可得到这个矩阵的最大值那么我们定义3个数组l[i][j]表示(i,j)能到达最左边的坐标r[i][j]表示(i,j)能到达最右边的坐标up[i][j]表示(i,j)能向上最大距离 ...

2018-11-05 21:30:00 133

转载 【题解】洛谷P1273 有线电视网(树上分组背包)

次元传送门:洛谷P1273思路一开始想的是普通树形DP 但是好像实现不大好观摩了一下题解是树上分组背包设f[i][j]为以i为根的子树中取j个客户得到的总价值我们可以以i为根有j组在每一组中分别又取1个,2个,3个......n个客户化为背包思想即 j为一共有j组 背包容量为每组的客户数总和 把该节点的每个儿子看成一组 每组中的元素为选一个,选两个...选...

2018-11-04 00:41:00 120

转载 【题解】洛谷P1373 小a和uim之大逃离(坐标DP)

次元传送门:洛谷P1373思路设f[i][j][t][1/0]表示走到(i,j)时 小a减去uim的差值为t 当前是小a取(0) uim取(1)那么转移就很明显了f[i][j][t][0]=(f[i][j][t][0]+f[i-1][j][(t-map[i][j]+k)%k][1])%1000000007;//因为当前是小a取 前一步是uim取 差值增加f[i][...

2018-11-03 20:15:00 103

转载 【题解】洛谷P1966 [NOIP2013TG] 火柴排队(树状数组+逆序对)

次元传送门:洛谷P1966思路显然在两排中 每排第i小的分别对应就可取得最小值(对此不给予证明懒)所以我们只在意两排的火柴是第几根 高度只需要用来进行排序(先把两个序列改成有序的方便离散化)因此我们对火柴的高度进行离散化 把火柴高度变为1到n的序列然后我们只需要对一个序列a固定 求另一个序列b相对于前一个序列a的逆序对即可举个栗子????:a[]=1 123 7 9...

2018-11-02 21:44:00 129

转载 【题解】洛谷P1073 [NOIP2009TG] 最优贸易(SPFA+分层图)

次元传送门:洛谷P1073思路一开始看题目嗅出了强连通分量的气息 但是嫌长没打听机房做过的dalao说可以用分层图 从来没用过 就参考题解了解一下因为每个城市可以走好几次 所以说我们可以在图上随意走动所以第一层图就建一个边权为0的图 随意走动不影响考虑在某个点买入水晶球建立一条有向边到新图上 边权为-w[i] 指向i所能到达的点(第二层图中)它表示:假如我选...

2018-11-01 15:02:00 105

转载 【题解】洛谷P1080 [NOIP2012TG] 国王游戏(贪心+高精度)

次元传送门:;洛谷P1080思路我们模拟一下只有两个大臣的时候发现当a1​∗b1​<a2​∗b2​是ans1<ans2所以我们对所有大臣关于左右手之积进行排序得到最多钱的大臣就是最后一个(当有左手除右手向下取整为0的时候不一定 只有第二个点可以特判)所以答案用前n-1个人的左手相乘除以第n个人的右手记得高精代码#include<i...

2018-11-01 11:04:00 176

转载 【题解】洛谷P1315 [NOIP2011TG] 观光公交(前缀和+贪心)

次元传送门:洛谷P1315思路思路大概想到了 可是代码实现却没想到 所以参考题解了 D2T3的贪心果然有难度我们考虑在每次用加速器有两种情况到下一个点还需要等待:以后的时间就不再影响了到下一个点不需要等待:那么就会影响到后面的时间直到出现情况1(或者到最后一个点)用sum[i]数组记录到i时的总人数 进行前缀和处理 e[i]为i可以影响到的最远的点...

2018-10-31 22:14:00 96

转载 【题解】洛谷P1941 [NOIP2014TG] 飞扬的小鸟(背包DP)

次元传送门:洛谷P1941思路从题意可知 在每个单位时间内 可以无限地向上飞 但是只能向下掉一次所以我们可以考虑运用背包解决这道题上升时 用完全背包下降时 用01背包设f[x][y]为在坐标(x,y)时的最小点击屏幕次数当飞到天花板时和撞到柱子时特判一开始设ans为极大值如果最后一排的值都为极大值则无解如果无解就倒着回来判断最远能到达第几根柱子...

2018-10-31 19:52:00 137

转载 【题解】洛谷P2679 [NOIP2015TG] 子串(DP+滚动数组)

次元传送门:洛谷P2679思路蒟蒻一开始并没有思路而去看了题解我们发现对于两个字串的位置 我们只需要管他们匹配成功或者匹配失败即可f[i][j][k] 记录当前 a[i]不论等不等于b[j] 我们可以选用也可以不选用 使用k个子串方案数(因为题目没有要求一定位置相同)r[i][j][k] 记录当前 a[i]==b[j] 并且我们选用a[i]和b[j] 方案数 使用k个...

2018-10-31 10:45:00 89

转载 【题解】洛谷P1514 [NOIP2010TG] 引水入城(DFS+DP)

次元传送门:洛谷P1514思路可以证明如果有解 那么每个蓄水池可以覆盖到的干旱区必定是线段证明:举个栗子8 9 87 9 76 9 6明显到不了中间的点 如果不是连续的线段 中间肯定有一个点到不了 无解那么我们就可以从每个开头城市进行DFS 并且同时递归计算每个点可以到达的最左边和最右边最后进行一个线段覆盖问题解决注意最左边是取最小值 最右边是...

2018-10-30 19:21:00 71

转载 【题解】洛谷P1052 [NOIP2005TG] 过河(DP+离散化)

题目来源:洛谷P1052思路一开始觉得是贪心但是仔细一想不对 是DP再仔细一看数据不对 有点大如果直接存下的话 显然会炸那么就需要考虑离散化因为一步最大跳10格 那么我们考虑从1到10都跳一遍所以最大公倍数为2520那么我们就可以枚举两个石头中间的长度mod 2520 即可缩短总长度详细见代码代码#include<iostrea...

2018-10-30 13:42:00 166

转载 【题解】洛谷P3952 [NOIP2017TG] 时间复杂度(模拟)

题目来源:洛谷P3952思路纯模拟没啥可说的了果然好复杂参考了你谷一个40行代码代码#include<iostream>#include<cstdio>#include<cstring>using namespace std;int T,tot,num,Max,stand,now,k,n,cnt;int ...

2018-10-29 21:43:00 148

转载 【题解】洛谷P3953 [NOIP2017TG] 逛公园(记忆化搜索+SPFA)

题目来源:洛谷P3953思路先用SPFA求一遍最短路在求最短路的同时可以把所有点到终点的最短路求出来 dis数组注意要反向SPFA 因为从起点开始可能会走到一些奇怪的路上导致时间负责度增加我们定一个f[u][k]数组为从当前节点u还剩时间k到达终点的方案原来从u走到终点的最短路径消耗时间为dis[u]而我们现在考虑走(u,v,w)这条边(不是最短路)那...

2018-10-29 16:49:00 106

转载 【题解】洛谷P2827 [NOIP2016TG] 蚯蚓(优先队列)

题目来源:洛谷P2827思路阅读理解题一开始以为是裸的优先队列而已但是发现维护一个切开并且其他的要分别加上一个值很不方便而且如果直接用优先队列会TLE3到4个点 自测85分所以我们需要发现题目中蕴含的单调性(我才不会说是从题解中发现的呢)来自你谷aiyougege大佬的证明:先被切掉的蚯蚓分成的蚯蚓一定比后切掉的蚯蚓分成的蚯蚓大. 假设这两只蚯蚓分别为...

2018-10-28 20:07:00 138

转载 【题解】洛谷P1351 [NOIP2014TG] 联合权值(树形结构+DFS)

题目来源:洛谷P1351思路由题意可得图为一棵树在一棵树上距离为2的两个点有两种情况当前点与其爷爷当前点的两个儿子当情况为当前点与其爷爷时比较好操作只需要在传递时不仅传递父亲 还传递爷爷即可当情况为两个儿子时其实我们只需要的是所有儿子中比较大的两个所以我们在遍历当前点的所有儿子时取出最大值和次大值即可最后的最大值为两种情况中的最大值...

2018-10-27 21:25:00 102

转载 【题解】洛谷P1541 [NOIP2010TG] 乌龟棋(类似背包的DP)

题目来源:洛谷P1541思路类似背包的题总之就是四种卡牌取的先后顺序不同导致的最终ans不同所以我们用一个四维数组每一维分别表示第几种取了几张的最大分数然后就是简单DP解决代码#include<iostream>using namespace std;#define maxn 355int n,m,ans;int card[5]...

2018-10-27 19:51:00 121

转载 【题解】洛谷P1311 [NOIP2011TG] 选择客栈(递推)

题目来源:洛谷P1311思路纯暴力明显过不了这道题所以我们要考虑如何优化到至多只能到nlogn但是我们发现可以更优到O(n)我们假设我们当前寻找的是第二个人住的客栈i那么第一个人住的客栈肯定在i之前如果在枚举的时候发现一家客栈满足小于可承受价格那么这家客栈左边与i客栈颜色相同的都可以视为一种方案所以我们需要一个数组sum[k]记录到i之前第k种颜色一共...

2018-10-27 16:21:00 125

转载 【题解】洛谷P2296 [NOIP2014TG] 寻找道路(SPFA+DFS)

题目来源:洛谷P2296思路一开始看还以为是一道水题 虽然本来就挺水的本道题的难点在于如何判断是否路径上的点都会直接或者间接连着终点我们需要在一开始多建一个反向图然后从终点DFS回去 把路径上的点标记DFS完之后遍历所有的点 如果当前点没有被标记 说明其不会直接或者间接连着终点那么我们只需要把没有被标记的点在反向图中到达的点(也就是正向图中到达这个点的前一个点...

2018-10-26 21:33:00 118

转载 【题解】洛谷P2661 [NOIP2015TG] 信息传递

题目来源:洛谷P2661思路运用并查集查找图中最小环的长度如果A传递信息给B 就从A加一条边指向B 并更新A的父节点 从A到父节点的路径长度为B到父节点的路径长度+1如果有两个点的祖先相同而且他们之中有一个人要传递信息给另一个人那么说明他们之间有一个环 环的长度就是他们分别到祖先的路径长之和+1代码#include<iostream>usi...

2018-10-25 20:30:00 93

转载 【题解】洛谷P1065 [NOIP2006TG] 作业调度方案(模拟+阅读理解)

次元传送门:洛谷P1065思路简单讲一下用到的数组含义work 第i个工件已经做了几道工序num 第i个工序的安排顺序finnish 第i个工件每道工序的结束时间need 第i个工件第j道工序需要的机器tim 第i个工件第j道工序需要的时间mac 第i个机器的状态我们遍历时间线找出可以安排下去的工序就安排下去即可 (因为输入已经满足最优)代码...

2018-10-25 18:33:00 341

转载 【题解】洛谷P1032 [NOIP2002TG]字串变换(BFS+字符串)

洛谷P1032:https://www.luogu.org/problemnew/show/P1032思路初看题目觉得挺简单的一道题但是仔细想了一下发现实现代码挺麻烦的而且2002年的毒瘤输入是什么鬼啊 连组数都没有的真的好吗这道题参考了题解才完成需要用到我从来没有用过的map来判重然后就是广搜+string的一些自带函数运用PS:这道题本地测试数...

2018-10-24 20:16:00 124

转载 【题解】洛谷P1967 [NOIP2013TG] 货车运输(LCA+kruscal重构树)

洛谷P1967:https://www.luogu.org/problemnew/show/P1967思路感觉2013年D1T3并不是非常难但是蒟蒻还是WA了一次从题目描述中看出每个点之间有许多条路径而我们需要的是找出整条路径中最大的最小可通过量一开始看到题目会想到是不是最大流问题 但是仔细一想其实并不用那么麻烦我们只需要用kruscal找出最大生成树...

2018-10-22 21:34:00 120

转载 【题解】洛谷P3959 [NOIP2017TG] 宝藏(状压DP+DFS)

洛谷P3959:https://www.luogu.org/problemnew/show/P3959前言NOIP2017时还很弱(现在也很弱看出来是DP 但是并不会状压DP现在看来思路并不复杂 只是存状态有点难想到思路因为n最大为12所以可以想到是状压因为n<=12 所以可以用邻接矩阵存下图枚举每个点作为起点开始DFS注意每次DFS...

2018-10-20 17:39:00 91

转载 【题解】洛谷P2704 [NOI2001] 炮兵阵地(状压DP)

洛谷P2704:https://www.luogu.org/problemnew/show/P2704思路这道题一开始以为是什么基于状压的高端算法没想到只是一道加了一行状态判断的状压DP而已与普通状压并无多大区别详细见代码代码#include<iostream>using namespace std;#define maxn 1...

2018-10-19 19:53:00 106

转载 【题解】洛谷P1879 [USACO06NOV] Corn Fields(状压DP)

洛谷P1879:https://www.luogu.org/problemnew/show/P1879思路把题目翻译成人话在n*m的棋盘 每个格子不是0就是11表示可以种 0表示不能种 相邻的格子不能同时种 求总方案数把每行看成一个n位的2进制数 预处理出每行的状态后 进行DP即可PS:在处理每行的初始状态时 将其取反后更好操作代码#inclu...

2018-10-18 18:35:00 106

转载 【题解】洛谷P1896 [SCOI2005] 互不侵犯(状压DP)

洛谷P1896:https://www.luogu.org/problemnew/show/P1896前言这是一道状压DP的经典题原来已经做过了 但是快要NOIP 复习一波关于一些位运算的知识点参考:https://blog.csdn.net/fox64194167/article/details/20692645思路看数据识算法系列我们...

2018-10-17 20:29:00 60

转载 【题解】洛谷P2375 [NOI2014] 动物园(KMP)

洛谷P2375:https://www.luogu.org/problemnew/show/P2375思路这道题可以说是完全刷新了本蒟蒻对KMP的理解感觉对next数组的理解上升到一个新的高度首先题目给出了next数组的定义关于整个字串 next[len]为前缀与后缀相同的最长长度我们给出一张从你谷题解中扒下来的图我们可以观察到对于整个长度为len...

2018-10-17 19:43:00 167

转载 【题解】洛谷P3435 [POI2006] OKR-Periods of Words(KMP)

洛谷P3435:https://www.luogu.org/problemnew/show/P3435思路来自Kamijoulndex大佬的解释先把题面转成人话:对于给定串的每个前缀i,求最长的,使这个字符串重复两遍能覆盖原前缀i的前缀(就是前缀i的一个前缀),求所有的这些“前缀的前缀”的长度和因为前缀i长度为p[i]的前缀和后缀相同这说明:如果i...

2018-10-13 11:20:00 148

转载 【题解】洛谷P4391 [BOI2009] Radio Transmission(KMP)

洛谷P4391:https://www.luogu.org/problemnew/show/P4391思路对于给定的字符串运用KMP思想设P[x]为前x个字符前缀和后缀相同的最长长度则对于题目中的长度len有:len-p[len]为第一个重复子串的最后一个字符位置因此len-p[len]即重复子串长度证明:因为p[len]为前len个字符中前缀和后缀相同的最长长度先对...

2018-10-13 09:00:00 189

转载 【题解】UVA10298 Power String(KMP)

UVA10298:https://www.luogu.org/problemnew/show/UVA10298思路设P[x]数组为 前x个字符的最大前缀长度等于后缀字串由P数组的定义我们可以知道 对于给定的长度为n字符串则n-P[n]所在位置就是这个字符串的重复最长子串的最后一个字符的位置如果这个字符串真的是由其中的一个子串循环而成 那么它的长度肯定是n-P[...

2018-10-13 07:38:00 54

转载 【题解】洛谷P4281 [AHOI2008] 紧急集合(求三个点LCA)

洛谷P4281:https://www.luogu.org/problemnew/show/P4281思路答案所在的点必定是三个人所在点之间路径上的一点本蒟蒻一开始的想法是:先求出2个点之间的LCA 再求出此LCA和第3个点的LCA但是没有考虑到有可能答案所在点可能比2个点之间的LCA深度更深因为两点之间的LCA是两点共同能到达的深度最浅的一个点所以我们可...

2018-10-12 21:13:00 346

转载 【数据结构】浅谈倍增求LCA

思路运用树上倍增法可以高效率地求出两点x,y的公共祖先LCA我们设f[x][k]表示x的2k辈祖先f[x][0]为x的父节点因为从x向根节点走2k 可以看成从x走2k-1步 再走2k-1步所以对于1≤k≤logn 有f[x][k]=f[f[x][k-1]][k-1] (类似二分思想)预处理:因此我们可以对树进行遍历后得到所有f[x][0] 再计算出f数组的所有...

2018-10-11 22:34:00 102

转载 【题解】洛谷P4180 [BJWC2010] 严格次小生成树(最小生成树+倍增求LCA)

洛谷P4180:https://www.luogu.org/problemnew/show/P4180前言这可以说是本蒟蒻打过最长的代码了思路先求出此图中的最小生成树 权值为tot 我们称这棵树中的n-1条边为“树边” 其他m-n+1条边为“非树边”枚举每条非树边(x,y,z)添加到最小生成树中 可以在x,y之间构成一个环设x,y之间的路径最大值为val1...

2018-10-11 22:23:00 100

转载 【题解】POJ 3417 Network(倍增求LCA+DP+树上差分)

POJ3417:http://poj.org/problem?id=3417思路我们注意到由“主要边”构成一颗树 “附加边”则是非树边 把一条附加边(x,y)加入树中 会与树上x,y之间构成一个环因此 我们称每条附加边(x,y)都把树上x,y之间的路径覆盖一次 我们只需要统计出每条“主要边”被覆盖几次有以下几种情况第一步把覆盖0次的主要边切断 则第二步可以...

2018-10-10 22:31:00 82

转载 【题解】洛谷P4145 花神游历各国(线段树)

洛谷P4145:https://www.luogu.org/problemnew/show/P4145思路这道题的重点在于sqrt(1)=1 一个限制条件与正常线段树不同的是区间修改为开方那么我们用一个数组记录每个区间的最大值 只有当这个区间的最大值大于1时才需要开方因此 当我们更新到叶子节点时把每个区间的最大值和sum值开方即可注意题目中说l可能大于r ...

2018-10-09 19:54:00 82

转载 【题解】洛谷P1198 [JSOI2008] 最大数(线段树)

洛谷P1198:https://www.luogu.org/problemnew/show/P1198思路一道水水的线段树 20分钟A掉这道题只涉及到单点修改和区间查询 所以这道题甚至不用Lazy-Tag每次加入一个新的点就是修改一个节点总区间长为操作次数m (假设所有操作都为添加一个节点)因此题目就简单多了代码#include<io...

2018-10-09 19:04:00 113

空空如也

空空如也

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

TA关注的人

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