
模拟
Rem_Inory
这个作者很懒,什么都没留下…
展开
-
【题解】 洛谷P1598 垂直竖状图(模拟 字符串)
纯模拟即可。运用gets读入一整行字符,并记录其中每个字母出现的个数。读入完毕后记录下最多的字母出现的个数。然后从那个数开始循环,内层对每一个字母进行判断,如果比它小就输出空格,否则输出星号+空格。最后一行输出字母+空格即可#include<cstdio>#include<iostream>#include<cstring>#include<...原创 2018-07-23 11:10:17 · 391 阅读 · 0 评论 -
【题解】洛谷P1027 Hankson的趣味题(gcd 枚举 数学)
纯粹的数学推理题。。。找到思路后代码实现还是不难的。注意不要开long long。。。不然会TLE一个点思路:https://zzlzk.blog.luogu.org/solution-p1072#include<cstdio>#include<iostream>#include<algorithm>#include<cstdlib&g...原创 2018-08-24 21:20:08 · 254 阅读 · 0 评论 -
【题解】洛谷P1029 最大公约数和最小公倍数问题(gcd 暴力)
郁闷。。这题交了三遍才过 果然我太菜了qaq就是个枚举,我说一下我的简化思路。首先循环从x0到sqrt(x0*y0),因为这后面的数都和前面相反了,所以枚举到这里就可以停下,乘二就是结果。如果枚举到一个数恰好为sqrt(x0*y0)就在乘二的基础上给结果加1.然后gcd和lcm乘积就是x0*y0,利用这个性质写一个gcd函数,然后判断一下他们的最大公约数是不是想要的那个,然后再判断一下能不能整...原创 2018-08-24 19:26:20 · 353 阅读 · 0 评论 -
【题解】洛谷P3952 时间复杂度(栈 模拟 字符串)
https://www.luogu.org/blog/WYW-wys/solution-p3952没想到.jpg转载 2018-08-23 15:13:11 · 287 阅读 · 0 评论 -
【题解】洛谷P2264 情书(字符串 模拟)
显然这道题我们用字符串存储感动词汇,然后读入正文时读一整行,比较部分字符串会更方便 这里学到了几招。1.要考虑把大写都转成小写,不会stl库就将所有大写字母加上'a'-'A',就变成小写形式了。2.初始化一个空白字符串 sent=“”,然后在读入正文时倘若读到的不是空格/逗号/句号,就令sent+=zw[i],可以直接将字符类型变成字符串。注意在判断空格/逗号/句号末尾将sent变回“”即...原创 2018-08-18 14:20:30 · 339 阅读 · 0 评论 -
【题解】 洛谷P2278 操作系统(堆)
堆可以很好地实现模拟的一些思路。我们首先要开一个结构体,记录下操作的序号、时间间隔与优先级。接着对堆内大小比较重载运算符,保证每次堆顶都是优先级最大、若优先级相同则是编号更小(更早进入)的元素。然后我们在读入一个新的元素时,需要对当前堆内的每一个元素进行判断。当堆不为空时,用当前的时间加上堆顶元素处理经过的时间,如果比读入的那个元素时间小就把当前时间更新(加上堆顶元素处理时间),输出堆顶元素编...原创 2018-08-08 09:02:52 · 259 阅读 · 0 评论 -
【题解】洛谷P2038 无线网络发射器选址
一道非常暴力的模拟。。。不用想各种优化,就从0到128枚举就好了。注意边界条件,如果左或右超了就变成0或者128。这道题一开始我想读入后排序找左上右下然后找出一个安装范围,后来发现这个节省不了多少时间。。而且还错了qaq 所以看到数据范围后直接枚举就好了。#include<cstdio>#include<iostream>#include<algorithm...原创 2018-08-12 19:49:48 · 323 阅读 · 0 评论 -
【题解】洛谷P2361 yyy棋(模拟)
一开始百思不得其解,但看到提示说核心代码只有6行,再加上题目说一定有取胜的情况,看了看站长的解释,思路还是比较清晰的。https://www.luogu.org/blog/kkksc03/solution-p2361注意把buwanle的情况删掉。。不然会莫名其妙地挂#include<cstdio>#include<iostream>#include<...原创 2018-08-07 17:59:57 · 261 阅读 · 0 评论 -
【题解】洛谷P4050 麻将
枚举听牌 再枚举对子、刻子、顺子。记录下每一种牌的数量,e数组代表当前的情况,对数量大于3的种类的牌来说,%3就意味着拿出刻子,取模后剩下不够3的只能和顺子凑,所以它后面的两张牌要减去前面的数量。注意j要枚举到n+2,这样可以避免越界。#include<cstdio>#include<iostream>#include<algorithm>#in...原创 2018-08-11 17:14:59 · 263 阅读 · 0 评论 -
【题解】洛谷P1081 开车旅行(倍增)
这道题目的难度估计是noip之壁了吧。。。70分的模拟做法之前已经讲过了,现在来说说100分的倍增做法。首先,读入海拔后,我们可以预处理出从任意一个城市出发, 小A与小B能到达的下一个城市。思路就这么短,但代码非常繁琐,我感觉这部分甚至比倍增还麻烦。我们需要先将城市编号与海拔存在结构体内,对结构体按海拔高低进行排序,然后从1号城市到n号城市寻找其左右相邻的两个城市(还要这样离得最近),判断...原创 2018-08-10 21:58:35 · 462 阅读 · 0 评论 -
【题解】 RQNOJ PID397 约会计划(模拟 并查集)
估计问题大部分集中在如何存储字符串,求并查集的过程。我们只需要手写一个get函数,遍历所有的字符串,找到某个字符串对应的序号存下来,然后求普通的并查集就行了,在合并和找父亲时对其序号进行操作。#include<cstdio>#include<iostream>using namespace std;const int maxn=2030;int fa[maxn...原创 2018-07-22 10:46:41 · 149 阅读 · 0 评论 -
【题解】洛谷P2484 打地鼠(模拟)
对于锤子的大小,我们可以枚举。然后模拟对要砸的部分进行操作,对该区域减去砸的地方左上角的数(也就是次数),如果小于零就return false。这样会浪费许多时间。我们可以从大到小枚举锤子,并且只有所有地洞地鼠之和%锤子体积为0时才进行操作,另外,只有当地鼠和÷锤子体积小于等于已得到答案的最小值时才砸。#include<cstdio>#include<iostream&g...原创 2018-07-29 07:24:41 · 612 阅读 · 0 评论 -
【题解】洛谷P1098 字符串的展开(模拟 字符串)
就按照给你的指令去做就好了,这里提几个坑点:1.两个数字连一起是要判断的。。。我没判断WA10分2.两个“-”连一起也要判断。。。 10分3.有可能一开始或结尾就是“-”; 20分4.如果你在洛谷上评测,很有可能零分,因为其数据读入极其不规范。你需要手动过滤掉多余的字符。写的还是比较繁琐的,但能看懂#include<cstdio>#include<ios...原创 2018-07-25 22:21:47 · 297 阅读 · 0 评论 -
【题解】洛谷P1965 转圈游戏(快速幂 模拟 数学)
稍微思考我们不难得到答案的表达式为(x+m*10^k)%n,然后由于k给的非常非常大,我们这道题就需要用快速幂了。快速幂是啥可以自己尝试写一写。再就是注意对于取模问题,我们每做一次加法或乘法时都需要进行取模,为了防止加起来的数超过mod,所以这道题答案应当是(x%n)+(m%n)*(10^k%n) 对快速幂的取模操作直接在函数里进行,最后在输出答案时还要取模,因为两个比模数小的数加起来有可能比模数...原创 2018-07-28 14:52:53 · 359 阅读 · 0 评论 -
【题解】vijos 最高的牛
仔细观察数据可以发现,如果要求可能最大的每头牛的高度,只需要将给出的区间(注意是开区间)内的数减去1就行了。然而只能得50分。因为还要判断一下是否之前输入过这个区间,否则会重复减去。当然 上面的做法并不是最优,因为数组开的太大了,只是由于在线评测你用多少空间机器给你多少空间,正式比赛会全部MLE。我们还有判重的优化做法。就是将读入的区间存在结构体里,并将结构体按照x大小排序,在做减法之前,我们...原创 2018-07-28 14:48:34 · 180 阅读 · 0 评论 -
【题解】洛谷P1202 黑色星期五(模拟)
思路可能有 但实现起来可能无从下手,那我们就简单模拟一下整个过程吧。首先需要手写月份表,注意把12月放在最前面,这样后面的月份是正确的。由于1900年的第一个13号是周三,所以我们初始化一个last为3。读入n年,从1900年循环到1900+n-1年,如果判断出来当前年份为闰年(i%400==0 或者 i%100!=0(不是世纪年)且i%4==0 ),那么我们需要把月份表中的2变为29天,对每...原创 2018-07-23 22:18:22 · 532 阅读 · 0 评论 -
【题解】洛谷 P1190 接水问题(贪心 模拟)
这个题思路还是很好想的。对于当前m个水龙头的所有人,找到其接水时间最短的那一个,答案+=那个时间,然后将m个水龙头前所有人的时间减去那个时间,将下一个接水的那个人放到那个位置 重复上述操作。注意需要n-m次,因为到了n-m+1次时就没有人等待接水了,这时我们应当给答案加上在接水的人当中时间最长的值。我的代码略显复杂。。不过思路还是比较明显的。 #include<cstdio>...原创 2018-07-23 21:45:08 · 629 阅读 · 0 评论 -
【题解】洛谷各种字符串问题合集(持续更新中)
洛谷 P1449 后缀表达式这道题需要手动模拟栈的操作。读入字符,当字符不为终止字符@时,如果读入的是数字就用now记录下它的值,如果读入的是 . 就将得到的数字值放到栈顶,并清空now。当读到运算符时,就拿栈顶元素下面的第一个元素和栈顶元素进行加减乘除的操作,并将栈顶清空,元素退栈,最后输出栈内剩下的唯一元素即可。要用long long#include<iostream>...原创 2018-07-23 17:13:39 · 1714 阅读 · 0 评论 -
【题解】洛谷P2354 [NOI2014] 随机数生成器(贪心 模拟)
题面很长 但这道题最大的难度在于贪心和卡常前面一大堆随机数怎么搞出来完全可以直接模拟,注意该long long该取模的地方要做到。然后我们就到了字典序最小的那一部分。这里我们可以设两个数组L[x]与R[x],代表第x行最左边能取第几列、最右边能取第几列。初始化为1和m。然后我们从小到大枚举矩阵里的数,如果这个数所在的列满足它在所在的行内的L[x]到R[x]区间范围内,那么这个数就可以被选择,然...原创 2018-10-14 11:08:53 · 409 阅读 · 0 评论