文章分类 -  思维题 思路点拨

主要思路/特殊样例/解法介绍/知识补充等
摘要:思路分析 数据处理较为麻烦,建议使用vector。 bool二维数组来标记题目是否被做出了,最大编号为1000,总共3人。每个人做出的题,如果之前标记过,那么不存入对应的vector的做题记录中。 统计完成后需要进行排序,谁做到题多,注意sort的排序规则。 排完后输出部分每个人做出的题目也需要再进 阅读全文
posted @ 2023-02-17 10:30 guanglong 阅读(9) 评论(0) 推荐(0)
摘要:思路分析 模拟题。 使用结构体,将卡片信息与卡牌长度记录在内。 AS ACE,可以存为 struct card { string name; // 卡牌名 int d; // 长度 }; // 伪代码 card a; a.name = "AS"; a.d = ACE.length(); //这张扑克 阅读全文
posted @ 2023-02-17 10:20 guanglong 阅读(9) 评论(0) 推荐(0)
摘要:思路分析 映射,用switch会更加方便些,将所有音转化为数字,在与之前的数字进行比对,若一样,则跳过即可;若不一样,则拼接到空串中即可。 阅读全文
posted @ 2023-02-17 10:14 guanglong 阅读(28) 评论(0) 推荐(0)
摘要:思路分析 此题需要学习STL-list,来解决问题会更加简便。 list<string> l 或者 vector<string> v 也可,但随着数据量增多,vector的效率低于list。 每次遇到[],将他们标记,是在前面继续添加还是在后面添加,直至下一次遇到新的符号,将整个字符串放在对应的li 阅读全文
posted @ 2023-02-17 10:07 guanglong 阅读(9) 评论(0) 推荐(0)
摘要:思路分析 思路一: 暴力枚举的方式,查看所有行与列是否满足要求。若不满足,四层循环进行判断,从 1,1 开始直到 n,m,所有位置的蜡烛取反之后,能否满足题目要求。 思路二: 从数学角度来看,若能够改变一个蜡烛的位置满足题目要求,有且仅有一个位置(读者自行证明),即所有行当中,有且仅有一行是奇数个蜡 阅读全文
posted @ 2023-02-17 09:59 guanglong 阅读(23) 评论(0) 推荐(0)
摘要:思路分析 通过使用STL-map,可以轻松将字符串号码出现次数做统计,详见学习map的使用。 处理电话号码的时候,遍历整个字符串,若是数字字符,则拼接到空的字符串上。这里需要用到switch更加便捷。 处理完之后,使用map中的count函数判断是否出现过这个号码,若出现过,将对应记录重复的bool 阅读全文
posted @ 2023-02-17 09:51 guanglong 阅读(23) 评论(0) 推荐(0)
摘要:停车 思路分析 如何做到逛完所有的店之后回到车上的路径是最短的? 在最近的店铺与最远的店铺之间任意一点即可,可画图证明。那么总路程是最近与最远店铺路程的两倍。 阅读全文
posted @ 2023-02-16 17:55 guanglong 阅读(8) 评论(0) 推荐(0)
摘要:搜索尼斯湖水怪 题意分析 略。 思路点拨 周围一圈不需要被声呐覆盖,则只需要将所给的边长长度-2,每条长需要放多少声呐乘以每条宽需要放多少声呐。 阅读全文
posted @ 2023-02-16 17:40 guanglong 阅读(12) 评论(0) 推荐(0)
摘要:神奇农庄 题意分析 略。 思路点拨 一头小牛需要4年时间才能长大成一头成年牛。 在第5年之后,第1年的成年牛传来的小牛已经长大,可以得到:第i年所有牛的数量=第i-1年所有牛的数量+第i-3年所有牛的数量。 关键在于第i-3年,这一年的所有牛的数量就是第i-4年小牛长大后的,可以传来小牛的数量。 阅读全文
posted @ 2023-02-16 17:28 guanglong 阅读(11) 评论(0) 推荐(0)
摘要:最小面积 思路点拨 两个房子一定是水平放置时,所占面积是最小的。 互相垂直: 势必需要用较短的边+较长的边长度是这个方形面积的边。 水平放置: 较短的边$*2$和另一个较长的边构成的方形面积,这里取其中较大的作为方形面积的边。 因为较短边$<=$较长边$<$较短边+较长边,所以垂直型的一定不可取(较 阅读全文
posted @ 2022-11-29 23:13 guanglong 阅读(29) 评论(0) 推荐(0)
摘要:又是两个整数 思路点拨 求$a$如何$+ or -$变化成$b$,实际上求$|a-b|$这段差值如何快速达到。 还是贪心的策略,$10$个$10$个增加一定比别的快,如果是整$10$的倍数,那么直接除以$10$即可。但是如果不是$10$的倍数怎么办,必须在加若干次$10$之后再进行一次操作,$1$到 阅读全文
posted @ 2022-11-29 21:34 guanglong 阅读(14) 评论(0) 推荐(0)
摘要:恢复三个数字 思路点拨 $a+b,a+c,b+c,a+b+c$是给出的四个数字,这些数字并不是按照一定顺序给出的,可能是乱序的。 首先这四个式子的大小关系$a+b≤a+c≤b+c<a+b+c$,那么得到最大值的就可以推出$a,b,c$的数值了。 借助$a+b+c - (a+b)$可求出$c$的数值, 阅读全文
posted @ 2022-11-29 21:11 guanglong 阅读(11) 评论(0) 推荐(0)
摘要:零花钱 题意分析 题意简化,将$n$元钱分给两个人,两人拿到的钱是整数,其中一个人的钱必须要多于另一个人,每人至少拿到钱。 思路点拨 因为是多组数据,$T$很大,并且$n$也很大,循环一个一个去计算多少种方案会超时。 从数学角度来看,其中一个人的钱必须要多于另一个人,也就是当两人钱都相等的时候,这时 阅读全文
posted @ 2022-11-29 21:05 guanglong 阅读(47) 评论(0) 推荐(0)
摘要:钞票 思路点拨 如何做到钞票张数最少,还可以刚好凑出$M$元钱? 首先要清楚一张面值$100$元的钞票相当于 $5$张$20$元 $10$张$10$元 $20$张$5$元 $100$张$1$元 面值越大的钞票能比面值小的钞票少拿非常多的钱,那么换钞票的时候也是一样,$100$元的钞票可以拿几张,剩余 阅读全文
posted @ 2022-11-29 20:49 guanglong 阅读(52) 评论(0) 推荐(0)
摘要:计算 题意分析 求$f(n)$值,注意这个$n$会很大,$10^{15}$如果时循环来写,会超时。 思路点拨 观察这个式子: 实际上奇数偶数交替相加,奇数都是负数。 先看奇数情况: 我们可以将这个式子都加上0,0没有正负,且对答案无影响。 $f(1)=0+(-1)=-1$ $f(3)=0+(-1)+ 阅读全文
posted @ 2022-11-29 20:25 guanglong 阅读(30) 评论(0) 推荐(0)
摘要:缤纷的糖果 题意分析 题意简化,删除若干个字符,使得最后剩下的任意两个相邻的字符不相同。 思路点拨 贪心的想法,如果某个字符与前一个字符不相同时,已经满足最后所需的结果,可以不用删除。 但当与前一个字符相同时,比如$(GGGB)$,需要将这两个$G$删除。 阅读全文
posted @ 2022-11-29 20:12 guanglong 阅读(16) 评论(0) 推荐(0)
摘要:网恋风波 题意分析 题意简化,求字符串中不重复字符的个数,如果个数是奇数,输出IGNORE HIM!,反之输出CHAT WITH HER!。 思路点拨 作为字符串处理,$for$循环记录每个字符出现与否,这个记录可以直接使用$bool$数组,出现则对应字符是为$true$。 最后统计为$true$的 阅读全文
posted @ 2022-11-26 11:28 guanglong 阅读(17) 评论(0) 推荐(0)
摘要:我学会了求和 题意分析 题意简化,公式只能从小到大拼接的算式。 思路点拨 读入字符串后,将数字字符转换数字,利用桶排序思想,记录$1,2,3$出现的次数。 最后循环将这三个次数依次输出,需要注意$+$号的输出。 阅读全文
posted @ 2022-11-26 11:24 guanglong 阅读(24) 评论(0) 推荐(0)
摘要:我要大过你 思路点拨 测评机器每秒大约执行$1·10^8$次操作,由于数据规模较大,$0<a,b≤1·10^9$,如果是循环来做,最极端的情况则会超时。 考虑$a$与$b$当前的倍数关系$+1$,$a/b+1$的倍数可以得到$a$至少增加多少达到这个倍数数值,$(a/b+1)·b-a$,这个数值是$ 阅读全文
posted @ 2022-11-26 11:20 guanglong 阅读(17) 评论(0) 推荐(0)
摘要:最大字符 思路点拨 $for$循环遍历一遍,先记录最大的字符。 再$for$循环遍历一遍输出每个字符,当每次遇到最大的字符,不仅输出这个字符,并且还需要输出(max)字符串。 阅读全文
posted @ 2022-11-26 10:44 guanglong 阅读(17) 评论(0) 推荐(0)