细节处理技巧&简单字符串处理
文章平均质量分 65
细节处理技巧和简单字符串处理
_rhinoceros_
非淡泊无以明志,非宁静无以致远。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
AtCoder ABC001D - 感雨時刻の整理 题解及翻译(差分,排序,占位输出方式)
给定一个变量 m, 之后是 m 组时间段以“时分-时分”给出要求将其转化之后再合并转化方式为,起始时间向前移动到能被5整除,结束时间向后移动到能被5整除,如:1148-1210转化为1145-1210合并方式为,将重复的时间段合并。原创 2023-09-17 09:05:58 · 372 阅读 · 0 评论 -
Codeforces Round #719 (Div. 3) B.Ordinary Numbers 题解(打表,技巧处理)
(之前写在小号里了,现在大号找回来了,所以再搬回来) 这道题目深刻地告诉了自己基础的重要性!!! 读完题目直接想到打表,然后因为是有序数组,所以直接想到二分。到这里按说这道题应该很好做,但是自己首先,忘了lower_bound和upper_bound的区别,然后去查区别,浪费了时间。然后又因为其它地方的错误,交上去WA了,自己又以为是二分没写好,于是把二分改成了手写二分,结果手写二分又忘了怎么写,于是去查手写二分,又浪费了时间,而且交上去还是WA. 然后仔细读代码后发现,打表时少打了一位,应该打到1e9-1原创 2021-10-17 11:18:22 · 252 阅读 · 0 评论 -
(离散化)洛谷P1496火烧赤壁
一、洛谷P1496火烧赤壁 前言:首先这道题,可以用模拟过,模拟方法需要一些技巧,但是本文讲的是离散化方法,就忽略模拟法了。 算法分析1:首先,如果忽略本题的船的位置范围(本题船位置范围达到了10^9而且还包含负数),假设范围比较小且不包含正数,那么这道题的解法就是相当直观的,只需要用一个标记数组(bool数组),数组初始化时元素全部为false,然后主函数中将输入所涉及的范围全部打成true,最...原创 2020-01-21 20:07:23 · 1920 阅读 · 1 评论 -
(每日水题005-1)(细节处理)洛谷P1014 Cantor表
一、算法分析 可以把cantor表按照从左上到右下进行分层,然后分析出本题的答案与“层数”有关,只要求得层数和该数位于该层的第几个即可。层数的计算可以根据1~n累加等于(1+n)*n/2,然后列一元二次方程计算。 二、代码及注释 #include<iostream> #include<cstring> #include<algorithm> #include&l...原创 2020-03-02 19:28:48 · 185 阅读 · 0 评论 -
(细节处理)(枚举)洛谷P1473 零的数列 Zero Sum
一、算法分析 刚开始打算用搜索,在dfs函数中记录每次累加的值,然后看到数据规模相当小,于是就直接写了一个dfs爆搜所有的运算符可能,然后再验证,这个验证过程是比较麻烦的,涉及一些细节问题。尤其是对于空格的处理。具体解释在代码里。 二、代码及注释 #include<iostream> #include<cstring> #include<cstdio> #inc...原创 2020-02-06 02:00:25 · 337 阅读 · 0 评论 -
(细节处理)洛谷P1378油滴扩展
一、算法分析 这道题相当于枚举加模拟,编写代码时最好用自顶向下的方法,先写主函数,把子函数空着,等主函数写完再写子函数。主函数的框架很简单,可以套用stl的next_permutation作为外层循环,然后内层每次计算油滴的半径(算半径可以用子函数实现)即可,然后每次拿局部答案和总答案比较,找出最优解。此外四舍五入的输出方式也要注意。详见代码注释 二、代码及注释 #include<iostream> #include<cstdio> #include<cstring> #原创 2020-05-08 23:07:54 · 210 阅读 · 0 评论 -
(细节处理,负数下标变正数下标,并查集)洛谷P2078 朋友
一、算法分析 算法很直观,直接用并查集判朋友关系,预处理时先让小明和小红成为朋友。最后找和小明(或小红)是朋友的人,统计其中男性和女性的个数,输出较小的那个就行。本题的一个关键在于细节处理,女性下标是负值。这时可以观察题目给出的数据范围,数据范围在10000,不大这样的话,就可以把所有女性的下标加上20001,注意是20001不是20000,要再多加一个1. 二、代码及注释 #include<...原创 2020-01-22 10:11:04 · 406 阅读 · 0 评论 -
(细节处理)P3093 [USACO13DEC]牛奶调度Milk Scheduling
一、算法分析 本题是一道比较简单的贪心题目,想法也很直观,先按照g由大到小排,如果g相等再按d由小到大排即可。但是对于题目中的时间的细节处理却困扰了自己不少。仔细想想还是没有领会题意所致,巧的是,自己之前的错误代码,竟然恰好能过样例(说明样例很水),于是自己就一直没有认识到自己程序的问题。所以反思一下,今后还是应该在样例比较水的情况下,自己手算几个样例出来进行对比。 本题细节处理的地方就在于挤奶的...原创 2020-01-15 20:58:03 · 407 阅读 · 0 评论 -
(随机算法)洛谷P1356 数列的整除性
一、算法分析 随机算法的核心就是随机(感觉像说了句废话)。但是当随机的次数足够多的时候,往往能够在很高的几率上“碰”到正确答案。基本框架是随机进行决策,然后生成结果。注意,随机算法往往是决策随机而不是每次生成的结果随机,结果还是要保证是合法结果的,比如本题每次虽然加减是随机进行的,但是结果都是合法结果,再此基础上,再去判断是否可以被k整除。 二、代码及注释 //随机算法 #include<iostream> #include<cstdio> #include<cstring&g原创 2020-05-09 20:12:48 · 305 阅读 · 1 评论 -
AccurateLee题解
算法分析 这样的题常常容易想复杂,这道题其实只要删掉第一个一出现的地方到第一个一出现之后第最后一个0出现的地方之间的部分即可。具体可以用递归的思想来理解这个过程。 在代码实现方面,可以借助string里的erase函数。 代码 #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> using namespace std; int main(){ i原创 2020-06-24 23:41:49 · 475 阅读 · 0 评论 -
(字符串、迭代加深搜索)洛谷P1032 字串变换
一、算法分析 首先题目说若在10步之内有解就输出步数,十步之内无解就是NO ANSWER,这就说明了搜索的深度不会超过十步,可以考虑用迭代搜索。迭代深搜基本框架和数据的读入写好之后,就是处理细节了,刚开始打算用链表做,结果自不常用链表,一直写错,后来发现可以用string类里面的find函数和replace函数来解决题目中的替换问题,find函数的作用是在a串中找到b串第一次出现的地方,用法a.f...原创 2020-02-08 23:12:41 · 316 阅读 · 0 评论 -
简单字符串-UVa401回文词(紫书题分析)
一、核心思想 本题难度较低,但是在代码上(紫书的思路)有突出的优点,所以本题比较经典和重要。技巧比如其将镜像串进行了打表操作,以及将返回的信息也打了表。(注意这个表最好打成常量的)。代码是紫书上的,本文写了一些注释。 二、代码及注释 #include<iostream> #include<cstring> #include<cstdio> #include<...原创 2019-11-26 01:13:46 · 194 阅读 · 0 评论 -
字符串-洛谷P1070潜伏者 题解
题目链接 题目戳这里 思想 基本没有什么思想,输入有些小坑。一定要考虑到如果密码本合法,则26个字母每个字母都要能够解密。再注意一下多个明文对应一个暗文的情况即可(本文用了一个校验数组) 代码及注释 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #i...原创 2019-11-16 01:18:43 · 181 阅读 · 0 评论
分享