题解
苟岂
任何一个伟大的目标,都有一个微不足道的开始。——洛谷新手村
展开
-
【Luogu P1878】舞蹈课
Luogu P1878事实上这道题并不难,但我真没弄懂我手写堆为什么过不了。所以STL大法好!!!基本思路对于每一对相邻异性,将他们的舞蹈技术的差插入一个堆通过维护这个小根堆,每次就可以取得舞蹈技术差最小的一对值得注意的是,每次取完一对舞伴之后,要对这对舞伴进行标记,并将堆中所有有这两位舞者参与的舞伴弹出这个堆。并且还需要找到这一对舞伴两边的第一个未被挑出的人,如果是异性则可以作为新...原创 2019-10-31 11:11:48 · 365 阅读 · 0 评论 -
【Luogu P5490】扫描线
Luogu P5490作为一道模板题让我卡了一个月……对于线段树+离散化新手而言这实在是太难了……有关离散化:可以查看这一篇文章:https://www.jianshu.com/p/9347659dcf18一种缩小数据范围的小技巧,在本题中用于缩短线段树的区间大小基本思路想象一条直线,从左往右扫,我们要计算的就是直线扫过的面积。很容易可以想出把整个图形按照每一条竖线切割,分割成几个...原创 2019-10-29 20:10:11 · 2032 阅读 · 0 评论 -
【CPLUSOJ】【USACO】【差分约束】排队(layout)
【题目描述】 Robin喜欢将他的奶牛们排成一队。假设他有N头奶牛,编号为1至N。这些奶牛按照编号大小排列,并且由于它们都很想早点吃饭,于是就很可能出现多头奶牛挤在同一位置的情况(也就是说,如果我们认为所有奶牛位于数轴上,那么多头奶牛的位置坐标可能相同)。因为众所周知的原因,某些奶牛之间互相喜欢,他们希望互相之间的距离至多为一个定值。但某些奶牛之间互相厌恶,他们希望互相之间的距离至少为一个定...原创 2018-04-14 11:32:49 · 566 阅读 · 1 评论 -
【2018寒假集训Day 8】【并查集】并查集模板
Luogu并查集模板题#include<cstdio>using namespace std;int z,x,y,n,m,father[10001];int getfather(int v)//找到根节点{ if (father[v]!=v) father[v]=getfather(father[v]);//路径压缩 return father[v];...原创 2018-02-08 15:45:53 · 261 阅读 · 0 评论 -
【2018寒假集训Day 7】【最短路径】三种算法的模板
Luogu单源最短路径模版题 dijkstra#include<cstdio>#include<vector>using namespace std;const int oo=0xfffff;struct data{ int to,val;};vector<data> edge[10001];bool visit[10001];i...原创 2018-02-07 15:58:02 · 311 阅读 · 0 评论 -
【2018寒假集训 Day2】【动态规划】垃圾陷阱(挖坑等填,未完成)
垃圾陷阱 (well) 卡门——农夫约翰极其珍视的一条Holsteins奶牛——已经落了到“垃圾井”中。“垃圾井”是农夫们扔垃圾的地方,它的深度为D (2 卡门想把垃圾堆起来,等到堆得与井同样高时,她就能逃出井外了。另外,卡门可以通过吃一些垃圾来维持自己的生命。 每个垃圾都可以用来吃或堆放,并且堆放垃圾不用花费卡门的时间。 假设卡门预先知道了每个垃圾扔下的时间t(0小于t小于等于1000原创 2018-02-06 21:15:05 · 426 阅读 · 0 评论 -
【2018寒假集训 Day2】【2019.5.11更新】【动态规划】花店橱窗布置(FLOWER)
花店橱窗布置(FLOWER) 提交文件名:flower 问题描述: 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定的,从左到右按1到V顺序编号,V是花瓶的数目。花束可以移动,并且每束花用1到F的整数标识。如果I 每个花瓶的形状和颜色也不相同,因此,当各个花瓶中放入不同的花束时,会产生不同的美学效果,并以美学值(一个整数)来表示,空置花原创 2018-02-06 21:10:47 · 359 阅读 · 0 评论 -
【2018寒假集训 Day2】【动态规划】抢金块
抢金块 输入文件:gold.in 输出文件:gold.out 问题描述: 地面上有一些格子,每个格子上面都有金块,但不同格子上的金块有不同的价值,你一次可以跳S至T步 。如果S=2,T=4。你就可以跳2步、3步或4步,告诉你这些后,你从第一个格子起跳,必须跳到最后一个格子上,请你输出最多可以获得的金块的总价值。输入格式: 第一行是格子个数, 第二行是S和T ,保证T大于S。原创 2018-02-06 21:00:20 · 633 阅读 · 0 评论 -
【2018寒假集训 Day2】【动态规划】回文字
回文字(palin) 问题描述: 如果一个单词从前和从后读都是一样的,则称为回文字。如果一个单词不是回文字,则可以把它拆分成若干个回文字。编程求一个给定的字母序列,最多要分割成几部分,使每一部分都回文字。 输入格式: 输入文件有且只有一行,包含一个字符串。字符串由小写英文字母组成(a-z),长度不超过100。 输出格式: 输出文件只一行,为最少的回文字个数。输入 样例1:anab原创 2018-02-06 20:49:18 · 735 阅读 · 0 评论 -
【集训Day3 单调队列】【2018寒假集训Day 5更新】最大子序列和
最大子序列和(maxsum) 【问题描述】 输入一个长度为n的整数序列(A1,A2,……,An),从中找出一段连续的长度不超过M的子序列,使得这个序列的和最大。 例如: 序列 1, -3, 5, 1, -2, 3 当M=2或3时,S=5+1=6;当M=4时,S=5+1+(-2)+3=7。 【输入格式】 输入文件第一行一个整数n表示序列的长度,第二行n个整数,代表序原创 2017-08-19 19:58:48 · 384 阅读 · 0 评论 -
【CPLUSOJ】【动态规划】最短回文串
【问题描述】如果一个字符串正过来读和倒过来读是一样的,那么这个字符串就被称作回文串。例如abcdcba,abcddbca就是回文串,而abcdabcd不是。你要解决的问题是:对于任意一个字符串,输出将这个字符串变为回文串需要插入的最少字符个数,比如,ab3bd只需要插入2个字符就可以变为一个回文串。【输入格式】第一行是一个整数N第二行是一个长度为N字符串S【输出格式】一行一个整数,...原创 2018-05-08 18:59:00 · 591 阅读 · 0 评论 -
【NHOI2018】扑克游戏
【问题描述】 有一种别样“小猫钓鱼”扑克游戏。有 N 张牌,每张牌都有一个花色和点数。游戏的规则:扑克接龙时,若前面有同样花色的牌,你可以将这两张牌连同之间的牌都取走,得到的分值为取走牌点数之和。这里说的是可以,不是必须。给定扑克接龙的顺序,求最多的得分。 【输入格式】 第一行一个整数 N。 第二行 N 个整数,依次表示 1~N 张牌的花色。 第三行 N 个整数,依次表示 1~N 张牌的...原创 2018-06-11 18:20:35 · 1627 阅读 · 0 评论 -
【Luogu P1981】表达式求值
点我进入原题Luogu P1981【解题思路】仔细分析题目,这就是一道模拟题……直接按照符号读入全部的数字,先算乘法,最后把全部数加起来就是结果了记得要%10000取最后四位【参考程序】#include<iostream>#include<cstring>#include<cstdio>using namespace std;string s...原创 2018-10-15 13:26:06 · 416 阅读 · 0 评论 -
【NHOI2018】拆除桥墩
【解题思路】 求最窄的地方的最大值,可以推测此题用二分答案。 那么二分答案的check函数该如何写呢? 由于通航能力是由最窄的地方决定的,那么就要保证每个桥墩之间的距离都大于或等于二分的答案,那么只要做判断,不够大就拆即可。 【参考程序】#include<iostream>#include<cstdio>using namespace std;in...原创 2018-06-07 19:05:21 · 1106 阅读 · 0 评论 -
【NHOI2018】衰减
【解题思路】 显然这题并不难,由于数据范围较小,完全可以用DFS解决。 从原数开始每次变异的图谱,每次记录住当前的路径。 当找到1时就可以输出并回溯了。 小技巧:printf和scanf可以提高输出输入的速度,当然可以手写输入输出。 【参考程序】#include<iostream>#include<cstdio>using namespace std;...原创 2018-06-07 18:35:10 · 759 阅读 · 0 评论 -
【NHOI2018】跳伞登山赛
【题目描述】 某山区有高高低低的 n 个山峰,根据海拔高度的不同,这些山峰由低到高进行了 1 到 n 编号。有 m 条只能单向通行的羊肠小道连接这些山峰。现在,这里要举行一场跳伞登山赛,选手们伞降到某山峰后,再通过山间小道向属于自己的最高峰进军。 小明也参加了这次比赛,你能否告诉他,从任意一座山峰出发所能到达的最高峰编号是多少? 【输入数据】 输入共 m+1 行。 第 1...原创 2018-06-07 18:43:27 · 1095 阅读 · 0 评论 -
【NHOI2018】找素数
【题目描述】 素数又称质数,是指一个大于 1 的正整数,如果除了 1 和它本身以外,不能再被其它的数整除,例如:2、3、5、97 等都是素数。2 是最小的素数。 现在,给你 n 个数字,请你从中选取一部分,用它们拼出一个最大的素数。注意:某个数字出现多少次你就可以用多少次,6 与 9 不能混用。 【输入数据】 输入共 2 行: 第 1 行,1 个整数 n,表示所给你的数字的个数。...原创 2018-06-07 09:53:03 · 1672 阅读 · 0 评论 -
【NHOI2018】黑格覆盖
【题目描述】 在一张由 M * N 个小正方形格子组成的矩形纸张上,有 k 个格子被涂成了黑色。给你一张由 m * n 个同样小正方形组成的矩形卡片,请问该卡片最多能一次性覆盖多少个黑格子? 【输入数据】 输入共 k+1 行: 第 1 行为 5 个整数 M、N、m、n、k,其含义如题目所述。 接下来 k 行,每行 2 个整数,分别表示被涂成黑色的格子的行、列坐标。 【输出数据】 输出...原创 2018-06-07 09:50:30 · 1360 阅读 · 0 评论 -
【NHOI2018】扫雷完成图
【题目描述】 扫雷游戏完成后会显示一幅图,图中标示了每个格子的地雷情况。现在,一个 n * n 方阵中有 k 个地雷,请你输出它的扫雷完成图。 【输入数据】 输入共 k+1 行: 第 1 行为 2 个整数 n、k,用一个空格隔开,表示扫雷图方阵的规模和地雷的总数。接下来 k 行,每行 2 个整数,表示一个地雷的行、列坐标。 【输出数据】 输出共 n 行,每行连续 n 个字符,每个字符对...原创 2018-06-07 09:42:58 · 1229 阅读 · 0 评论 -
【NHOI2018】字符串变换
【题目描述】 给你一个全部由大小写字母组成的字符串,你每次可以将一个小写字母变换成对应的大写字母,或把一个大写字母变换成对应的小写字母。请问:至少要进行多少次变换才可以使整个字符串全部由大写字母或全部由小写字母组成? 【输入数据】 输入共 1 行,为一个仅由大小写字母组成的字符串。 【输出数据】 输出共 1 行,1 个整数,表示至少要变换的次数。 【样例输入】 NanHaiOI 【...原创 2018-06-06 09:55:05 · 784 阅读 · 0 评论 -
【2018寒假集训 Day2】【动态规划】维修栅栏
维修栅栏 问题描述: 小z最近当上了农场主!不过,还没有来得及庆祝,一件棘手的问题就摆在了小z的面前。农场的栅栏,由于年久失修,出现了多处破损。栅栏是由n块木板组成的,每块木板可能已经损坏也可能没有损坏。小z知道,维修连续m个木板(这m个木板不一定都是损坏的)的费用是sqrt(m)。可是,怎样设计方案才能使总费用最低呢?小z想请你帮帮忙。 输入格式: 输入文件的第一行包含一个整数n原创 2018-02-05 18:58:03 · 1764 阅读 · 0 评论 -
【2018寒假集训 Day2】【动态规划】又上锁妖塔
又上锁妖塔 (tower.in/tower.out) [题目描述] 小D在X星买完了想要的东西,在飞往下一个目的地的途中,正无聊的他转头看了看身边的小A,发现小A正在玩,可是小A很奇怪,他一直在锁妖塔的周围转来转去,可是就是不进去,于是小D问他:“你在干什么?怎么不上去?”小A说:“我在想怎么从锁妖塔外面爬上去”(倒…) 锁妖塔的建造很特别,塔总共有n层,但是高度却不相同,这造成了小A爬过每原创 2018-02-05 13:42:33 · 430 阅读 · 0 评论 -
【2018寒假集训 Day2】【动态规划】钱币兑换(exchange)(自己翻译的2333)
钱币兑换(exchange) 问题描述: Dave偶然获得了未来几天的美元(dollars)与马克(marks)之间的兑换率。例如Dave开始有100marks,请编写个程序帮助Dave找出最好的买卖marks或dollars的方案,使Dave最后一天有最多的marks。 输入格式: 输入文件的第一行有个自然数N, 1 ≤ N ≤ 100,表示Dave知道未来兑换率的天数。 下面N行每行原创 2018-02-05 08:57:18 · 553 阅读 · 0 评论 -
【集训Day1 测试】奇怪数
奇怪数(odometer) 【题目描述】 一个正整数Z是奇怪数,当且仅当满足的条件是:Z的所有数字中,只有一个数字不同于其他数字。例如:33323、110 都是奇怪数,而 9779、5555 都不是奇怪数。给出两个正整数 X 和 Y,满足 100 <= X <= Y <= 10^16,请问区间[X,Y]内有多少个奇怪数? 【输入格式】odometer.in 一行,两个整数,X 和 Y。 【原创 2017-08-14 10:17:55 · 967 阅读 · 0 评论 -
【Luogu P1048 Luogu P1016】采药/疯狂的采药
采药/疯狂的采药 两道模板题,分别是0-1背包和完全背包。0-1背包二维:dp[i][j]=max(dp[i-1][j-time[i]]+v[i],dp[i-1][j]); 由于i的状态由i-1的状态转移而来,那么可以省去物品的维度。 但是重量/容积维度的循环j必须倒序进行,否则可能使物品被重复选。 大家可以自己思考一下为什么。 一维:dp[j]=max(dp[j-time[i]]+v[i原创 2017-08-13 15:42:42 · 425 阅读 · 0 评论 -
【Luogu P1164】小A点菜
题目原链接: Luogu 小A点菜 【解题思路】 常规的0-1背包,不过是求装满整个背包的方案数,只要把0-1背包的状态转移方程稍微改一下就行。因为要求方案数,那么把方程中的max换成sum就行。 【解题反思】要注意变量的含义和题目所问的问题【参考程序】#include<iostream>#include<cstdio>using namespace std;int v,n,a[2原创 2017-08-20 10:49:45 · 379 阅读 · 0 评论 -
【POJ 2823】【Luogu P1886】Sliding Window 滑动窗口
POJ 2823 Luogu P1886 【解题思路】 这是一个单调队列算法的经典题目,几乎学习单调队列的人都接触过这题。 利用单调队列算法求出每一个固定区间内的最(大/小)值。 以下以最大值为例: 将要进队的值如果比队尾大,那么意味着进队值比队尾的值更优,那么 从尾部继续向前寻找,如果还是比前面的更优,那么就一直寻找。直到符合条件或者队列为空为止原创 2017-08-12 23:09:53 · 325 阅读 · 0 评论 -
【Luogu P1090】合并果子
Luogu P1090 【解题思路】 刚看到这题的时候,第一反应就是每次取两个最小,然后重新排序,再取最小。但是这样会TLE。 既然找最小的,那就可以利用单调队列了。显然输入的数据是不具有单调性的,但是可以排一次序,使之具有单调性。 这题需要两个队列,一个队列用于存储最先给出的堆,另一个队列用于存储合并后的堆。 值得一提的是,后面合并出来的堆,一定比前面合并出来的要大。 也就是说队列的单原创 2017-08-13 09:57:58 · 470 阅读 · 0 评论 -
【集训Day3 离散化】矩形覆盖
矩形覆盖(planting) 【问题描述】 给定在一个平面坐标系上的N(1 <= N <= 100)个矩形区域,这N个矩形可能有相互覆盖的部分。求平面上被所有矩形覆盖的总面积,重复部分只算一次。 【输入格式】planting.in 第一行一个整数N。 接下来N行,每行包含4个整数x1 y1 x2 y2,表示一个矩形区域。矩形的左上角为(x1,y1),右下角为(x2,y2)。坐标范围为–10原创 2017-08-17 11:02:34 · 427 阅读 · 0 评论 -
【集训Day2】字符串
字符串(string) 【问题描述】 给一个字符串T,问在字符串T 中可以包含最多多少个不重叠的字符串S。 字符串中的每个字符为小写或者大写字母。 【输入格式】 第一行输入一个字符串S。 第二行输入一个字符串T。 【输出格式】 输出一行,包括一个整数表示答案。 【输入样例】 Aba Abababa 【输出样例】 2 【数据范围】 50%的数据,1<=字符串T 长度<=2原创 2017-08-16 22:51:45 · 929 阅读 · 0 评论 -
【集训Day2 哈希表】【NHOI2015】【Luogu P2421】差
LuoguP2421 原题来自NHOI2015 【解题思路】 本题的解题方法有三种,一种为枚举减数,二分查找被减数。第二种为利用数据单调性用尺取法进行查找,第三种为运用哈希表以快速查找数据。 【解题反思】一题可能有多种解法,尝试选择自己最擅长的。【参考程序】#include<iostream>#include<cstdio>using namespace std;int n原创 2017-08-16 10:54:21 · 592 阅读 · 1 评论 -
【集训Day1 测试】【USACO】照相
照相(fairphoto) 【题目描述】 有N 头奶牛站在一条数轴上,第 i 头奶牛的位置是 Pi,奶牛不会重叠站在同一个位置, 第i 头奶牛的颜色是 Ci,其中 Ci 要么是字符‘G’要么是字符‘H’。现在农夫 FJ 想给一段连续的奶牛照一张相,前提是满足一下三个条件之一: 1、这连续一段奶牛的颜色全部是‘G’。 2、这连续一段奶牛的颜色全部是‘H’。3、这连续一段奶牛,颜色是‘H’的奶原创 2017-08-14 10:22:04 · 1048 阅读 · 3 评论 -
【集训Day1 测试】装饰
装饰(decorate) 【题目描述】 一个图有 N 个结点,编号 1 至 N,有 M 条无向边,第 i 条边连接的两个结点是 Ai 和Bi,其中 Ai 和 Bi 是不同的结点。可能有多条边连接的是同一个点对。现在要给每个结点做标致,每个结点的标志要么是‘F’,要么是‘J’。如果结点 A 和结点 B 之间有边,那么结点 A 和结点 B 的标志就必须不同。做一个‘F’的费用比做一个‘J’的费用要高原创 2017-08-14 11:12:40 · 426 阅读 · 0 评论 -
【集训Day4 动态规划】轮船问题
轮船问题(ship) 【问题描述】 某国家被一条河划分为南北两部分,在南岸和北岸总共有N对城市,每一城市在对岸都有唯一的友好城市,任何两个城市都没有相同的友好城市。每一对友好城市都希望有一条航线来往,于是他们向政府提出了申请。由于河终年有雾。政府决定允许开通的航线就互不交叉(如果两条航线交叉,将有很大机会撞船)。兴建哪些航线以使在安全条件下有最多航线可以被开通。 【输入格式】(ship.in...原创 2017-08-23 10:25:14 · 1931 阅读 · 1 评论 -
【Luogu P2563】【集训Day 4 动态规划】质数和分解
题目链接:Luogu P2563 质数和分解(prime) 【问题描述】 任何大于 1 的自然数 N,都可以写成若干个大于等于2且小于等于 N 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。例如9 的质数和表达式就有四种本质不同的形式:9 = 2+5+2 = 2+3+2+2 = 3+3+3 = 2+7 。 这里所谓两个本质相同的表达式是指可以通过交原创 2017-08-13 14:51:26 · 888 阅读 · 2 评论 -
【集训Day4 动态规划】【2018寒假集训 Day4 更新】蛙人
蛙人 (ple) 蛙人使用特殊设备潜水。设备中有一个气瓶,分两格:一格装氧气,另一格装氮气。留在水中有时间的限制,在深水中需要大量的氧气与氮气。为完成任务,蛙人必须安排好气瓶。每个气瓶可以用它的重量和含有气体的体积来描述。蛙人要完成任务,就需要特定数量的氧气与氮气。要完成任务,他所需带的气瓶的总重量最少是多少呢? 例如:蛙人有下述五个气瓶。每个气瓶表述为:氧气的体积,氮气的体积(以“升”为单位原创 2017-08-13 14:11:45 · 772 阅读 · 0 评论 -
【2018寒假集训Day 8】【最小生成树】Prim和Kruskal算法模板
Luogu最小生成树模板题 Prim 原理与dijkstra几乎相同,每次找最优的点,用这个点去松弛未连接的点,也就是用这个点去与未连接的点连接。#include<cstdio>#include<vector>using namespace std;struct data{ int to,val;};vector<data> edge...原创 2018-02-08 21:14:51 · 267 阅读 · 0 评论 -
【2018寒假集训 Day2】【动态规划】挖地雷
挖地雷(Mine) 在一个地图上有N 个地窖(N【输入格式】 N {地窖的个数} W1,W2,……WN {每个地窖中的地雷数} X1,Y1 {表示从X1可到Y1,保证xi小于yi} X2,Y2 …… 0 ,0 {表示输入结束} 【输出格式】 K1-K2-……-Kv {挖地雷的顺序} MAX {最多挖出的地雷数} 【输入样例】Mine.in 6 5 10 20 5 4 5原创 2018-02-03 19:55:51 · 566 阅读 · 0 评论 -
【2018寒假集训 Day1】【位运算】翻转游戏
翻转游戏(flip) 【问题描述】 翻转游戏是在一个 4 格×4 格的长方形上进行的,在长方形的 16 个格上每 个格子都放着一个双面的物件。每个物件的两个面,一面是白色,另一面是黑色, 每个物件要么白色朝上,要么黑色朝上,每一轮你只能翻 3 至 5 个物件,从而由 黑到白的改变这些物件上面的颜色,反之亦然。每一轮被选择翻转的物件遵循以 下规则: 1、从 16 个物件中任选一个。原创 2018-02-01 21:38:19 · 517 阅读 · 0 评论 -
【2018寒假集训Day 1】【位运算】生成字符串
生成字符串(strs) 【问题描述】 假设字符串只由字符“0”,“1”,“”组成,其中字符“”表示该字符可由 字符“0”或“1”替代。 现有一些字符串,根据这些字符串生成所有可生成的字符串。如: {10,1,0 }可生成{10,01,11,00 } {101,001,*01}可生成{101,001} 注意后一个例子中“*01”并没有生成新的字符串。 【输入格式】strs.in原创 2018-02-01 21:24:59 · 1006 阅读 · 0 评论