- 博客(26)
- 收藏
- 关注
转载 [NOIP 2011]选择客栈
题目链接题意简述:现在要选两个客栈出来,这两个客栈满足两个条件:1.颜色相同 2.中间有一家咖啡馆/客栈价格低于P(包括他们本身)。思路:由于这道题只是问有几种选择客栈的情况,而不是选两个客栈与一个咖啡馆。换句话说,只要这两个客栈中间有咖啡馆就行了,至于到底是哪个不重要。开始枚举客栈,我们记录对于当前客栈来讲最近的可选咖啡馆(如果自己的咖啡馆可选那就是自己,不然就继承),并且动态...
2019-09-22 12:46:00
465
转载 [二分图初步]【模板】二分图匹配
题目链接题目简述:就是二分图板子。Q:什么是二分图呢?A:二分图就是一个无向图可以分成两个子集,且满足这个图中每条边的端点都是属于不同子集的。什么意思呢?上面这个看起来好像有点晦涩难懂,其实这个可以很好地用生活来解释。在现实生活中,每个班级都有那么几对“关系异常”的男女。我们将整个年级中所有这样的人拉出来站在一起,如果发现没有一对是同性的(笑),那么就说明这是一群符合大众...
2019-09-21 20:25:00
160
转载 [NOIP 2019]旅行
题目链接题意简介:现有一个图,小Y要把它走完,每个点只去一次,路径字典序最小。分析:这道题我认为很重要的一个点就是它的数据范围。它只有两种 m=n-1或 m=n。我们先考虑第一种:m=n-1也就是边为节点数减一,这种说法已经很隐晦了,其实这种情况就是树啊。树的遍历且字典序最小什么的应该很多人都会做吧,就只用深搜一下,这60分还是很好拿的。(由于每个点只做一次sort所以是不会超...
2019-09-20 21:18:00
259
转载 黑魔法师之门 (magician)-并查集
题目经过了 16 个工作日的紧张忙碌,未来的人类终于收集到了足够的能源。然而在与 Violet 星球的战争中,由于 Z 副官的愚蠢,地球的领袖 applepi 被邪恶的黑魔法师 Vani 囚禁在了 Violet 星球。为了重启 Nescafé这一宏伟的科技工程,人类派出了一支由 XLk、Poet_shy 和 lydrainbowcat 三人组成的精英队伍,穿越时空隧道,去往 Viol...
2019-07-28 16:57:00
196
转载 [HNOI2004]打鼹鼠
题目链接题目简述:首先吧,这道题我们用DP。毕竟它有可转移的状态又是求最优解。选择了DP之后考虑维度,一开始我想的是棋盘嘛,再加一个时间,三维一套带走。可是看了数据范围,会爆炸,数组都开不了,实力劝退。那么题目给了我们什么呢? 鼹鼠的位置,出现的时间但是我们上面的分析发现,这两个不能用来DP。慎重思考了一下,我想起来一个经典题型。背包(当然这道题跟背包有很大的区别)。那么我...
2019-07-26 16:49:00
181
转载 树状数组例题-数星星,简单题easy,校门外的树2,清点人数
【例1】数星星天空中有一些星星,这些星星都在不同的位置,每个星星都有个坐标,如果一个星星的左下方(包括正左和正下)有k颗星星,就说这颗星星是k级的。比如,上图中,星星5是3级的(1,2,4在其左下方)2,4是1级的。给定星星的位置,输出各级星星的数目。简述:先按y坐标来排序,就用x来作为参考用树状数组来求解答案(前缀和)代码#include<...
2019-07-26 16:27:00
404
转载 [USACO]骑马修栅栏 Riding the Fences
题目链接题目简述:欧拉回路,字典序最小。没什么好说的。解题思路:插入边的时候,使用multiset来保证遍历出出答案的字典序最小。算法模板:for(枚举边) 删边(无向图删两次) 遍历到那个点 将点入栈代码#include<iostream>#include<cstdio>#include&l...
2019-07-22 12:00:00
198
转载 tarjan 割点
题目简介:这道题就是求割点的板子题。我们使用tarjan算法。算法分析:使用数组dfn与low来分别表示一个点在tarjan算法的搜索中被搜索到的时间以及它能够达到的拥有最小dfn的点的dfn值。 一个点是割点有两种情况。1.(当它不是tarjan开始节点,意味着还有dfn更小的点)它的子孙最小只能访问到它,那么当它不在的时候就访问不到其他df...
2019-07-20 11:59:00
164
转载 [USACO07OPEN]便宜的回文Cheapest Palindrome
题目链接题目概要:对于用字典序中前n个小写字母组成的串,付出一定的代价来插入or删除使其成为回文串的最小代价。解题思路:首先对于最优解,要么是贪心要么是DP。这题是DP。设f[i][i+l]为将a[i]~a[i+l]变成回文的最小代价。方程式:①若a[i]==a[i+l] f[i][i+l]=f[i+1][i+l-1]②s1=f[i][i+l-1]+增加代价;s2=f[i...
2019-07-18 17:44:00
122
转载 [AHOI2009]维护序列
题目链接题目简介:我们要一个能同时支持加法与乘法的区间修改并查询区间求和的线段树。解题思路:这题目涉及到加法和乘法的前后顺序。这会直接导致答案的不同。于是有两种顺序:先加再乘or先乘再加。我们选择后者。因为前者的tag维护十分的不方便,每次加都对于后面的乘会有极大的影响。后者则不存在这些问题。维护的时候也按照这个顺序维护。所以直接上代码。#include<iostr...
2019-07-18 17:26:00
121
转载 [Luogu P4145] 上帝造题的七分钟2 / 花神游历各国
题目链接题目简要:我们需要一个能支持区间内每一个数开方以及区间求和的数据结构。解题思路:说道区间修改区间查询,第一个想到的当然就是分块线段树。数据范围要用long long。本来我是看到区间这两个字就想着运用一下还不算特别熟的lazy-tag。但是题目是开方嘛。开方不满足结合律,√4+√4≠√8是很显而易见的事情。所以说是不能直接修改sum的。那么只能每个单点修改。如何单点修...
2019-07-18 17:18:00
134
转载 STL练习板子题(c++11警告)
第一题词典总时间限制: 3000ms 内存限制: 65536kB描述你旅游到了一个国外的城市。那里的人们说的外国语言你不能理解。不过幸运的是,你有一本词典可以帮助你。输入首先输入一个词典,词典中包含不超过100000个词条,每个词条占据一行。每一个词条包括一个英文单词和一个外语单词,两个单词之间用一个空格隔开。而且在词典中不会有某个外语单词出现超过两次。词典之后是一...
2019-07-16 10:39:00
592
转载 [USACO19OPEN]Snakes
题目链接题目简介:有n组,每组有若干个蛇的蛇队伍。(也可以理解为n条长度若干的蛇。)我们要用网捕捉,中途可以改变网的大小。目标是浪费空间最小。解法:首先明确方法:DP。设f[i][t]为捕捉了n条,变换了t次的最小浪费空间。直接求浪费可能稍显麻烦,但是 浪费空间+必要空间=总空间,所以说求浪费空间就直接用 总-必就行了。 那么什么是必要空间呢,即每条蛇的长度...
2019-07-13 17:21:00
179
转载 [Luogu P1220]关路灯
题目链接这道题我们使用dp。用f[z][y][0/1]表示老张正要关掉区间[z,y]内所有的灯,0表示老张在z处,1表示在y处。那么状态转移就很简单。它的上一个状态来源只可能是从一个路灯之隔的地方过来,也有可能是从另一个区间掉头。再将0/1分情况讨论就行。#include<iostream>#include<cstdio>#include&...
2019-05-04 11:21:00
93
转载 [Luogu P1230]智力大冲浪
题目链接这道题,贪就对了。先按照价值排序,从大到小。当前考虑的的就先放到尽可能晚的时间点,为其他的创造机会,如果这一个的所有可用时间段都被占据,就只能扣钱了。#include<fstream>#include<cmath>#include<iostream>#include<cstdio>#include&l...
2019-05-04 10:45:00
262
转载 [Luogu P1658] 购物
题目链接这道题的主要思想是贪心。题目的要求用几个硬币将1~x的数都能够凑出的最少硬币个数。这里注意一下是都凑出而不是同时凑出。先讨论什么时候无解。所有的自然数都可以用1堆砌而成。换而言之只要有1这个流氓在就可以凑齐。没有1就凑不出来1。我们用一个数num表示我们目前凑完了sum这个数,准备凑下一个,要开始拿钱了,并且对于所有p(p<=sum)都能刚好凑出,又对于所有...
2019-05-02 14:58:00
118
转载 [Luogu P1495]曹冲养猪
题目链接中国剩余定理(孙子定理)的裸题。直接放代码。#include<iostream>#include<cstdio>#include<algorithm>using namespace std;#define ll long longll read(){ ll res=0,f=1; char ch...
2019-04-16 17:05:00
110
转载 [Luogu P1082]同余方程
题目链接这道题求关于x的同余方程ax≡1(mod b)的最小正整数解。换而言之方程可以转换为ax+by=1,此时有y为负数。此时当且仅当gcd(a,b)|1时,方程有整数解。于是乎这道题就变成了ax+by=gcd(a,b)即扩展欧几里得问题。如何解决这个问题呢?由gcd的基本性质可以得出:gcd(b,a%b)=gcd(a,b),这个值我们设为g。既有ax+by=g,bx1+(...
2019-04-13 11:39:00
126
转载 [SDOI2009]SuperGCD
题目链接这题。高精度。恶心。难受。那么高精度的gcd怎么做呢?若a=b gcd(a,b)=a①a偶b偶 gcd(a,b)=2*gcd(a/2,b/2)②a偶b奇gcd(a,b)=gcd(a/2,b)③a奇b奇 gcd(a,b)=gcd(a-b,b)嗯。这玩意就这样了。#include<cmath>#include<iostrea...
2019-04-05 15:38:00
153
转载 [POI2002][HAOI2007]反素数(Antiprime)
题目链接这道题需要用到整数唯一分解定理以及约数个数的计算公式。这里我就不再阐述了。公式可以看出,只有指数影响约数个数,那么在唯一分解出的乘式中,指数放置的任何位置都是等价的。(即 23*34*57与27*34*53的约数个数相同)但很明显指数放置位置的不同会影响乘积的大小。由于所有比n小的数的约数个数都比他的约数个数小,换而言之就是约数个数不相等。即 相同约数个数,该数越小越好。...
2019-04-05 11:46:00
156
转载 [NOIP2009]Hankson的趣味题
题目链接这是一道有关公约数、公倍数的问题。由题可得:①gcd(x,a0)=a1 ;②lcm(x,bo)=b1 又有公式:gcd(x,y)*lcm(x,y)=x*y 代入得 b0*x=b1*gcd(x,b0) 移项得 x=b1/b0*gcd(x,b0)从这里开始就只需要检验等式是否成立,令 i=gcd(x,b0)(1≤i≤sqrt(b0)),x=b1/b0* i或b0/i...
2019-04-05 10:58:00
142
转载 [SDOI2008]仪仗队
这道题是一道数论题qwq。首先当我们把队伍里面的每一个人当成平面直角坐标系里面的点,那么这题就是求斜率不同。什么是斜率?前面说了在平面直角坐标系中,我们将C君看为原点,那么每一个点(x,y)都有一个与之对应的y=kx,所谓斜率就是指这里的k=x/y。那么对应的k=x*p/y*p,这样的(x,y)与(x*p,y*p)我们就只保留一个。那么题目就变成了找寻横纵坐标互质的点对。又因横纵坐标...
2019-03-23 15:28:00
77
转载 [NOIP2013]转圈游戏
题目链接emmmm2013提高组的原题。用一句话来说就是几个小朋友转圈圈爱的魔力转圈圈,一般来讲看到圈圈就是断环成链或者mod,然后这道题很明显是后者。无限制转圈根据数据的大小决定是模拟还是什么奇奇怪怪的算法。由于10k的步数,当然是快速幂。简单推导一下可以得到删去重复走的一圈又一圈的绝对距离为(x+m*10K%n)%n,直接套进去。#include<iostre...
2019-03-23 11:50:00
164
转载 [一本通 6.1 练习 3] 越狱
题目链接这道题试求冲突的数量,那么可以用 总方案数-不冲突数 来完成那么从每个人考虑,第一个可能有m种宗教信仰,第二个人可能有m-1种宗教信仰,第三个也可能有m-1种宗教信仰(毕竟不冲突),所以不冲突方案为 m*[(m-1)^(n-1)]总方案为 m^n ,所以答案直接 m^n-m*[(m-1)^(n-1)],这里数据范围特别大,注意要用 快速幂+long long。还有注...
2019-03-23 11:29:00
219
转载 [Luogu P2563]质数和分解
题目链接话不多说,这是一道质数题+完全背包。先预处理筛出质数,直接背包就行。#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int pr[205],tot,x,f[205];...
2019-03-23 09:42:00
181
转载 [Luogu P1886]滑动窗口--单调队列入门
题目描述现在有一堆数字共N个数字(N<=10^6),以及一个大小为k的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。例如:The array is [1 3 -1 -3 5 3 6 7], and k = 3.输入输出格式输入格式:输入一共有两行,第一行为n,k。第二行为n个数(<INT_MAX...
2019-03-16 10:08:00
104
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人