
模拟/枚举/排序
模拟/枚举/排序
cutlery1137
这个作者很懒,什么都没留下…
展开
-
蓝桥杯 移动距离
题目链接:AcWing 1219. 移动距离X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为 1,2,3…当排满一行时,从下一行相邻的楼往反方向排号。比如:当小区排号宽度为 6 时,开始情形如下:1 2 3 4 5 612 11 10 9 8 713 14 15 …我们的问题是:已知了两个楼号 m和 n,需要求出它们之间的最短移动距离(不能斜线方向移动)。输入格式输入共一行,包含三个整数 w,m,n,w 为排号宽度,m,n为待计算的楼号。输出格式输出一原创 2020-10-10 17:10:12 · 426 阅读 · 0 评论 -
洛谷P1145 约瑟夫
题目链接:P1145 约瑟夫程序说明:模拟,假设数到m杀一个,剩余n个人,从第i号人开始数数,下一个杀掉的是第i+m-1(i+m-1<n)个人。到后面i+m-1可能会超过n,要回到开头数,所以杀掉的是(i+m-1-1)%n+1个人只要杀的人的编号>k就不是好人注意下标从0开始。代码如下:#include <iostream>using namespace std;int k;int main() { cin>>k; int m = k + 1原创 2020-10-28 12:48:19 · 1027 阅读 · 1 评论 -
洛谷P1996 约瑟夫问题【队列】
题目链接:P1996 约瑟夫问题#include <iostream>#include <queue>using namespace std;int n, m, cnt = 1;int main() { queue<int> q; cin>>n>>m; for(int i = 1; i <= n; i++) q.push(i); while(n) { i原创 2020-10-28 09:09:18 · 336 阅读 · 0 评论 -
蓝桥杯 航班时间
题目链接:AcWing 1231. 航班时间【问题背景】小h前往美国参加了蓝桥杯国际赛。小h的女朋友发现小h上午十点出发,上午十二点到达美国,于是感叹到“现在飞机飞得真快,两小时就能到美国了”。小h对超音速飞行感到十分恐惧。仔细观察后发现飞机的起降时间都是当地时间。由于北京和美国东部有12小时时差,故飞机总共需要14小时的飞行时间。不久后小h的女朋友去中东交换。小h并不知道中东与北京的时差。但是小h得到了女朋友来回航班的起降时间。小h想知道女朋友的航班飞行时间是多少。【问题描述】对于一个可能跨时原创 2020-10-17 11:44:17 · 328 阅读 · 0 评论 -
蓝桥杯 四平方和【枚举】【哈希表】
四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多 4个正整数的平方和。如果把 0包括进去,就正好可以表示为 4个数的平方和。比如:5=02+02+12+227=12+12+12+22对于一个给定的正整数,可能存在多种平方和的表示法。要求你对 4个数排序:0≤a≤b≤c≤d并对所有的可能表示法按 a,b,c,d为联合主键升序排列,最后输出第一个表示法。输入格式输入一个正整数 N。输出格式输出4个非负整数,按从小到大排序,中间用空格分开。数据范围0<N<5∗原创 2020-10-17 10:39:42 · 380 阅读 · 0 评论 -
蓝桥杯 蚂蚁感冒【模拟】
题目链接:AcWing 1211. 蚂蚁感冒长 100 厘米的细长直杆子上有 n只蚂蚁。它们的头有的朝左,有的朝右。每只蚂蚁都只能沿着杆子向前爬,速度是 1厘米/秒。当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。这些蚂蚁中,有 1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。输入格式第一行输入一个整数 n, 表示蚂蚁的总数。接着的一行是 n个用空格分开的整数 Xi, Xi的绝对值表示蚂蚁离开杆子左边端点的距离原创 2020-10-16 19:24:20 · 205 阅读 · 1 评论 -
蓝桥杯 星系炸弹
在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。每个炸弹都可以设定多少天之后爆炸。比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。比如:2015-02-19请严格按照格式书写。不能出现其它文字或符号。#include <iostream>using namespac原创 2020-10-15 22:30:20 · 181 阅读 · 0 评论 -
蓝桥杯 分数
1/1 + 1/2 + 1/4 + 1/8 + 1/16 + …每项是前一项的一半,如果一共有20项,求这个和是多少,结果用分数表示出来。类似:3/2当然,这只是加了前2项而已。分子分母要求互质。程序说明:可以用等比数列的前n项和公式,也可以直接模拟来做。答案:1048575/524288代码如下:#include <iostream>#include <cstdio>using namespace std;int a = 1, b = 1;int gc原创 2020-10-15 22:15:25 · 1386 阅读 · 5 评论 -
蓝桥杯 饮料换购
题目链接:AcWing 1216. 饮料换购乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去(但不允许暂借或赊账)。请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的 n瓶饮料,最后他一共能喝到多少瓶饮料。输入格式输入一个整数 n,表示初始买入的饮料数量。输出格式输出一个整数,表示一共能够喝到的饮料数量。数据范围0<n<10000输入样例:100输出样例:149#include <io原创 2020-10-13 20:02:37 · 173 阅读 · 0 评论 -
蓝桥杯 日志统计【双指针】
题目链接:AcWing 1238. 日志统计小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 N行。其中每一行的格式是:ts id表示在 ts时刻编号 id的帖子收到一个”赞”。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为 D的时间段内收到不少于 K个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻 T满足该帖在 [T,T+D) 这段时间内(注意是左闭右开区间)收到不少于 K个赞,该帖就曾是”热帖”。给定日志,请你帮助小明统计出所有曾是”原创 2020-10-11 17:57:38 · 285 阅读 · 1 评论 -
AcWing 95. 费解的开关【递推】
题目链接:AcWing 95. 费解的开关你玩过“拉灯”游戏吗?25盏灯排成一个5x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字“1”表示一盏开着的灯,用数字“0”表示关着的灯。下面这种状态1011101101101111000011011在改变了最左上角的灯的状态后将变成:0111111101101111000011011再改变它正中间原创 2020-10-11 16:14:44 · 211 阅读 · 0 评论 -
AcWing 466. 回文日期【枚举】
题目链接:AcWing 466. 回文日期在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。牛牛习惯用 8 位数字表示一个日期,其中,前 4 位代表年份,接下来 2 位代表月份,最后 2 位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。现在,牛牛想知道:在他指定的两个日期之间(包含这两个日期本身),有多少个真实存在的日期是回文的。一个 8 位数字是回文的,当且仅当对于所有的 i(原创 2020-10-09 23:10:10 · 213 阅读 · 0 评论 -
蓝桥杯 日期问题【枚举】
题目链接:AcWing 1229. 日期问题小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。给出一个文献上的日期,你能帮助小明判断有哪原创 2020-10-09 19:47:00 · 215 阅读 · 0 评论 -
蓝桥杯 带分数【DFS】【枚举】
题目链接:AcWing 1209. 带分数100 可以表示为带分数的形式:100=3+69258/714还可以表示为:100=82+3546/197注意特征:带分数中,数字 1∼9分别出现且只出现一次(不包含 0)。类似这样的带分数,100有 11种表示法。输入格式一个正整数。输出格式输出输入数字用数码 1∼9不重复不遗漏地组成带分数表示的全部种数。数据范围1≤N<106输入样例1:100输出样例1:11输入样例2:105输出样例2:6程序说明:先求出1~9原创 2020-10-08 20:10:55 · 192 阅读 · 0 评论 -
蓝桥杯 错误票据
题目链接:AcWing 1204. 错误票据 某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。输入格式第一行包含整数 N,表示后面共有 N行数据。接下来 N行,每行包含空格分开的若干个(不大于100个)正整数(不大于100000),每个整数原创 2020-10-08 19:23:18 · 305 阅读 · 0 评论 -
洛谷P1908 逆序对【归并排序】
题目链接:P1908 逆序对程序说明:归并排序的原理是先分治后合并,分治之后的结果是每个子序列有序,然后依次将两个子序列合并。因为每个子序列都有序,所以不可能出现逆序对。归并排序默认从小到大排,那么当每两个子序列进行合并操作时,如果位于前面的子序列中的某一个数大于后面子序列中的某数时,则出现了逆序对。设i是指向前一个子序列的指针,j是指向后一个子序列的指针,则当出现逆序对时,一定有a[i]...原创 2020-02-02 09:12:41 · 349 阅读 · 0 评论 -
洛谷P1309 瑞士轮【归并排序】
题目链接:P1309 瑞士轮程序说明:卡了一个晚上,思路比较简单但是细节很多,有很多大坑!每轮比赛结束后都需要对选手的成绩进行排序,这道题不能用STL的sort()或者手写快排进行排序,否则会超时(除非开o2优化)。看了题解之后才知道要用归并排序,于是手写归并结果还是超时。其实是没有掌握到归并的精髓。这道题并不需要把归并排序的完整过程写出来(比如递归什么的…),否则和快排就一样了仍然会超...原创 2020-01-30 08:54:08 · 1816 阅读 · 2 评论 -
蓝桥杯 连号区间【枚举】
题目链接:1210. 连号区间小明这些天一直在思考这样一个奇怪而有趣的问题:在 1∼N的某个排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间 [L,R]里的所有元素(即此排列的第 L 个到第 R 个元素)递增排序后能得到一个长度为 R−L+1的“连续”数列,则称这个区间连号区间。当 N很小的时候,小明可以很快地算出答案,但是当 N变大的时候,问题就不是那么简单了,现在小明需要你的帮助。输入格式第一行是一个正整数 N,表示排列的规模。第二行是 N个不同的数字 Pi,表示这 N个数字的某原创 2020-10-07 22:44:27 · 161 阅读 · 0 评论 -
蓝桥杯 特别数的和【枚举】
题目链接:1245. 特别数的和小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。请问,在 1到 n中,所有这样的数的和是多少?输入格式共一行,包含一个整数 n。输出格式共一行,包含一个整数,表示满足条件的数的和。数据范围1≤n≤10000输入样例:40输出样例:574#include <iostream>using namespace st原创 2020-10-07 22:19:23 · 177 阅读 · 0 评论