![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
洛谷
ITNXD
个人博客:https://itnxd.eu.org/
手机号:18834389004 QQ:158903258
展开
-
P1019 单词接龙(字符串 DFS 回溯)
题的链接:P1019 单词接龙题解:相邻部分不能有包含关系,有歧义。。。例如,as 和 asdf, 后面不能包含前面,但是前面能包含后面,并且若前后相同例如 elve 和 elve 则是可以连接的。这样解决包含问题: if(b.find(a) != string::npos && b != a) return false;最复杂就是这里:判断能否连接,用for循环从...原创 2019-11-21 11:04:53 · 296 阅读 · 0 评论 -
P1219 八皇后(DFS 回溯)
题目链接:P1219 八皇后题解: 就是一道DFS搜索加回溯,关键就是判断横纵对角线有没有值;可以直接for循环循环地图判断,如代码1.0,但会超时;所以最好用2.0直接将对角线和横纵弄到一个数组,如2.0的图示;输出时可以判断前三个输出,并不一定要保存下来,如3.0所示;以前的题解:点击这里!知识点: 对角线的判断可以 i + j 和 i - j + N 进行判断,如图所示。参考代码1.0...原创 2019-11-04 21:56:55 · 173 阅读 · 0 评论 -
P1177 【模板】快速排序(排序)
题的链接:P1177 【模板】快速排序参考代码1.0: STL 的 sort一遍过#include <string>#include <cstdio>#include <iostream>#include <algorithm>using namespace std;int N;int str[100010];int main(...原创 2019-11-03 22:13:40 · 384 阅读 · 0 评论 -
P1781 宇宙总统(高精度 排序 字符串)
题的链接:P1781 宇宙总统题解: 不需要用到高精度,可以直接用string来比较,比较函数cmp写出来就行;参考代码:#include <vector>#include <string>#include <iostream>#include <algorithm>using namespace std;int N, s, pos...原创 2019-11-02 17:42:22 · 291 阅读 · 0 评论 -
P1068 分数线划定(结构体 排序)
题的链接:P1068 分数线划定题解: 先对数据排序,分数相同,学号小的在前,否则分数大的在前;用res标记是否到达限定的人数,pos标记总共取了多少人;当res到达限定res后就去判断后序的人和上一个人的分数是否相同,相同则保存,pos++,否则break;最后输出即可;参考代码:#include <string>#include <iostream>#incl...原创 2019-11-02 16:34:32 · 269 阅读 · 0 评论 -
P1059 明明的随机数(排序 标记 set)
题目链接:P1059 明明的随机数题解: 标记一下就行,注意vis数组要大点,数字可能不只是三位数;参考代码:#include <cstdio>#include <string>#include <cstring>#include <iostream>#include <algorithm>#define INF 0x3f...原创 2019-11-02 12:46:02 · 118 阅读 · 0 评论 -
P3952 时间复杂度(字符串 模拟 栈)
题的链接:P3952 时间复杂度题解: 还是看一下上一次写的题解吧,for循环和E的匹配相当于括号匹配,用到栈的结构。点击这里!注意点:输入一行用getline,若前面输入用了cin,要用getchar来接收一下空格;本题的次数小于100,并非1位,所以用substr不能substr(t + 1,1)这样,应该substr(t + 1)这样;栈的存储建议从1开始。每次输入一行for循...原创 2019-11-02 11:17:15 · 173 阅读 · 0 评论 -
P1012 拼数(字符串 排序)
题的链接:P1012 拼数注意点:直接从大到小排是不对的:如(321 32 出现 32132 > 32321的情况);参考代码1.0: 就是字符串的排序,大的在前,输出即可,但是不能直接排,以防出现(321 32 出现 32132 > 32321的情况),可以用a + b > b + a来保证关系的正确性!!!#include <string>#incl...原创 2019-10-31 23:26:17 · 144 阅读 · 0 评论 -
P1071 潜伏者(字符串 结构体)
题目链接:P1071 潜伏者题解:注意点:加密信息的字母要都在原信息中出现;有没有出现的输出Failed;原信息或加密信息必须都出现26个字母;小于26个字母输出Failed;每个字母只能一一对应,不能出现多对一或一对多的情况;出现了则输出Failed;解释:用一个结构体或pair类型来存储一一对应的字母,方便由加密信息来找原字母;查找原信息中是否存在加密字母可以用for循环来,也...原创 2019-10-31 16:44:42 · 304 阅读 · 0 评论 -
P1603 斯诺登的密码(字符串 排序)
题的链接:P1603 斯诺登的密码题解: 先将题目的数字字符串保存,再将数字字符串对应的数字的平方后对100取余的结果一一对应的保存到int型数组;然后在输入的时候去判断是不是出现了数字,出现了数字则将数字存到另一个数组,然后将其排序,从小到大;最后输出,输出最小的一个数,即直接将排好序的全部输出即可;细节:第一位不能是0,是0的直接跳过;后面的如果是一位数,要有前导0,eg: 09;可...原创 2019-10-30 23:20:11 · 456 阅读 · 0 评论 -
P1098 字符串的展开(模拟 细节)
题目链接:P1098 字符串的展开题解: 简单题,细节注意好就行。首先:只有 - 左右都是数字或都是字母才进行拓展,左右相等或右小于左直接输出 - ;其次:进行分情况讨论,p1==2时,即大写时,要讨论是数字还是字母,字母-32,数字不需要,注意这个关键点就行。最后:输出 * 号时,重复数也要考虑进去;参考代码:#include <string>#include <cst...原创 2019-10-26 23:11:00 · 263 阅读 · 0 评论 -
P1086 花生采摘(模拟)
题目链接:P1086 花生采摘题解: 每次都采摘剩下的最大值,所以每次只需要扫描一遍最大值,找到后判断采摘了当前花生剩余的市价能否回去即可;具体操作: 1、先判断第一个最大值能否采到,即第一个的横坐标 * 2 + 1 与K的关系,若大于K,则说明第一个也采不到,即最大采摘数为0,输出即可;2、判断之后的最大值,若最大值为0,退出循环,否则就判断此时最大值与上一个最大值的距离,即两点之间的距离公...原创 2019-10-26 21:41:09 · 236 阅读 · 0 评论 -
P1042 乒乓球(模拟 细节 坑爹)
题目链接: P1042 乒乓球题解: 输入一个判断一个,累计W 和 L 的数据,11制要保证在有人达到11分的情况下两者分差大于等于2才行;21分制一样;即可以这样写:(两种都对) if((W >= 11 && W - L >= 2) || (L >= 11 && L - W >= 2)) if((W >= 11 ...原创 2019-10-26 20:30:48 · 579 阅读 · 1 评论 -
P1031 均分纸牌(模拟 减平均值)
题目链接:P1031 均分纸牌题解: 先求平均值,将牌数变为相对平均值的数,即每一位都减去平均值,再扫描每一位数,若为0,直接跳过;否则后一项加前一项,(若前一项为正,即将前一堆给了后一堆,否则就是向后一项借缺少的数),此时计数器++即可。本人走的歪路:题看错了,忘了移动的限制,不能随便移动,所以进行了排序,。。。而且还不太对。此题:减平均数,变为相对值,最后只需判断非零值即可,前一项的变化...原创 2019-10-23 22:17:26 · 200 阅读 · 0 评论 -
P1014 Cantor表(模拟 细节)
题的链接:P1014 Cantor表题解: 先找到那条斜线,右上到左下,让 t -= a, 再加 1 即可到达该斜线的第一个部位,再判断当前斜线编号的奇偶性,分情况令 c, d 分别取值,然后一个加一个减即可;注意: 一个小坑点,不是每次都是从右上到左下,还有左下到右上,分为奇偶的情况,细节注意;第一次没看见已提交WA了,改了后就AC了。参考代码1.0:#include <queu...原创 2019-10-15 13:30:55 · 165 阅读 · 0 评论 -
P1022 计算器的改良(细节 字符串)
题的链接:P1022 计算器的改良题解: 这题废了我好长时间才弄懂怎么做,输入还是用getchar即可,输入一个判断一次,若为数字就累计起来,若为加号则加上之前累计的sum,若为负号则减去之前累计的sum,加减之后sum清零,最后就是kx + b = 0这个式子;注意:sum 表示数 ;b 表示系数和 ;now 表示等于号位置(左为1,右为-1);f 表示系数符号;k 表示未知数系...原创 2019-10-14 23:32:25 · 134 阅读 · 0 评论 -
P1464 Function(记忆化搜索)
题的链接:P1464 Function题解: 首先想到直接用dfs按题目要求搜一遍就行,结果一提交全部TLE,发现应该用记忆化搜索:记忆化搜索: 就是在搜索过程中可能同一组值得结果第一次就算出来了,第二次搜索就不要在去搜索这个以前就算出来的值,下一次搜到已经保存的值可以直接使用不用继续去搜索求值!可以大大减少搜索的深度和此数,这样就可以全部AC。百度百科:点击这里!具体解释: 因为是三个变量...原创 2019-10-14 17:08:49 · 245 阅读 · 0 评论 -
P1307 数字反转(细节)
题的链接:P1307 数字反转题解: 简单题,有个细节,0的处理,其实不用处理,末尾的0不会累加到res, 中间出现的0会累加;注意: 如:我注释的那一行,加上后会把任何地方出现的0都给排除掉。。。而其实只需要搞最后的0即可。。。。参考代码:#include <stack>#include <cstdio>#include <string>#inc...原创 2019-10-12 17:27:19 · 232 阅读 · 0 评论 -
P1579 哥德巴赫猜想(升级版)(DFS 质数)
题的链接:P1579 哥德巴赫猜想(升级版)参考代码: 朴素法求素数,dfs找质数中的三个数,若和为n,直接退出,测地终止;不需要回溯,因为可能三个质数都相同,不一定不同;#include <stack>#include <cstdio>#include <string>#include <cstring>#include <ios...原创 2019-10-12 16:40:55 · 242 阅读 · 0 评论 -
P1618 三连击(升级版)(DFS 比例)
题的链接:P1618 三连击(升级版)参考代码: dfs求全排列,或者用next_permultation()函数来求全排列,在dfs搜到一个完整序列后将其分割成三个数字;关键点: 比例的问题,不要用int判断,int会自动取整,用double判断即可保证比例一定是对的。#include <stack>#include <cstdio>#include <s...原创 2019-10-12 16:01:06 · 224 阅读 · 0 评论 -
P1478 陶陶摘苹果(升级版)(贪心 排序)
题的链接:P1478 陶陶摘苹果(升级版)参考代码: 够不到的就不存储,存储了的按照能量从小到大排序,累加到第一次超出总能量的时候就行。#include <stack>#include <cstdio>#include <string>#include <cstring>#include <iostream>#include...原创 2019-10-12 12:49:48 · 324 阅读 · 0 评论 -
P1160 队列安排(list vector 链表)
题的链接: 点击这里:P1160 队列安排题解:参考代码1.0: 结构体数组实现(模拟链表)注意:初始化第一个同学前后都没有人插入时,将当前人物的前后分别指向要插入k的前后,再将k前的人的next改到当前人数i,将k后的人pre指向i,右操作类似; L[i].pre = L[K].pre; L[i].next = K; L[L[K].pre].ne...原创 2019-10-02 23:10:11 · 370 阅读 · 0 评论 -
P1739 表达式括号匹配
括号匹配问题: 一说到这个问题,自然而然想到栈,左括号入栈,右括号出栈,最后判断栈是否为空。注意: 当遇到右括号时,出栈时要判断当前栈是不是空,若已经为空,则无法继续出栈,输出NO,结束程序;若不为空,则直接出栈(原因:若右括号大于左括号,多出来的右括号是肯定不能再匹配成一个完整括号);参考代码1.0: 不用栈也可以,直接定义一个变量res来存储左括号个数,遇到右括号就减1,注意点和栈一样;...原创 2019-10-02 17:46:18 · 287 阅读 · 0 评论 -
P1115 最大子段和
题的链接:点击这里!题目描述给出一段序列,选出其中连续且非空的一段使得这段和最大。输入格式第一行是一个正整数N,表示了序列的长度。第二行包含N个绝对值不大于10000的整数Ai,描述了这段序列。输出格式一个整数,为最大的子段和是多少。子段的最小长度为11。输入输出样例输入 #1复制72 -4 3 -1 2 -4 3输出 #1复制4说明/提示【样例说明】2,-4,3,...原创 2019-10-02 14:12:16 · 170 阅读 · 0 评论 -
P1996 约瑟夫问题
题目背景约瑟夫是一个无聊的人!!!题目描述n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出圈,请输出依次出圈人的编号.输入格式n m输出格式出圈的编号输入输出样例输入 #1复制10 3输出 #1复制3 6 9 2 7 1 8 5 10 4说明/提示m,n≤100参考...原创 2019-10-02 10:12:04 · 545 阅读 · 0 评论 -
P1449 后缀表达式(栈的应用)
题的链接:点击这里!题目描述所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。输入格式输入:后缀表达式输出格式输出:表达式的值输入输出样例输入 #1复...原创 2019-10-03 14:14:27 · 393 阅读 · 0 评论 -
P1909 买铅笔
题目描述P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有 33种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P老师决定只买同一种包装的铅笔。商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过nn支铅笔才够给小朋 友们发礼物。现在P老师想知道,在商店每种包装的数量都足够的情况下,要买够至少nn支铅笔最少需要花费多少钱。输入输出格...原创 2019-05-08 11:03:01 · 182 阅读 · 0 评论 -
P1149 火柴棒等式
题目描述给你n根火柴棍,你可以拼出多少个形如“A+B=CA+B=C”的等式?等式中的AA、BB、CC是用火柴棍拼出的整数(若该数非零,则最高位不能是00)。用火柴棍拼数字0-90−9的拼法如图所示:注意:加号与等号各自需要两根火柴棍如果A≠BA≠B,则A+B=CA+B=C与B+A=CB+A=C视为不同的等式(A,B,C>=0A,B,C>=0)nn根火柴棍必须全部用上输入输...原创 2019-06-12 14:01:37 · 227 阅读 · 0 评论 -
P1036 选数(DFS)
题目链接:https://www.luogu.org/problemnew/show/P1036输出格式:屏幕输出,格式为: 11个整数(满足条件的种数)。输入输出样例输入样例#1:4 33 7 12 19输出样例#1:1#include <iostream>#include <cstdio>#include <string>#incl...原创 2019-06-10 23:50:15 · 236 阅读 · 0 评论 -
P1028 数的计算
题目描述我们要求找出具有下列性质数的个数(包含输入的自然数nn):先输入一个自然数nn(n \le 1000n≤1000),然后对此自然数按照如下方法进行处理:不作任何处理;在它的左边加上一个自然数,但该自然数不能超过原数的一半;加上数后,继续按此规则进行处理,直到不能再加自然数为止.输入输出格式输入格式:11个自然数nn(n \le 1000n≤1000)输出格式:11个整数...原创 2019-06-10 17:55:09 · 152 阅读 · 0 评论 -
P1914 小书童——密码
题目背景某蒟蒻迷上了“小书童”,有一天登陆时忘记密码了(他没绑定邮箱or手机),于是便把问题抛给了神犇你。题目描述蒟蒻虽然忘记密码,但他还记得密码是由一串字母组成。且密码是由一串字母每个向后移动n为形成。z的下一个字母是a,如此循环。他现在找到了移动前的那串字母及n,请你求出密码。(均为小写)输入输出格式输入格式:第一行:n。第二行:未移动前的一串字母输出格式:一行,是此蒟蒻的密码...原创 2019-06-08 22:39:31 · 292 阅读 · 0 评论 -
P1598 垂直柱状图
题目描述写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过100个字符),然后用柱状图输出每个字符在输入文件中出现的次数。严格地按照输出样例来安排你的输出格式。输入输出格式输入格式:四行字符,由大写字母组成,每行不超过100个字符输出格式:由若干行组成,前几行由空格和星号组成,最后一行则是由空格和字母组成的。在任何一行末尾不要打印不需要的多余空格。不要打印任何空行。输...原创 2019-06-08 20:50:36 · 136 阅读 · 0 评论 -
P1553 数字反转(升级版)
题目描述给定一个数,请将该数各个位上数字反转得到一个新数。这次与NOIp2011普及组第一题不同的是:这个数可以是小数,分数,百分数,整数。整数反转是将所有数位对调;小数反转是把整数部分的数反转,再将小数部分的数反转,不交换整数部分与小数部分;分数反转是把分母的数反转,再把分子的数反转,不交换分子与分母;百分数的分子一定是整数,百分数只改变数字部分。整数新数也应满足整数的常见形式,即除非给定的...原创 2019-06-06 08:53:11 · 473 阅读 · 0 评论 -
P1308 统计单词数
题目描述一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1 ),如果给定单词仅是文章中某一...原创 2019-06-06 08:54:03 · 155 阅读 · 0 评论 -
P1219 八皇后(经典DFS)
题目描述检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列2 4 6 1 3 5来描述,第i个数字表示在第i行的相应位置有一个棋子,如下:行号 1 2 3 4 5 6列号 2 4 6 1 3 5这只是跳棋放置的一个解。请编一个程序找出所有跳棋放置的解。并把它们以上面的序...原创 2019-05-20 22:00:33 · 128 阅读 · 0 评论 -
P1563 玩具谜题(模拟)
题的链接:P1563 玩具谜题题解: 四种情况(具体两种),即顺时针还是逆时针;以防止b太大,我用了while循环,(题目好像 b 并不大);参考代码1.0: res从1开始的。。。#include <queue>#include <cstdio>#include <string>#include <cstring>#include ...原创 2019-10-06 18:38:53 · 121 阅读 · 0 评论 -
P1601 A+B Problem(高精)
题的链接:点击这里!题目背景无题目描述高精度加法,相当于a+b problem,不用考虑负数.输入格式分两行输入。a,b<=10^500输出格式输出只有一行,代表a+b的值输入输出样例输入 #1复制11输出 #1复制2题解: 建议参考我之前博客,点击这里,高精度模板!==注意:==输入用string,再倒序存到vector里;参考代码:#include &...原创 2019-10-03 20:43:10 · 241 阅读 · 0 评论 -
P2142 高精度减法
题的链接:点击这里!题目描述高精度减法输入格式两个整数a,b(第二个可能比第一个大)输出格式结果(是负数要输出负号)输入输出样例输入 #1复制21输出 #1复制1说明/提示20%数据a,b在long long范围内100%数据0 < a,b < 10^10086题解: 参考我之前的博客,高精度模板!点击这里!注意: 可能A < B,所以用cmp函...原创 2019-10-03 21:14:11 · 316 阅读 · 0 评论 -
P1303 A*B Problem
题的链接:点击这里!题目描述求两数的积。输入格式两行,两个数。输出格式积输入输出样例输入 #1复制12输出 #1复制2说明/提示每个数字不超过10^2000,需用高精图解: 先错位存储积,将同一个位置积都加起来,无论多少行,最后对其进行进位操作,每位只保留一位数,多出来的都加到下一位。再判断一下末尾是否有0,有0都删掉,当然最后一定要不小于1位数。最后倒序输出;C[i...原创 2019-10-04 11:11:10 · 179 阅读 · 0 评论 -
P1217 [USACO1.5]回文质数 Prime Palindromes(质数 回文数)
题的链接:P1217 [USACO1.5]回文质数 Prime Palindromes知识点:偶数位数回文数(除11)必定不是质数(自行百度)打表流程: 暴力输出最大范围内所有答案,按空格隔开,最后用软件将空格全部替换为‘,’即可;再按条件输出。参考代码1.0: 最后一个数据点超时,直接打表暴力通过AC,哈哈哈!#include <queue>#include <cst...原创 2019-10-06 21:32:33 · 292 阅读 · 0 评论