- 博客(81)
- 收藏
- 关注
原创 Codeforces-413C Jeopardy!
Codeforces-413C Jeopardy!题目链接:Codeforces-413C题目大意:给出一堆积分 其中一些积分可以放弃来将当前你所积累的积分翻倍,问你如何搭配能让你的积分达到最大解题思路:可翻倍的与不可翻倍的积分都从小到大排序,可翻倍的相加求和,不可相加的与和比较 大于和的话就选择直接加,不大于和的话就选择乘2倍代码块:#include<iostream>...
2019-10-31 21:17:09 363
原创 POJ-2255 Tree Recovery
POJ-2255 Tree Recovery题目链接:POJ-2255题目大意:给定一棵树的前序遍历和中序遍历,让你输出这颗树的后序遍历解题思路:二分法的思想????代码块:#include<iostream>#include<string>using namespace std;string pre, mid;int n = -1;void s...
2019-10-31 20:59:59 151
原创 POJ-2739 Sum of Consecutive Prime Numbers
POJ-2739 Sum of Consecutive Prime Numbers题目链接:POJ-2739题目大意:某些数组可以表示为连续的素数之和,问你给定一个数,有多少种素数之和的表示形式解题思路:对范围内的素数进行存储,之后向下搜索和为给定数就sum++代码块:#include<iostream>#include<cmath>#include<...
2019-10-31 20:39:13 260
原创 Codeforces-25E Test
Codeforces-25E Test题目大意:给定三个子串 求公共母串的最小长度解题思路:运用kmp的next数组进行拼接,注意一共有6种组合方式代码块:#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<string&...
2019-10-31 20:34:24 215
原创 Codeforces-609A USB Flash Drives
Codeforces-609A USB Flash Drives题目链接:Codeforces-609A题目大意:给定一个盘 盘区分大小 问你存下一个给定大小的文件,最少需要多少分区解题思路:排序从小到大代码块:#include<iostream>#include<algorithm>using namespace std;int arrA[1005]...
2019-10-31 20:29:19 280
原创 POJ-2586 Y2K Accounting Bug
POJ-2586 Y2K Accounting Bug题目链接:POJ-2586题目大意:公司做报表显示在五个月内肯定有亏损,然后每个月亏损或者盈利的数目已经给出,问你本年度可能的最大盈利是多少解题思路:枚举全部情况求出最大值代码块:#include<iostream>using namespace std;int main(){ long long s, d;...
2019-10-31 20:18:28 111
原创 CodeForces-1029A Many Equal Substrings
CodeForces-1029A Many Equal Substrings题目链接:CodeForces-1029A题目大意:给你一个子串 让你输出一个母串,使得母串中包含k个子串解题思路:利用kmp算法求next数组的部分,求得需要往后拼接的子串的字符数,之后往后拼接即可代码块:#include<iostream>#include<cstdio>usi...
2019-10-29 21:22:29 153
原创 POJ-3069 Saruman's Army
POJ-3069 Saruman’s Army题目链接:POJ-3069题目大意:给你一穿点,再给你一个放置在某个点的监视器左右最大覆盖范围,问你最少放多少监视器能覆盖到所有的点解题思路:在一头开始寻找,找到能覆盖当前点的最远圆心,这样就能把利用效率提升到最大代码块:#include<iostream>#include<algorithm>using na...
2019-10-24 13:20:20 140
原创 POJ-2492 A Bug's Life
POJ-2492 A Bug’s Life题目链接:POJ-2492题目大意:昆虫有两种性别,如果A与B相爱,则他们异性,B与C相爱,则他们异性,C与A相爱???这就是一个bug,题目要求看提供样例有没有bug解题思路:思路与POJ的食物链一致>>食物链代码块:#include<iostream>#include<cstdio>using nam...
2019-10-23 22:58:05 178
原创 POJ-1182 食物链
POJ-1182 食物链题目链接:POJ-1182题目大意:三种动物互克,给定关系说明是否是同类或者是否是互克关系,问有多少种非法情况解题思路:最一开始想的是按照并查集的常规思路,并查集表示某种动物和某种动物是同类,然后弄一个集合储存相克关系,然后发展a吃b,b吃c,c吃a的自动转化判断太难做就放弃了,看了《挑战程序设计竞赛》之后发现例题做法是并查集储存事件,写不出比书籍更好的句子,所以看...
2019-10-23 22:50:11 178
原创 HDU-1009 FatMouse' Trade
HDU-1009 FatMouse’ Trade题目链接:HDU-1009题目大意:老鼠要用自己的食物和各个猫交换食物 每个猫交换的性价比都不一样,问老鼠最多可以交换到多少食物、解题思路:按性价比从大到小排列换取食物代码块:#include<iostream>#include<cstdio>#include<algorithm>using n...
2019-10-20 19:38:52 306
原创 HDU-1789 Doing Homework again
HDU-1789 Doing Homework again题目链接:HDU-1789题目大意:这孩子要做功课 功课有分值和限定时间 每天只能做一门功课 问他在限定时间内损失的最小分值为多少解题思路:这个用了巧方法 先将结构体排序 按分数从大到小 排arrA[i]后来存放的含义是 截止于i日期 必须要完成的功课的最大值 如果在存放一个结构体数据时arrA[i]这里已经有元素了 就往他的截止时...
2019-10-20 19:35:06 239
原创 POJ-1003 Hangover
POJ-1003题目链接:POJ-1003题目大意:如果您有一张卡,则最多可以创建一半的卡长。(我们假设这些卡片必须垂直于桌子。)使用两张卡片,您可以使最上面的卡片悬垂在底部的卡片长度的一半,而最下面的卡片悬垂在桌面的卡片长度的三分之一,总最大悬垂为1/2 + 1/3 = 5/6卡长度。通常,您可以将n张卡片悬垂1/2 + 1/3 + 1/4 + … + 1 /(n +1)牌的长度,其中顶牌的...
2019-10-20 19:22:59 244
原创 POJ-1207 The 3n + 1 problem
POJ-1207 The 3n + 1 problem题目链接:POJ-1207题目大意:给定一个数字 当前数字的最大循环长度为经过图片上述步骤变为1一共经历了多少数字,问i到j的最大循环长度的最大值解题思路:暴力记录最大值就好,一开始想还以为会超时 想的是拿map做记录 key放当前超找到的数 value放是那个数开头遇到的这个数和从开头到这个数的长度 以便算出后面还多少个数到1然后...
2019-10-20 19:20:10 216
原创 POJ-2185 Milking Grid
POJ-2185 Milking Grid题目链接:POJ-2185题目大意:找到一块字符串数组的最小子块解题思路:将kmp变形 将每一列看作一个字符 求这一行字符串的next数组,将每一行看成一个字符 求这一列字符串的next数组,然后行数减去列的next数组最后一项就等于列的最小循环单位,行的最小循环单位同理,然后行列相乘就得到了面积代码块:#include<iostream...
2019-10-20 19:15:30 168
原创 HDU-2594 Simpsons’ Hidden Talents
HDU-2594 Simpsons’ Hidden Talents题目链接:HDU-2594题目大意:给定两个字符串 问第一个字符串前缀与第二个字符串的后缀的最大的重复部分有多长 不为0的话将他们输出解题思路:花里胡哨的过不去 直接将两个字符串拼接进行kmp的findNext就好,注意两个字符串要找到最短的长度,然后1截取前最短,2截取后最短,然后findNext,注意如果结果比两个字符串...
2019-10-20 19:09:49 196
原创 HDU-2087 剪花布条
HDU-2087 剪花布条题目链接:HDU-2087题目大意:给定一个模式串与匹配串,问模式串中有多少匹配串。注意,已经计数的部分的字母不可二次识别解题思路:kmp算法 将返回值改成下次继续搜索的首地址代码块:#include<iostream>#include<string>using namespace std;string strStr, str...
2019-10-20 19:04:25 122
原创 HDU-1213 How Many Tables
HDU-1213 How Many Tables题目链接:HDU-1213题目大意:分配坐席 认识的可以分配在一个桌子,如果a认识b,b认识c则abc就可以在一个桌子,问一共需要准备多少桌子解题思路:并查集模版题代码块:#include<iostream>#include<cstring>using namespace std;int arrA[100...
2019-10-18 16:18:37 181
原创 HDU-1072 Nightmare
HDU-1072 Nightmare题目链接:HDU-1072题目大意:2是起点,3是终点,0是墙,问能不能在6秒(走一步一秒)之内走出去,注意到达4的位置可以将秒数重置为6,0秒时不能重置时间也不能到达终点。解题思路:bfs即可,注意对可以到达的位置能经过的次数进行限制 不然会超时 限制也不能太苛刻 毕竟有的情况还得返回来走代码块:#include<iostream>...
2019-10-18 16:15:01 158
原创 POJ-1358 Period
POJ-1358 Period题目大意:POJ-1358题目大意:问从字符串的开头开始,有多长相同的子串拼接成的子串解题思路:就是利用kmp的next数组 没找到规律不要紧 把next打出来就清楚了 和POJ-2406 Power Strings差不多代码块:#include<iostream>#include<cstring>#include<str...
2019-10-18 16:06:07 131
原创 HDU-1238 Substrings
HDU-1238 Substrings题目链接:HDU-1238题目大意:问给定个数的一些字符串中 最长的公共子串有多长 子串反过来匹配也算解题思路:从最短的字符串进行暴力切割 取到他的各种子串 然后将此子串的原形式和反向形式与给定字符串进行匹配识别 如果都含有就输出长度就好了 匹配过程用kmp 觉得暴力匹配会超时代码块:#include<iostream>#includ...
2019-10-18 13:47:26 180
原创 POJ-2406 Power Strings
POJ-2406 Power Strings题目链接:POJ-2406题目大意:检测一个字符串从头开始最多有多少个重复片段解题思路:利用kmp的求next数组的方法 求出next数组,之后看前缀和后缀最长的重合有多长 总长度减去重合的长度就是一个一个重复片段的长度 最后总长度除以一个重复片段的长度即可得出结果,当然如果总长度不是得出的重复片段长度的整数倍,说明只有最前面字符自己喽,输出一就...
2019-10-18 13:40:44 199
原创 POJ-3461 Oulipo
POJ-3461 Oulipo题目链接:POJ-3461题目大意:寻找一个字符串在另一个字符串中一共出现了多少次解题思路:完全的kmp算法加点料 最一开始我是在模式串里面找到匹配串的开头的那个字母然后kmp的,后来果断TLE了,然后改成在找到第一个相匹配的位置后j = next[j - 1],因为要直接用之前在模式串后面部分匹配好的串片段和匹配串前面的相同的串片段。所以省去不少时间。这题挺...
2019-10-18 13:31:02 236
原创 POJ-1936 All in All
POJ-1936 All in All题目链接:POJ-1936题目大意:问前面的字符串是否按顺序存在于后面的字符串中解题思路:双指针做法 十足的水题代码块:#include<iostream>#include<string>using namespace std;int main(){ string strA, strB; while(cin&g...
2019-10-14 23:21:02 145
原创 洛谷920A Water The Garden
洛谷920A Water The Garden题目大意:一片长条形田地 有几个水龙头 一秒钟可以向周围浇一格 问多少秒能浇完整个地解题思路:普普通通bfs代码块:#include<iostream>#include<cstring>#include<queue>using namespace std;typedef pair<int...
2019-10-14 23:17:36 194
原创 HDU-1509 Windows Message Queue
HDU-1509 Windows Message Queue题目链接:HDU-1509题目大意:现在有一个消息队列 PUT向队列投放队列 GET取出队列顶数据 注意数据有优先级解题思路:直接用优先队列就好 注意优先队列排序不稳定就好了代码块:#include<iostream>#include<string>#include<queue> us...
2019-10-14 23:12:34 143
原创 HDU-1873 看病要排队
HDU-1873 看病要排队题目链接:HDU-1873题目大意:伤员看病 指定医生和优先级 优先级越大排的越靠前 OUT一次输出给定医生当前医治的伤员解题思路:运用优先队列 但是注意优先队列的排序不是稳定的 所以要对输入次序进行记录,并加入排序规则中代码块:#include<iostream>#include<string>#include<queue...
2019-10-14 23:07:33 195 1
原创 POJ-1724 ROADS
POJ-1724 ROADS题目链接:POJ-1724题目大意:给定起点终点和路程长度和花费 问你从1到n点在自己钱够的情况下的最短路径解题思路:最一开始直接暴力的dfs来着 后来是直接就RE了 估计是爆栈了之后改成用优先队列做,同一起点终点 道路长度从小到大排列 花费也从小到大排 然后用到了重载运算符代码块:#include<iostream>#include<...
2019-10-14 23:00:39 309
原创 Codeforces-95B Lucky Numbers
Codeforces-95B Lucky Numbers题目链接:Codeforces-95B题目大意:找不小于给定数的幸运数字 幸运数字是只有4、7构成的数 而且4、7的数目相同解题思路:dfs()向下搜索即可 三种情况 1.给定奇数 则肯定输出偶数 所以位数要加一2.给定偶数 但是已经没有不小于给定数的幸运数字了 位数加2 3.直接求解自己写了两版…第一版第八个测试点过不去 第二版...
2019-10-14 22:52:52 339
原创 Codeforces-445B DZY Loves Chemistry
Codeforces-445B DZY Loves Chemistry题目链接:Codeforces-445B题目大意:DZY做化学实验 给定的两对数字不能冲突 若瓶子里有与要加的元素冲突的元素 则危险度*2 初始危险度为1 问最大能有多少危险度解题思路:并查集 将互相冲突的写为一个集合 第一个集合中的第二个元素开始2 第二个集合也是从第二个元素2 以此类推 最后输出危险度结果代码块:...
2019-10-06 21:15:48 220
原创 POJ-1611 The Suspects
POJ-1611 The Suspects题目链接:POJ-1611题目大意:给定学生总数 给定学生分组 0号学生得了SARS 问有SARS的嫌疑的有多少人 和0同一组即为有嫌疑解题思路:标准的并查集模板 在最后将同一集的编号改成同一个父亲的编号即可 统计和0号学生相同编号的学生的和输出代码块:#include<iostream>using namespace std;...
2019-10-06 21:10:29 125
原创 POJ-2524 Ubiquitous Religions
POJ-2524 Ubiquitous Religions题目链接:POJ-2524题目大意:给定一对学生编号 即为这两个学生信奉同一份Religions求一共有多少种Religions解题思路:并查集 查出一共有多少种结果 完全的模板题 不会请移步并查集详解代码块:#include<iostream>#include<algorithm>#include...
2019-10-06 21:05:25 171
原创 POJ-1426 Find The Multiple
POJ-1426 Find The Multiple题目链接:POJ-1426题目大意:找到一个数 这个数只由1或0组成 且是给定数的整倍数解题思路:只由1或者0组成 那么就从1为起点 每次乘10 或者乘10+1 就能覆盖到所有的数 BFS搜索即可 注意示例给定的不是最小解 不要被误导代码块:#include<iostream>#include<queue>...
2019-10-06 16:19:54 154
原创 POJ-2243 Knight Moves
POJ-2243 Knight Moves题目链接:POJ-2243题目大意:骑士移动 日字型移动 棋盘列数为字母 行数为数字 问从e2到e4最少需要几步解题思路:标准BFS代码块:#include<iostream>#include<queue>#include<cstring>#include<string>using na...
2019-10-05 22:24:42 127
原创 POJ-3278 Catch That Cow
POJ-3278 Catch That Cow题目链接:POJ-3278题目大意:农夫再n这个点上找在k点的牛 农夫可以步行 可以向前走一步或者向后走一步 可以传送 传送到2*当前节点的位置上 问农夫多少步可以找到牛解题思路:BFS 以为贼简单的那种 然后就错了两次第一次内存超限 肯定是queue爆掉了 然后我就把queue提升到方法外边了 还是超限然后试了试1 100000这组数据 ...
2019-10-05 21:36:25 351
原创 POJ-2251 Dungeon Master
POJ-2251 Dungeon Master题目链接:POJ-2251题目大意:三维迷宫最短路径解题思路:就是bfs 然后6个方向 注意走过的点变墙就行了#include<iostream>#include<queue>using namespace std;char arrA[35][35][35]={'\0'};int l,r,c;int s...
2019-10-05 21:29:10 261
原创 POJ-3984 迷宫问题
POJ-3984 迷宫问题题目链接:POJ-3984题目大意:求从图左上角到右下角的最短路径解题思路:bfs 需要按顺序输出这是个要注意的点 我用的是结构体储存前面的节点 最后输出之前 将前面的节点一个个压入栈 然后弹出输出就好了 注意 往队列里添加数据的时候 记得把走过的点全部改为1 否则指针会乱掉代码块:#include<iostream>#include<qu...
2019-10-05 21:24:48 258
原创 POJ-3009 Curling 2.0
POJ-3009 Curling 2.0题目链接:POJ-3009题目大意:打冰壶 你可以使冰壶向一个前面一格不为空的方向移动 冰壶遇到障碍会在障碍之前的位置停下来 并且将那个障碍击碎为空格 问你能不能到达给定的终点 能到达的话需要几步解题思路:dfs即可 主要是注意每次dfs之前需要处理到一行的最末端 即走一行空格 另外注意10步之后默认为不能到达记得返回 这题一开始做麻烦了整整做了一下...
2019-10-05 21:10:21 169
原创 POJ-2488 A Knight's Journey
POJ-2488 A Knight’s Journey题目链接:题目大意:给定一个大小的棋盘 问你能不能将棋盘上所有点踩且仅踩一次 如果可以 输出字典序最小的那种踩法 横行为数字 列数为字母 由于要字典序最小 所以要从A1开始解题思路:dfs搜索即可 注意要按字典序最小输出 所以能走的八个点需要分下优先级 我写的有点麻烦了代码块:#include<iostream>#in...
2019-10-04 15:22:06 214
原创 Codeforces-6A Triangle
Codeforces-6A Triangle题目链接:题目大意:给你四个数 让你判断最好的情况能构成非退化三角形(普通三角形)还是退化三角形(三个顶点在一条直线上)还是无法构成三角形解题思路:蛮解就好了代码块:#include<iostream>#include<algorithm>using namespace std;typedef long lo...
2019-10-04 15:16:50 308
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人