
模拟题(逻辑思维)
Forward in time
永不停止前进
展开
-
Lifeform Detector(模拟思维)
这道题就是看是否满足这个递归的语法:所以直接吧题目意思翻译成代码即可;但是需要注意当s[i]==‘a’的时候需要枚举每一个能够配对的b字符;AC代码:#include<bits/stdc++.h>using namespace std; string s;bool T(int i,int j);bool S(int i,int j);bool S(int i,in...原创 2020-03-06 14:10:42 · 183 阅读 · 0 评论 -
E - Magic Square HDU - 6401(模拟思维题)
说实话写这个题,上面的三角形把我误导了,我一直没看懂这个三角形啥意思,所以我直接看样例就明白了;分析:这道题意思是一个33的矩阵可以分为4个不同的22的矩阵也就是:左边的就是右边的22合并的,注意中间是重叠的看成一个;这样这道题容易了,后面的1C表示第一个22矩阵顺时针转90度,4R表示第四个22逆时针转90度;理解到这个就OK了(提醒一下:字符数组要开大一点哈(别33)因为输入字符...原创 2019-08-01 19:37:39 · 266 阅读 · 0 评论 -
B - Beautiful Now(智慧题,求变换次数(感觉像模板))
说白了吧,这个题要是能靠自己能力写出来并且理解的都是大佬!!!我和队友讨论了有那么久才把网上的计数看懂,最难的就在计录交换次数问题上;我自己对计数的理解:这里用了vis[]数组来表示这个数有没有交换,pos[]数组用来标记原数组a[]的下标,因为后面全排列是对pos全排列的;比如:有没有注意到,a[]中的值对应的的位置是和pos[]中对应的值一起变换的;然后我们就可以利用pos[...转载 2019-07-25 21:11:45 · 237 阅读 · 0 评论 -
A. Three Piles of Candies(签到题)
#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ll a,b,c,T; scanf("%lld",&T); while(T--){ scanf("%lld %lld %lld",&a,&b,&c); ...原创 2019-07-25 08:37:07 · 226 阅读 · 0 评论 -
D - Problem D. Nothing is Impossible(思维题)
这道题,在写的时候,我确实没读懂这个题啥意思,因为我在想correct 和 incorrect 和和学生人数有什么关系,结果队友提醒我。每个total 相乘与m(学生人数)作比较就出来了,原谅我的菜鸡,,,,唉;其实读懂题了,就很easy了;直接枚举比大小:AC代码:#include<map>#include<list>#include<ctime&g...原创 2019-07-23 19:41:07 · 164 阅读 · 0 评论 -
D - Game HDU - 6312
按照题的理解,读者可以直接写几个数找一下规律,居然发现对手是个人才✧*。٩(㉨)و✧。 所以答案直接出来了Yes#include<bits/stdc++.h>using namespace std;typedef long long ll;#define Mod 998244353int main(){ ll n; while(cin>>n) {...原创 2019-07-20 10:24:25 · 104 阅读 · 0 评论 -
HDU-6298 A题题解
题目意思相比都OK,主要是如何去找规律,其实大部分签到题都是规律题,因为你按照题的意思去理解就可以找到规律,写多了自然而然了。#include<bits/stdc++.h> #include<iostream>#include<string>#include<map> #include<cmath>#include<...原创 2019-07-20 09:54:50 · 108 阅读 · 0 评论 -
Balanced Strings(模拟+讨论)
题意:给出字符串,问构成给出的一个主串中的所有偶数长度的连续字符串并且所有连续的字符串中元音字母个数等于辅音字母个数;问一共有多少种?其中元音有a,e,i,o,u,y,6种,辅音有20种;给出主串?上面可以填元音或者辅音;其实这道题就是考阅读。。。当时比赛没注意这道题,结果下来补题的时候才知道这个比H简单多了,直接模拟就A了;根据题目要求,不难发现题目中说的所有偶数长度,那么最小的偶数长度就是...原创 2020-02-28 16:32:19 · 344 阅读 · 0 评论 -
Towers of Hanoi Grid(规律)
题意:给出一个nn格式的钉子和d个从上往下size逐渐增大的disk(放在(1,1)坐标处),问在把d个disk全部移动到(n,n)坐标的时候最少的移动次数是多少,当然题目也有限制条件:1.每个钉子上只能放一个(除开第一个和最后一个)。2.只能往下移动或者右边移动;这道题算是签到题吧。。我自己把题目读错了,我想成了一个钉子可以放多个。。。。。无语了。。。其实把题理解到位了,写两下就可以发...原创 2020-02-27 21:33:24 · 291 阅读 · 0 评论 -
P1022 计算器的改良(模拟题)
这道题有点坑就是0.000和-0.000上面;就是这个意思:按理说应该输出0.000的,但是输出了-0.000,所以有个案例没过,有大佬解释一下原因吗?这道题有个技巧k1=1表示为正数,k1=0表示负数,k2=0表示在等号左边,k2=1表示在等号右边;然后自己手写一个代码模拟一遍即可;AC代码:#include<bits/stdc++.h>using namespac...原创 2020-01-14 13:00:45 · 276 阅读 · 0 评论 -
C. Gourmet Cat(Mod思维题)
题意:就是给你a,b,c,表示不同类的的各自数量;然后第一个食物在1,4,7吃一个单位,第二个食物在2,6吃一个单位,第三种食物在3,5吃一个单位;问:从1–7中选一天出来开始旅行,保证在下一天遇到的食物能有存储来吃,问在这种能连续吃的情况下最长的天数;其实可以列一下表:比如:其实一看这个就是f:r:c==3:2:2,那么我算一个最小周期不就对了吗?然后剩下的就在一个循环里面就可以了...原创 2019-10-16 21:54:44 · 224 阅读 · 1 评论 -
C. Standard Free2play(阅读理解+思维题)
这个题真的 考英语和思维:题意:给你h和n表示起始高度和给出来的显现出来的高度;本来是从[h,1]都有一个单位高度的,但是这里只给出来n个显示高度;其他的都是隐藏的高度(就是不能踩,你一踩就会空然后洗白白(:);然后就是我要到达下一层那么只有这种操作:如果我到下一层,那么就会使得当前高度消失, 如果当前高度-1的高度存在,那么也同样会消失,但是如果当前高度-1不存在,那么就会使得当前高...原创 2019-10-11 21:07:03 · 690 阅读 · 1 评论 -
E. Jumpy Robot(枚举题)
这道题题意:给d和x,问按照这种规律(每次走pow(2,d)格,可以往左也可以往右,但是不走到坐标为负的值,并且走一次d–知道d<0或者到达了x就停止)是否能走到x;如果能问多少步?不能就输出NO;#include<bits/stdc++.h>using namespace std;typedef long long ll;const double PI=acos(-1...原创 2019-09-20 17:38:29 · 168 阅读 · 0 评论 -
Decimal(思维题)
这道题,我队友一来2分钟秒了;我还在不断写分子*10%n。。。。。。;其实他的思路也很简单,直接把分子扩大到1e9就足够了,然后看他除以n之后是不是整数,如果不是整数,那么肯定就无限小数了;因为n很小;比如1/100,这个才0.01,所以1e9已经足够了;AC代码:#include<bits/stdc++.h>using namespace std;typedef lon...原创 2019-09-28 16:50:57 · 162 阅读 · 0 评论 -
A. Amsopoly Simple Version(思维枚举题)
题意:就是三个人玩游戏,玩家分别为1,2,3,题目给出他们各自能走的步数,和总的格子数目N+1;特别:对于第一个格子,是属于政府的,所以三个人可以同时占有,但是对于不是第一个,那么其他的如果是没有人走过的,那么这个人走到这个格子上,那么这个格子就是他的地盘了,如果他们其中一个人走到了别人的地盘,那么游戏就结束了;这个模拟题真的打脑壳!!我刚开始还在找怎么把他们无限循环的情况找出来,结果看了大...原创 2019-09-22 22:50:59 · 228 阅读 · 0 评论 -
J. Jumpity Digits(枚举)
题意:给一个字符串,交换其中两个数字,使得新的串形成的整数小于原来的串形成的整数,并且这个新串形成的整数是小于原来串形成的整数的中的最大值;这道题。我的队友找了半天的规律,结果发现数据很小,直接枚举暴力就过了;枚举每种交换数字的情况,比大小(因为在两个串长度相等的时候,用字典序比较就相当于整数的小的比较了),同时剔除前导0;时间复杂度才o(n^2)所以暴力就过了;AC代码:#inclu...原创 2019-09-21 20:23:29 · 369 阅读 · 0 评论 -
A. Prefixes(枚举)
题意:求修改的最小个数,使得这个偶数串的每个前缀串(这个前缀串是从第一个开始的,并且到结尾总个数为偶数个)中a的个数b的个数;比如:那么他有两个偶数长度的前缀串,且a的个数b的个数;所以不需要修改;又比如:最后两个就需要修改其中一个;所以很明显,直接枚举如果相邻的相同,那就改动一个,下标跳跃值为+2;AC代码:#include<bits/stdc++.h>usin...原创 2019-09-21 20:14:51 · 229 阅读 · 0 评论 -
B. Shooting(枚举+贪心)
题意很好理解,就是根据题目的要求写;所以我需要让x更小的同时让a[i]更大,这样才能满足最小的答案;用结构题记录下标就行;所以sort一下然后累加就AC了;AC代码:#include<bits/stdc++.h>using namespace std;struct Node{ int index; int val;};bool cmp(Node a,Node b){...原创 2019-09-21 18:47:52 · 274 阅读 · 0 评论 -
K - Downgrade(思维题+英语阅读)
这道题真的…我读了半个小时都没读懂啥意思,结果队友一来说就是降级,我说啥?怎么降的?我感觉是我游戏玩少了吗?题意:给你初始的A,B和N分别表示刚开始的主等级,副等级,N次操作;然后问你经过N次操作他的A-B为多少?看到这里我相信,你肯定有点懵逼,QAQ;比如第一个案例:就是这个意思;不断的把B=A,A=1;然后中间一个while来变形1步骤,但问题在于怎么结束循环呢?因为N很大1e...原创 2019-10-03 16:44:47 · 278 阅读 · 0 评论 -
Fall 2019 ICPC-style Waterloo Local Contest:C:Pawn's Revenge(枚举)
这道题首先搞懂题意:题目问是否你能够放一种棋子使得全部在攻击范围内,并且有两种棋子:1.第一种棋子是pawn是卒,他能攻击左上角+右上角;2.第二种是K棋子,他能攻击相邻的8个方向,题目中只给了一个K棋子,并且是已经下好了的,其实知道国际象棋的就应该知道这个常识,如果K都没有了,那么还下什么棋呢?题目问:最少放多少个p棋子能使得星号都在攻击范围上;其实每个挨着枚举一遍就行,所有出现的情况...原创 2019-10-05 20:07:50 · 846 阅读 · 0 评论 -
2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛(C题: Coconut(思维题))
题意:有n个城市编号从1–n,然后你从1号城市开始出发,由于你每天需要摄入b个椰子;但是呢,你从一个城市到另一个城市需要对应的Di天,那么问你能不能在每天保证摄入b个椰子的时候能够到达n号城市,并且每个城市会有Ci个椰子,你可以获得;其实就是一个简单的图而已:可以这样理解:可以很明显发现这个东西和最后一个城市没关系;所以我只需要算积累的Ci值的和-消耗的Di*b的和,判断是否小于0就...原创 2019-10-06 21:34:25 · 158 阅读 · 0 评论 -
2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛(E: Half-consecutive Numbers(强大规律思维题+打表))
题意很很简单吧!!!但是一看1e16,马上就知道应该去找什么规律之类的了;打了一下表可以发现1,8,49,288,…出现频率比较高;这里简单的打表只需要跑个1e4,用两个for就可以看出来滴;for(ll i=1;i<=1e4;i++){ for(ll j=i;j<=1e3;j++){ ll t=i*(i+1)/2; if(...原创 2019-10-06 22:04:29 · 310 阅读 · 0 评论 -
Helping the HR(思维模拟题)
这道题我一看,那么长…,结果就是一个模拟题;这道题如果都把他化成秒就很好算了,因为题目有规定输入的时间不会发生冲突;所以我直接比较秒的大小就行了;主要是题意的理解:1.如果在白班换岗,那么就是必须在9:30之前到岗,否则就迟到了;并且在到岗后必须值班至少8个小时2.如果在晚班换岗,那么就必须在12:30之前到岗,否则就是迟到了;并且在到岗后必须值班至少9个小时3.在一天内,如果迟到,...原创 2019-10-07 16:36:25 · 192 阅读 · 0 评论 -
K - Rabbits(思维题)
题意:给你n个整数,代表每个兔子在的点,然后根据题的规则进行跳;规则:端点的兔子往空的位置跳,并且必须满足跳的点的左右两边有兔子;可以写一写就能发现规律:比如这个例子,那么首先端点的兔子肯定是距离最小的跳,之后中间的空都会走完;直接累加中间空位+端点空位最大值所以AC代码:#include <bits/stdc++.h>using namespace std;int ...原创 2019-10-08 22:25:51 · 325 阅读 · 0 评论 -
A. Hotelier(模拟——逻辑思维题)
这道题,如果能把题读明白其实就很简单了;开头我没读懂题,就一直没思路:题意:给10个房间编号为[0,9];刚开始什么东西也没有,因为每个房间都连通并且进入房间可以从左边entrance或者从右边entrance;如果进入的第一个为空(就是0)的房间,那么这个Amugae就会放一个closet在这个房间(也就是1);现在题目给你一个长度n和一个长度为n的串,来表示customers进入的方...原创 2019-08-12 13:24:19 · 368 阅读 · 0 评论 -
B. Koala and Lights(思维规律)
题意:在初始状态下每隔a秒就转换开关一次,问最多有多少个开关能在同一时刻亮起;很明显就是筛相同时间段;我自己手动模拟了一遍可以这样写:比如第一个案例:然后用map边标记边统计最大值;其实我写完后看了大佬们的代码,我的效率太低了;他们直接用下标去看是不是被a的倍数去记录的区间,还用到了异或操作,那个代码确实很简单:(值得学习)大佬代码:int main() { ios_base::...原创 2019-09-19 16:05:19 · 356 阅读 · 2 评论 -
A. Paint the Numbers(枚举+标记)
题意:给n个数的数组,然后给数组元素染颜色,限制:能被a[i]整除的数,被染为同种颜色;问最少染多少颜色,能使得所有元素被全部染色;其实就是求有多少部分,这些部分之间任意从每个部分中选出元素都是互质;问在这种条件下,最少能分为多少块?其实这道题我一看就很简单(因为题目数据很小),直接sort然后unique,之后再开一个数组标记,然后枚举一遍(枚举在数组中是a[i]的倍数,然后标记)就行了;最...原创 2019-09-19 15:52:48 · 258 阅读 · 0 评论 -
B. Uniqueness(有难度的思维题+数组分割)
题意:就是选一段连续的子区间[l,r]使得删除这段区间之后,剩余元素没有重复的,求最短的子区间;我刚开始这个题是这样想的:先从左往右找第一个重复的然后停止,再从右往左找重复的然后停止,最后r-l+1;但是案例10,始终过不了,之后我的同学给我举了一个例子来证明我的想法是错的:比如:如果按照我的想法去写那么就是4,但是很明显删除2,3只需要两个元素,答案为2,那么我的想法就错了;所以需...原创 2019-08-29 21:29:01 · 168 阅读 · 0 评论 -
B. Square Filling(思维题)
这道题根据题意就可以知道从一个全为0的矩阵经过22的矩阵如何变成矩阵A;其实这道题我刚开始没什么思路;后面可以发现这个问题:对于这两个:如果我用一个book数组来扫描标记22,那么第一个的1能完全对应到book上面,如果第二个我扫一边,那么只能有这几个对应:所以答案就出来了;在枚举A的时候,把2*2的全为1的矩阵;都标记,然后来和book一一对比,如果有不同的,那么就表示不能由B变为...原创 2019-08-29 19:11:34 · 307 阅读 · 0 评论 -
D - Vacation HDU - 6581(思维题+基础物理)
这道题最关键的地方在这:意思就是这些车的距离是0;并且无论你开多快,你只能和前面的并起走;然后求车头过终点线的最短时间;题目的案例给的是每个车的长度l和每个车头部距离终点长度s和他能行驶的最大速度v;那么最好想的一种就是这个距离终点最远的车单独自己到达终点时那么时间就是t=s0/v0;但是如果这辆车和他前面的车相连接后,那么他的速度一定会减小(因为能和前面车想链接说明肯定原速度更...原创 2019-08-27 20:50:30 · 197 阅读 · 0 评论 -
Music Notes(区间映射+思维+二分)
题意:就是给你note的顺序,和节拍的数量;然后询问第几个节拍是属于第几个note的;我当时一来就想,直接输入然后区间枚举不就完了吗?结果看了一下:5e4*1e4,开数组肯定爆了;所以我想了想,能不能把1,2,3节拍个数映射为2,3,6;所以我想了想好像可以,最后直接二分upper_bound就行了;意思就是:然后我直接去找第一个大于询问的值就行了;然后对应的下标就正好是第几个not...原创 2019-08-21 15:34:59 · 222 阅读 · 0 评论 -
B. Block Adventure(贪心+模拟讨论)
这题虽然我比赛的时候没过,但是我后来补的时候自己还是写出来了;好开心嘻嘻;比赛的时候我把题理解错了QAQ,我以为hi表示一个block的高度QAQ(该打脸了QAQ);结果后来补题才发现,所有block高度是一样的;题意:给你n列,并且ai(1<=i<=n)表示每一列所拥有的block个数,同时你有一个bag,它无限大;你可以有以下操作:1.如果你现在正在第i column上面...原创 2019-08-12 15:05:32 · 380 阅读 · 0 评论 -
C. Round Corridor(模拟思维题)
题意,就是把内部均分为n份,外部均分为m份,根据题意编号,给每个的编号,判断坐标之间是不是能够到达;我一看,就想到了1.m==n的情况,这种情况就可以直接判断是不是在同一个对应区域就行了也就是:那么需要满足的条件就是:if(m==n){ if((sx==1&&ex==2&&sy==ey)||(sx==2&&ex==1&a...原创 2019-08-12 13:45:17 · 190 阅读 · 0 评论 -
C - Bear and Finding Criminals(对称性+枚举)
我在想,抓小偷不应该是距离近的抓吗?非要对称,这个题感觉不符合常识;嘻嘻题意:从出发点对称找,如果两边都有那么+2,如果一边有那么+1(这里的一边只针对有一边越界了的,如果两边都没有越界就不加1滴),如果越界了注意限制条件就行:AC代码:#include<bits/stdc++.h>//A - Decoding using namespace std;typedef ...原创 2019-08-15 21:54:29 · 177 阅读 · 0 评论 -
A - Decoding(思维题+就判断+填充)
题意:给你加密的字符串,要你求源串,如何加密题上说了有,所以直接判断奇偶扫一遍就OK;#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ int n; scanf("%d",&n); string s; cin>>s; char an...原创 2019-08-15 21:49:44 · 123 阅读 · 0 评论 -
A. Circle of Students(周期题)
题意:给你n个数字,然后判断是不是能够构成从1开始的顺时针递增或者从1开始的逆时针递增;这道题首先来看顺时针的情况(5个数字的):可以发现有这个规律:a[i]==a[i-1]%n+1;然后来看逆时针:可以发现这个规律:a[i]==a[i-1]%n-1;所以按照这个规律扫一遍就出来了#include<bits/stdc++.h>using namespace std;...原创 2019-08-15 12:31:05 · 423 阅读 · 0 评论 -
C. Almost Equal(思维+规律)
直接看题感觉都能猜了;如果n为奇数则可以,反之NO;然后观察下标关系:如果x=1,那么n+1位置上必定为2;然后在根据案例就可以斗出来了:如果i为奇数a[i]=2i-1,a[i+n]=2i;反之a[i]=2i,a[i+n]=2i-1;AC代码: #include<bits/stdc++.h>using namespace std;typedef long lo...原创 2019-08-19 13:36:00 · 438 阅读 · 0 评论 -
B. Make Product Equal One(模拟)
题意:给你n个数,然后让它们的乘积为1;然后对于每个数只能加或者减1;问最少的操作次数输多少;很明显,>1||<-1的是肯定要变的;之后边输入变统计1和-1的个数还有0的个数;最后判断0的个数情况,因为0可以以最小的操作数影响结果;如果0的个数为0个,那么就只需要看-1的个数是奇数还是偶数了;如果0的个数不为0个,那么无论-1是奇数个还是偶数个都可以用0来弥补,使得结果为1...原创 2019-08-19 13:29:31 · 255 阅读 · 0 评论 -
C. Magic Grid(异或矩阵构造+思维)
这道题是个规律题;我开始读题的时候,很是懵逼,这怎么搞?后来看了大佬的博客,我才知道有这么一个规律:比如:这个是44的矩阵,按着顺序放,可以发现每行没列异或和都为0;而且题上又说了n是4的倍数;所以可以分块放了;什么意思呢?就是这个意思:这样每个44异或都为0,那么对应的行或者对应的列合起来异或和为0;这样就够找出来了;那么我只需要从左往右填数字就行了;AC代码:#include...原创 2019-08-30 09:37:53 · 1005 阅读 · 0 评论 -
C. Caesar Cipher(找规律)
签到题;题意:给一个明文,给一个暗文,然后在给一个暗文;根据第一个解码的规律解码第二个暗文;然后输出第二个的明文;其实规律就这样的;唉,比赛的时候没看到这道签到题,结果晚了一步;上面的s1,s2,s3表示的是三个串相同位置对应的字母哈,我这里简写了;还有就是注意减出来是负数的情况;所以需要+26然后%26;也就是:因为根据题意其实s2-s1的差值都是相等的;所以直接算他们的头一...原创 2019-08-31 20:05:40 · 270 阅读 · 0 评论