自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 NOIP2014 复盘

NOIP2014复盘D1T1 P1328 生活大爆炸版剪刀石头布他们按照周期出圈,按照表里写的去判断即可。签到题。D1T2 P1351 联合权值这道题的突破口在于距离为2是什么意思。我们先解决第二问。在一颗有根树中,显然要不是爷孙关系,要不是兄弟关系。爷孙关系好处理,遍历一下乘上去就完事。重点是兄弟关系如何处理。有一个方便处理的结论:和的平方减去每个数分别的平方和,会等于两...

2019-10-03 09:12:00 209

转载 NOIP2013 复盘

NOIP2013复盘D1T1 P1965 转圈游戏要你求\(x+m \times 10^k\)在膜\(n\)下的值。ksm模板。D1T2 P1966 火柴排队\(\sum(a_i-b_i)^2=a_i^2+b_i^2-2a_ib_i\),平方项无论怎么排都会有,要增大的是\(a_ib_i\)这项。由排序不等式知:两个数越接近,数值越大。所以应该拿\(a\)数组和\(b\)数...

2019-10-03 09:10:00 239

转载 NOIP2012 复盘

NOIP2012复盘D1T1 P1079 Vigenère 密码只要把A到Z换成0到25,那么这个运算就变成了一个膜为26的加法了。记得不够的时候将\(k\)重复使用即可。代码:#include<iostream>using namespace std;string key, str;char cal(char k, char s){ if(k &g...

2019-10-03 09:06:00 225

转载 NOIP2015 复盘

NOIP2015 复盘D1T1 P2615 神奇的幻方直接模拟,无需多说NOIP2017初赛真题好像#include<cstdio>const int maxn = 45;int a[maxn][maxn];int n, x, y;//x means heng, y means shuvoid print(){ for(int i = 1; i &...

2019-08-11 11:25:00 163

转载 NOIP2016 复盘

NOIP2016 复盘D1T1 P1563 玩具谜题我一开始学OI的时候以为可以直接跳链表,用膝盖想一想就知道会T。所以做法就是判断顺时针转还是逆时针转,转完把超出范围的下标弄回来即可。代码:#include<bits/stdc++.h>using std::cin;using std::cout;using std::endl;using std::str...

2019-08-11 10:40:00 157

转载 NOIP2011 复盘

NOIP2011 复盘D1T1 P1003 铺地毯经典题目,不必多说#include<bits/stdc++.h>using std::cin;using std::cout;using std::endl;const int maxn = 10005;int a[maxn], b[maxn], g[maxn], k[maxn], n;int x, y;i...

2019-08-10 23:05:00 101

转载 KMP复习

KMP复习kmp真的是一个好算法,将暴力\(O(nm)\)的匹配改进成了\(O(n+m)\)。nb!推荐一个视频。#include<bits/stdc++.h>using std::cin;using std::cout;using std::endl;using std::string;const int maxn = 1000005;string s1...

2019-08-10 22:27:00 89

转载 Codeforces Round #575 (Div. 3)记录

Codeforces Round #575 (Div. 3)记录错过了上分的机会,上次不小心打了个div. 2结果直接掉了100多分。我绿了,也变弱了。找下场Div. 3上上分吧。A随便写了。我的思路是三个东西先排序,一个人先拿最少的,另一个人拿次少的。然后看剩下的能不能填补相差,如果能的话继续左右两边各补,补到剩1或0为止。其实上面说这么多,答案就等于\(\lfloor ...

2019-07-31 00:09:00 91

转载 P1288 取数游戏II

P1288 取数游戏II又是奇怪的博弈论这道题有很多的结论啊,从题解一个一个抄过来:那个先手的想取哪边,整局游戏就能固定取哪边。如果先手想要取某一条边的方向,只需要暴力取光即可,因为后手没办法回去了。当第一条边已经被取光的时候,每个人只可能一次把边取光了。否则对手会反手把这条边取光,你就输了。一旦开始了这种暴力取边的博弈的时候,谁最先碰到天生0边,谁就输了。因为整个游戏是...

2019-07-30 23:43:00 118

转载 P4105 [HEOI2014]南园满地堆轻絮

P4105 [HEOI2014]南园满地堆轻絮别看是紫题,其实是黄题的难度,显然的二分+贪心数据就照它写的生成即可。我们直接二分答案,即二分最大的修改幅度。显然修改幅度越大越容易成功,越小越不容易。考虑如何判定答案,我们直接贪心地来即可。第一个音符直接降到最低,后面的在满足大于等于前面的同时降到最低即可。保险开龙龙代码:#include<bits/stdc++.h...

2019-07-30 23:21:00 115

转载 luogu7月月赛记录

luogu7月月赛A借助反作弊系统,一些在月赛有抄袭作弊行为的选手被抓出来了!这道题直接按照题意写出递归即可。写不出来的退役罢(不是我吧)B这道题有丶东西有脑子的都知道思路:每次从第一位到倒数第二位中找出最大的数字,连带后面的数字一起取出,这样取\(\frac{n}{2}\)次就一定是最大的。但是怎么实现啊?因为有频繁的删除,我们不妨使用双向链表。其实没有必要记录数组中...

2019-07-30 23:16:00 74

转载 P1021 邮票面值设计

P1021 邮票面值设计学到了,搜索+dp剪枝思路确实很清晰,搜出\(K\)种邮票,拼邮票时也是完全背包,按NOIP2018D1T2那样去做,再维护下最大值就是了。但是问题就在于搜索部分太浪费时间了,我们考虑剪枝。搜邮票的时候记录前面张邮票的面值,从前面面值+1开始搜。当我们已经搜出了一部分邮票时,dp一下看看当前的\(MAX\),我们搜下张牌面值的上界就是\(MAX+1\)...

2019-07-30 22:52:00 92

转载 CF343D Water Tree

CF343D Water Tree写珂朵莉树也就图一乐呵,要真冲还是要写线段树题目给你一颗有根树,一个操作是将一个子树状态推平,另一个是将一个点到根的路径推平。第一个操作直接区间覆盖\([dfn[u],dfn[u] + size[u] - 1]\)即可。第二个操作按重链一直跳上去,遇到连续的就区间覆盖即可。区间覆盖当然可以用到珂朵莉树啦!但是这道题数据不随机,况且std::se...

2019-07-30 22:44:00 101

转载 距离算法学习记录

距离算法学习记录https://www.luogu.org/blog/xuxing/Distance-Algorithm一篇非常好的luogu日报。我从这里学来的。欧几里得距离定义上是两点之间不论地形的最短距离。二维: \(|AB| = \sqrt{(x_1 - x_2) ^ 2 + (y_1 - y_2) ^ 2}\)三维:\(|AB| = \sqrt{(x_1 - x_2...

2019-07-25 14:45:00 107

转载 P2515 [HAOI2010]软件安装

题意给你\(n\)个可能有依赖关系的物品,物品的价值为\(v_i\),重量为\(w_i\),背包大小为\(m\),要使装的物品价值最大。做法如果确保这些依赖关系一定是棵树的话,那么我们就可以愉快地进行树形dp。这里复习一下树形dp:这里设\(dp[u][j]\)表示以\(u\)为根的子树中装了重量为\(j\)的最大价值。在dfs的时候顺便更新:\[dp[u][j] = max...

2019-06-01 14:52:00 132

转载 P2425 小红帽的回文数

P2425 小红帽的回文数暴力枚举转换进制这个是人都会。但是只有40pts。其实有这么个规律:对于\(x\),在\(x+1\)进制下肯定是回文数,之后也是,因为只有一位。所以只需要枚举到\(x+1\)为止。但是没什么用。我们考虑优化其中一部分进制。当进制小于\(\sqrt{a_i}\)时,会有很多位,而大于等于\(\sqrt{a_i}\)时只有两位。两位还回文,那这两位数字都相...

2019-06-01 14:51:00 136

转载 P3398 仓鼠找sugar

题目意思很清楚,求树上两条路径是否相交。乱模拟就可以发现规律:当一条路径的lca在另外一条路径上的时候,这两条路径相交。证明方法从题解的讨论里面看来的“浮尘ij”dalao摘过来:可以反证,(不考虑两个lca相同的情况)两个lca到交点各有一条路径,他们到根节点又各有一条路径,出现环,矛盾。又有一个问题:如何判断一个点在一个路径上面?可以用到性质:该点到路径两端点的距离之和...

2019-06-01 14:43:00 119

转载 P2577 [ZJOI2005]午餐

神仙dp题。先做一个贪心的排序:吃得慢的先去打饭。即按b从大到小排序。接下来再做dp:我们可以这么定义状态:\(dp[i][j][k]\)表示前\(i\)个人,第一队的人打饭用了\(j\)时间,第二队的人打饭用了\(k\)时间,再吃完饭的最少时间。但是这样开的数组是\(200 \times 40000 \times 40000\),铁定MLE。我们发现:前\(i\)个人打饭的时...

2019-06-01 14:42:00 80

转载 P4377 [USACO18OPEN]Talent Show

这道题可以作为最优比率背包问题的模板题了。好像属于01分数规划。我们这里用二分答案的方法解决。题目要我们求\(\frac{\sum{t}}{\sum{w}}\)的最大值。我们设答案为\(ans\),则\(ans \leq \frac{\sum{t}}{\sum{w}}\)。化简一下就得到:\[\sum{t} - ans \times \sum{w} \geq 0\]注意上面的...

2019-06-01 14:42:00 136

转载 P2059 [JLOI2013]卡牌游戏

这是一道可怕的概率dp。如果\(n=1\),那么胜率100%。如果\(n=2\),可以暴力算出答案。如果\(n=3\),可以发现,当淘汰了其中的某个人的时候,局面就会变成\(n=2\)的其中一个局面!所以我们按\(n\)从小到大递推,可以逐步算出答案。具体看看我抄过来的代码8:for(int i = 2; i <= n; ++i)//根据i-1人环,求出i人环的情况 ...

2019-06-01 14:41:00 102

转载 P1456 Monkey King

左偏树什么的已经忘记啦,但是平板电视是忘不掉的。我们只需要来这么一下:#include<exts/pb_ds/priority_queue.hpp>__gnu_pbds::priority<int> heap[maxn];// 如果要小根堆就在int后面来个std::greater<int>用一个冰茶姬维护集合,每次从所在集合拿出最大元素。然...

2019-06-01 14:40:00 188

转载 P1484 种树

这是一道不错的dp转反悔贪心题。当\(n\)和\(k\)很小的时候,肯定能想到dp。章口就莱。但是现在\(n \leq 500000\),当场去世。我们考虑在\(i\)种树,会获得\(a_i\)的获利。当然,我们也能不在\(i\)种,转而在\(i-1\)和\(i+1\)种。会获得\(a_{i-1}+a_{i+1}\)的利润。可不可以反悔呢?实际上是可以的。在选完\(i\)后,...

2019-06-01 14:40:00 113

转载 P1199 三国游戏

第一道博弈论的题目。有点目瞪口呆哦!本来想打了0骗下分的,结果全部WA???翻开题解发现这家伙是不会输的。。。我们来看看这道博弈论。我们是先走的,根据贪心思想,一定先拿走默契度最高的两个武将其中之一。而计算机是个铁头娃,他只会把剩下的被我们拿到后默契度最高的武将连抢带ban。所以当我们先选出两个最好的之一,剩下的那个一定会被选走。然后我们继续选默契度最高的两个武将之一,他...

2019-06-01 14:39:00 76

转载 P1039 侦探推理

刚学OI的时候觉得难得要死。现在看……因为我们不知道谁是罪犯和今天是星期几,所以我们全都枚举一下,然后判定答案。这样思路是不是就很显然了?先处理下证词那些字符串。然后对每个答案进行判定。判定出说谎人数不符合或又说真话又说假话等情况,就直接判false。然后对于每一个人,只需要有一天满足是凶手,就说明这个人是凶手。所以思路讲到这里就完了。接下来是最难的实现环节:首先面对的是...

2019-06-01 14:39:00 83

转载 CF1153D Serval and Rooted Tree

又是一道不会的CF题。。。好吧这道题我是真的不知道。如果有弄明白的小可爱请多多指教qwq代码:#include<bits/stdc++.h>using std::cin;using std::cout;using std::endl;const int maxn = 300005;const int INF = 0x3f3f3f3f;std::vector...

2019-06-01 14:38:00 113

转载 CF1151B Dima and a Bad XOR

题目乍一看很难做啊!你怎么找出一个xor和大于0的来啊?好像没有固定算法啊!那就不要用固定算法,用随机算法啊!(欺负那些脑子不灵通的蒟蒻,比如我)做法很简单,在每一行都随机一个数,拿来xor,如果可以的话就输出,不能的话就继续找,找到快超时还没找到就直接判无解。想不到8!我想不到!代码:#include<bits/stdc++.h>using std::cin...

2019-06-01 14:38:00 148

转载 NOIP2017 复盘

NOIP2017 复盘D1T1 小凯的疑惑可惜了,我当时只会写\(1\leq a,b \leq 50\)的暴力。我还以为这道题就这样了。首先,看到这道题目的输入输出这么少,而且\(a,b\leq 10^9\),就应该想到打表找规律!暴力程序真的不要太好写,但是规律就难看出来了。结论是\(a \times b - a - b\)。合理利用diff或者fc就很好对拍了。D1T2...

2019-03-16 23:53:00 136

转载 Codeforces Round #544 (Div. 3) 错过上分记

Codeforces Round #544 (Div. 3) 错过上分记rating是不可能上1600的。这辈子都不可能的。所以只能在Div.3遨游。Virtual Participant做到简单的比赛总是很恨哦!A全换算成秒,算平均值,再换算回来就完事了。用printf的话就可以直接用%02d,可惜我当时用的是cout,浪费了一点时间。B边界情况没考虑明白,我WA了3次。...

2019-03-10 11:25:00 169

转载 P3879 [TJOI2010]阅读理解 [STL]

P3879 [TJOI2010]阅读理解我永远喜欢STL显然要用到哈希类似的东西,说到哈希我就想到了map。但是map怎么存一串数字还不MLE啊?说到存一串数字还不MLE我就先到了vector。所以这道题的做法就是搞一个map<string,vector<int> >,暴力解决。WA警告:输出的序号要去重。比如样例里面查ha只能有一个1。听说数据能卡t...

2019-03-10 10:45:00 172

转载 P1240 诸侯安置 [dp]

P1240 诸侯安置这道题跟前面的“车的放置”是差不多的。只不过那道题碰巧可以用组合数解决,而这道题只能用dp。首先要转换这个图,这个图这么奇怪显然无法dp。我们只需要如第二个题解一般,把所有行都向右对齐,得到的就是从从左到右列数不严格递增的新图。根据dp的无后效性原理,这种图是可以用来dp的。dp方法也简单:\(dp[i][j]\)设前第\(i\)列已经放置了\(j\)个的方...

2019-03-10 10:38:00 168

转载 P1350 车的放置 [排列组合]

P1350 车的放置递推不会,只会排列组合。。。我们把原来的这个棋盘分成两个小矩形棋盘,然后计算方案数。设在上面放了\(i\)个棋子,那么就必须在下面放\(k-i\)个棋子。先在上面的矩形放置,方案数是\(C_a^i \times C_b^i\times i!\)但是下面的矩形就需要考虑上面矩形的限制了:已经放过的列就不能再放。所以在下面放置的方案数是\(C_{a+c-i}^...

2019-02-23 17:33:00 130

转载 P2216 [HAOI2007]理想的正方形 [二维RMQ]

P2216 [HAOI2007]理想的正方形这道题就是标准的二维RMQ模板。回顾一下原来的RMQ,分两个阶段,先倍增的初始化,再\(O(1)\)地求答案。二维RMQ也是有异曲同工之妙的。这个最值怎么定义?我们设\(maxv[i][j][k]\)为以\((i,j)\)为左上角的\(2^k\times 2^k\)正方形区域中的最大值。最小值同理,下面都只讨论最大值。怎么初始化?我们同...

2019-02-23 16:16:00 131

转载 Codeforces Global Round 1 晕阙记

Codeforces Global Round 1 晕阙记我做这场比赛的时候晕得要死。做这三道题做太久了,rating涨不起来啊!A如果愿意的话你可以看做是膜2意义下的运算,写快速幂等各种膜运算。只不过对手速有考验。B我题意差点理解不了了。这里讲一下题意:给你\(m\)条棍子,编号从\(1\)到\(m\),有\(n\)个位置的棍子断了。你有无限长的修改带,求你用\(k\)次机...

2019-02-19 22:07:00 161

转载 Codeforces Round #538 (Div. 2)原题记

Codeforces Round #538 (Div. 2)原题记B题看晕了,C题神仙数论题。无意点开luogu,发现C题原来是原题。1h30min左右抄了题解交了上去,没想到还能涨一点rating。。。A直接模拟就是了。我懒得再看一次题面。#include<bits/stdc++.h>using std::cin;using std::cout;using...

2019-02-19 21:50:00 72

转载 P2491 [SDOI2011]消防 [树的直径][two-pointers]

P2491 [SDOI2011]消防这道题有点东西首先,这道题如果有了这么个结论就没二分答案什么事情了:这条长度不超过\(s\)的路径一定在直径上所以就是和“树网的核”一个思路:在直径上面跑two-pointers,因为长度越长显然答案更优。我们先求个直径,用两次dfs来求。之后在直径上尺取的时候,当得到一段区间的时候,把直径两个端点到当前区间两个端点的距离计入答案。这里考虑...

2019-02-19 21:27:00 140

转载 P1516 青蛙的约会 [exgcd]

P1516 青蛙的约会题意:在一个长为\(l\)的环上面有两只青蛙,一只出发点为\(x\),一次跳\(m\),另一只出发点为\(y\),一次跳\(n\),求相遇时间。这个长为\(l\)的环不难想到了以\(l\)为模的同余。其实就是求这个\(t\):\(x+t\times m \equiv y + t \times n\pmod l\)把这个变成普通式子:\(x - y + t(m ...

2019-02-19 21:06:00 166

转载 P1950 长方形_NOI导刊2009提高(2)[单调栈][贡献法]

P1950 长方形_NOI导刊2009提高(2)题意:给你\(n\times m\)的矩形,求没有*的子矩形数量。\(1\leq n,m\leq 1000\)。数据比较弱的题目是luoguP1191,\(1\leq n,m \leq 100\)。甚至可以用\(O(n^4)\)水过。这道题的最优解法\(O(n^2)\)是这样的:枚举子矩形的底边,预处理出每一列可以往上延伸的长度\...

2019-02-19 16:36:00 197

转载 P1333 瑞瑞的木棍 [并查集][欧拉路径]

P1333 瑞瑞的木棍题意:给你若干条边,端点是名字,求能否一笔画。图可能不连通。针对这些名字,显然用一下hash或者trie。要判断能否一笔画,首先要判断是否只有一个连通块。显然可以用并查集解决。当所有点的fa值相同时就只有一个连通块了。然后就是一笔画问题的定理:连通的无向图\(G\)有欧拉路径的充要条件是:\(G\)中奇顶点(连接的边数量为奇数的顶点)的数目等于0或者2。...

2019-02-19 16:20:00 151

转载 P3201 [HNOI2009]梦幻布丁 [启发式合并][set]

P3201 [HNOI2009]梦幻布丁题意:N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1的四个布丁一共有3段颜色.这道题是可以用数据结构合并的,然而我们可以用STL水过。用set。对每种颜色开一个set,在set里面存下标。合并做法就是暴力地把一个set里面的所有元素都添加进另一个set。...

2019-02-19 16:20:00 168

转载 P1041 传染病控制[搜索][树]

P1041 传染病控制远古NOIP题放到现在真的容易得一批给你一棵树,以1为根。1点有病,并且有边就会传染,一轮传染可以断边一次,求最好的断边方案下的最小感染人数。有一个贪心的思想:当前哪一层要被感染,我们就亡羊补牢,去断这个路径上的任意一条边。因为树是越走size越小的,去断上面已经感染的就很睿智,去断下面的最终感染的人数会更多,保护的人变少了。很自然可以预处理出这棵树每个点...

2019-02-15 00:57:00 207

空空如也

空空如也

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

TA关注的人

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