模拟
文章平均质量分 68
模拟类题目
柃歌
夏天的海边有冰淇淋口味的海风
展开
-
AcWing 1959. 奶牛芭蕾(模拟,坐标变换)
注意,这是贝茜唯一能够被绊倒的情况,在经过所有练习以后,贝茜十分灵活,很容易摆出各种高难度姿势(例如,后脚比前脚更向前)。她的最后一场演出是下周,约翰想帮她搭建一个足够大的长方形舞台,这样她就可以在不从舞台边沿跌落的情况下表演整个舞蹈。贝茜的顺时针转动是以某一只脚作为枢轴而进行的,转动时枢轴脚应保持竖立,并围绕该脚进行顺时针转动。如果贝茜将一只脚移动到与另一只脚相同的单元格内,她就会被绊倒,从而无法完成舞蹈。首先我们假设牛的左后脚。输出在整个舞蹈过程中,能够容纳贝茜的脚所必须的长方形舞台的最小面积。原创 2022-10-17 11:38:17 · 323 阅读 · 0 评论 -
AcWing 1986. 镜子(模拟,环图)
【题目描述】农夫约翰的奶牛在农场周围造成了太多麻烦,因此约翰希望对它们保持更密切的关注。通过在农场的各个位置安装NNN个反光围栏,他希望能够从(0,0)(0,0)(0,0)位置的房子看到(a,b)(a,b)(a,b)位置的牛棚。在约翰农场的二维平面图中,围栏iii表示为以整数位置坐标(xi,yi)(x_i,y_i)(xi,yi)为中心的倾斜454545度(如或)的短线段。例如,以(3,5)(3,5)(3,5)为中心,形如的围栏可以描述为从(2.9,4.9)(2.9,4.9)(2.9,4.9)到(原创 2022-06-12 09:14:00 · 162 阅读 · 0 评论 -
AcWing 1995. 见面与问候(模拟)
【题目描述】众所周知,奶牛是非常有社交礼貌的动物:每当两头奶牛分开后相遇,它们都会用友好的“哞哞”声互相问候。奶牛贝茜和她的朋友艾希正在农夫约翰的农场中的一条很长的道路上散步。我们可以将此道路视为一个一维数轴。贝茜和艾希都从原点出发,以相同的速度(111单位距离/单位时间)行走一段时间。请根据每头奶牛的运动情况描述,确定它们相互打招呼的次数。贝茜和艾希可以在不同的时间点停止移动,并且她们的移动时间都不会超过100000010000001000000单位。【输入格式】第一行包含两个整数BBB和E原创 2022-06-11 20:08:26 · 250 阅读 · 0 评论 -
AcWing 3489. 星期几(模拟)
【题目描述】已知111年111月111日是星期一。现在给定一个日期,请你判断是星期几。注意闰年的222月有292929天。满足下面条件之一的是闰年:年份是444的整数倍,而且不是100100100的整数倍;年份是400400400的整数倍。【输入格式】输入包含多组测试数据。每组数据占一行,包含一个整数ddd表示日,一个字符串mmm表示月,一个整数yyy表示年。月份1∼121\sim 121∼12,依次如下所示:January, February, March, April, May原创 2022-04-15 14:22:47 · 541 阅读 · 0 评论 -
AcWing 1902. 马拉松(枚举)
【题目描述】农夫约翰对他的奶牛们的健康状况并不满意,于是给他的奶牛们报名了各种健身活动。他最喜欢的奶牛贝茜被报名参加了一个跑步班。在那里,她有希望在一场马拉松比赛中穿越约翰农场所在的城市的市中心。马拉松线路由NNN个检查点(编号1∼N1\sim N1∼N)指定。检查点111是起点,检查点NNN是终点,贝茜要按顺序经过每个检查点。但是贝茜十分懒惰,所以她决定跳过其中一个检查点,以缩短她的整个行程。但是,她不能跳过检查点111和检查点NNN,因为这太容易被人发现了。在她可以跳过一个检查点的情况下原创 2022-04-14 11:37:58 · 249 阅读 · 0 评论 -
【蓝桥杯算法练习题】双指针、BFS与图论
一、AcWing 1238. 日志统计【题目描述】小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有NNN行。其中每一行的格式是:ts id表示在tststs时刻编号ididid的帖子收到一个”赞”。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为DDD的时间段内收到不少于KKK个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻TTT满足该帖在[T,T+D)[T,T+D)[T,T+D)这段时间内(注意是左闭右开区间)收到不少于KKK个赞,该原创 2022-03-26 11:05:43 · 1112 阅读 · 0 评论 -
【CF1654C】Alice and the Cake
【题目描述】有一块蛋糕,现在进行n−1n-1n−1次对半切,一共切出nnn块,每次能够将一个重量为www的蛋糕切成一块重量为⌊w2⌋\lfloor \frac{w}{2}\rfloor⌊2w⌋的蛋糕和一块重量为⌈w2⌉\lceil \frac{w}{2}\rceil⌈2w⌉的蛋糕。现在给你一个切好后的nnn块蛋糕重量的随机的一个排列,确定是否存在一个蛋糕能够切出这个重量排列的蛋糕。【输入格式】第一行一个整数t(1≤t≤104)t(1\le t\le 10^4)t(1≤t≤104),表示测试样例的数原创 2022-03-24 20:50:45 · 292 阅读 · 0 评论 -
【蓝桥杯算法练习题】枚举、模拟与排序
一、AcWing 1210. 连号区间数【题目描述】小明这些天一直在思考这样一个奇怪而有趣的问题:在1∼N1\sim N1∼N的某个排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间[L,R][L,R][L,R]里的所有元素(即此排列的第LLL个到第RRR个元素)递增排序后能得到一个长度为R−L+1R-L+1R−L+1的“连续”数列,则称这个区间连号区间。当NNN很小的时候,小明可以很快地算出答案,但是当NNN变大的时候,问题就不是那么简单了,现在小明需要你的帮助。【输入格式】第原创 2022-03-18 10:20:36 · 445 阅读 · 0 评论 -
AcWing 131. 直方图中最大的矩形(单调栈)
【题目描述】直方图是由在公共基线处对齐的一系列矩形组成的多边形。矩形具有相等的宽度,但可以具有不同的高度。例如,图例左侧显示了由高度为2,1,4,5,1,3,32,1,4,5,1,3,32,1,4,5,1,3,3的矩形组成的直方图,矩形的宽度都为111:通常,直方图用于表示离散分布,例如,文本中字符的频率。现在,请你计算在公共基线处对齐的直方图中最大矩形的面积。图例右图显示了所描绘直方图的最大对齐矩形。【输入格式】输入包含几个测试用例。每个测试用例占据一行,用以描述一个直方图,并以整数n原创 2022-03-15 13:54:52 · 1057 阅读 · 0 评论 -
LeetCode 456. 132模式(单调栈)
【题目描述】给你一个整数数组nums,数组中共有nnn个整数。132132132模式的子序列由三个整数nums[i]、nums[j]和nums[k]组成,并同时满足:i<j<ki<j<ki<j<k和nums[i]<nums[k]<nums[j]nums[i]<nums[k]<nums[j]nums[i]<nums[k]<nums[j]。如果nums中存在132132132模式的子序列,返回true;否则,返回false。【示例1】原创 2022-03-15 10:38:54 · 819 阅读 · 0 评论 -
【CF1627B】Not Sitting(模拟,贪心)
【题目描述】Rahul和Tina在玩一个游戏。游戏在一个n×mn\times mn×m的网格图上进行,记第rrr行第ccc列上的格子为(r,c)(r,c)(r,c)。定义(a,b)(a,b)(a,b)与(c,d)(c,d)(c,d)之间的距离为∣a−c∣+∣b−d∣\left|a-c\right|+\left|b-d\right|∣a−c∣+∣b−d∣。游戏开始后,Tina会选择恰好kkk个格子,并将其涂成粉红色。涂完以后,Rahul会选择任意一个没有被涂成粉红色的格子并在那个格子上坐下。此后,Tina原创 2022-03-14 23:24:20 · 4458 阅读 · 0 评论 -
【模板题】模拟散列表
【题目描述】维护一个集合,支持如下几种操作:I x,插入一个数xxx;Q x,询问数xxx是否在集合中出现过;现在要进行NNN次操作,对于每个询问操作输出对应的结果。【输入格式】第一行包含整数NNN,表示操作数量。接下来NNN行,每行包含一个操作指令,操作指令为I x,Q x中的一种。【输出格式】对于每个询问指令Q x,输出一个询问结果,如果xxx在集合中出现过,则输出Yes,否则输出No。每个结果占一行。【数据范围】1≤N≤1051≤N≤10^51≤N≤105−109≤x≤1原创 2022-03-14 08:08:45 · 226 阅读 · 0 评论 -
【模板题】堆排序、模拟堆
一、AcWing 838. 堆排序【题目描述】输入一个长度为nnn的整数数列,从小到大输出前mmm小的数。【输入格式】第一行包含整数nnn和mmm。第二行包含nnn个整数,表示整数数列。【输出格式】共一行,包含mmm个整数,表示整数数列中前mmm小的数。【数据范围】1≤m≤n≤1051≤m≤n≤10^51≤m≤n≤1051≤数列中元素≤1091≤数列中元素≤10^91≤数列中元素≤109【输入样例】5 34 5 1 3 2【输出样例】1 2 3【代码】#include原创 2022-03-13 21:56:46 · 855 阅读 · 0 评论 -
【模板题】单调栈
一、AcWing 830. 单调栈【题目描述】给定一个长度为NNN的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出−1-1−1。【输入格式】第一行包含整数NNN,表示数列长度。第二行包含NNN个整数,表示整数数列。【输出格式】共一行,包含NNN个整数,其中第iii个数表示第iii个数的左边第一个比它小的数,如果不存在则输出−1-1−1。【数据范围】1≤N≤1051≤N≤10^51≤N≤1051≤数列中元素≤1091≤数列中元素≤10^91≤数列中元素≤109【输入样例】5原创 2022-03-13 21:07:10 · 552 阅读 · 0 评论 -
【模板题】模拟队列
一、AcWing 829. 模拟队列【题目描述】实现一个队列,队列初始为空,支持四种操作:push x:向队尾插入一个数xxx;pop:从队头弹出一个数;empty:判断队列是否为空;query:查询队头元素。现在要对队列进行MMM个操作,其中的每个操作333和操作444都要输出相应的结果。【输入格式】第一行包含整数MMM,表示操作次数。接下来MMM行,每行包含一个操作命令,操作命令为push x,pop,empty,query中的一种。【输出格式】对于每个empty和query原创 2022-03-13 20:57:22 · 389 阅读 · 0 评论 -
【模板题】双链表
一、AcWing 827. 双链表【题目描述】实现一个双链表,双链表初始为空,支持 5 种操作:在最左侧插入一个数;在最右侧插入一个数;将第kkk个插入的数删除;在第kkk个插入的数左侧插入一个数;在第kkk个插入的数右侧插入一个数现在要对该链表进行MMM次操作,进行完所有操作后,从左到右输出整个链表。注意:题目中第kkk个插入的数并不是指当前链表的第kkk个数。例如操作过程中一共插入了nnn个数,则按照插入的时间顺序,这nnn个数依次为:第111个插入的数,第222个插入的数,…,,原创 2022-03-13 18:31:02 · 1637 阅读 · 3 评论 -
【模板题】单链表
一、AcWing 826. 单链表【题目描述】实现一个单链表,链表初始为空,支持三种操作:向链表头插入一个数;删除第kkk个插入的数后面的数;在第kkk个插入的数后插入一个数。现在要对该链表进行MMM次操作,进行完所有操作后,从头到尾输出整个链表。注意:题目中第kkk个插入的数并不是指当前链表的第kkk个数。例如操作过程中一共插入了nnn个数,则按照插入的时间顺序,这nnn个数依次为:第111个插入的数,第222个插入的数,…,,\dots ,,…,第nnn个插入的数。【输入格式】第一原创 2022-03-13 18:26:44 · 123 阅读 · 0 评论 -
【模板题】离散化
一、AcWing 802. 区间和【题目描述】假定有一个无限长的数轴,数轴上每个坐标上的数都是000。现在,我们首先进行nnn次操作,每次操作将某一位置xxx上的数加ccc。接下来,进行mmm次询问,每个询问包含两个整数lll和rrr,你需要求出在区间[l,r][l,r][l,r]之间的所有数的和。【输入格式】第一行包含两个整数nnn和mmm。接下来nnn行,每行包含两个整数xxx和ccc。再接下来mmm行,每行包含两个整数lll和rrr。【输出格式】共mmm行,每行输出一个询问中所求的原创 2022-03-13 15:40:11 · 251 阅读 · 0 评论 -
洛谷P1311 选择客栈(递推,思维题)
【题目描述】丽江河边有nnn家很有特色的客栈,客栈按照其位置顺序从1∼n1\sim n1∼n编号。每家客栈都按照某一种色调进行装饰(总共kkk种,用整数0∼k−10\sim k-10∼k−1表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过ppp。他们想知道总共有多少原创 2022-03-11 23:06:00 · 456 阅读 · 0 评论 -
洛谷P2085 最小函数值(优先队列)
【题目描述】有nnn个函数,分别为F1,F2,…,FnF_1,F_2,\dots,F_nF1,F2,…,Fn。定义Fi(x)=Aix2+Bix+Ci(x∈N∗)F_i(x)=A_ix^2+B_ix+C_i(x\in \mathbb N*)Fi(x)=Aix2+Bix+Ci(x∈N∗)。给定这些Ai,BiA_i,B_iAi,Bi和CiC_iCi,请求出所有函数的所有函数值中最小的mmm个(如有重复的要输出多个)。【输入格式】第一行输入两个正整数nnn和mmm。以下nnn行每行三个正原创 2022-03-10 14:17:05 · 349 阅读 · 0 评论 -
洛谷P1039 侦探推理(字符串,模拟)
【题目描述】明明同学最近迷上了侦探漫画《柯南》并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏。游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明明的任务就是找出这个罪犯。接着,明明逐个询问每一个同学,被询问者可能会说: 证词内容 证词含义 I am guilty. 我是罪犯 I am not guilty. 我不是罪犯原创 2022-03-09 17:55:22 · 3326 阅读 · 0 评论 -
洛谷P2058 海港(模拟,优先队列)
【题目描述】小K是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。小K对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况;对于第i艘到达的船,他记录了这艘船到达的时间tit_iti(单位:秒),船上的乘客数kik_iki,以及每名乘客的国籍xi,1,xi,2,…,xi,kx_{i,1}, x_{i,2},\dots ,x_{i,k}xi,1,xi,2,…,xi,k。小K统计了nnn艘船的信息,希望你帮忙计算出以每一艘船到达时间为止的原创 2022-03-09 17:21:04 · 579 阅读 · 1 评论 -
洛谷P1440 求m区间内的最小值(单调队列)
【题目描述】一个含有nnn项的数列,求出每一项aia_iai前的mmm个数到它这个区间内(即[i−m,i−1][i-m,i-1][i−m,i−1])的最小值。若前面的数不足mmm项则从第111个数开始,若前面没有数则输出000。【输入格式】第一行两个整数,分别表示n,mn,mn,m。第二行,nnn个正整数,为所给定的数列aia_iai。【输出格式】nnn行,每行一个整数,第iii个数为序列中aia_iai之前mmm个数的最小值。【数据范围】1≤m≤n≤2×106,1≤ai≤3×1071原创 2022-03-09 11:30:51 · 510 阅读 · 0 评论 -
洛谷P2347 砝码称重(模拟,DP)
【题目描述】设有1g,2g,3g,5g,10g,20g1g,2g,3g,5g,10g,20g1g,2g,3g,5g,10g,20g的砝码各若干枚(其总重≤1000\le 1000≤1000)【输入格式】输入方式:a1,a2,a3,a4,a5,a6a_1,a_2,a_3,a_4,a_5,a_6a1,a2,a3,a4,a5,a6(表示1g1g1g砝码有a1a_1a1个,2g2g2g砝码有a2a_2a2个,…\dots…,20g20g20g砝码有a6a_6a6个)【输出格式】输出方式:原创 2022-03-07 22:36:37 · 735 阅读 · 0 评论 -
【CF1638C】Inversion Graph(连通块,思维题)
【题目描述】现在有一个序列p1,p2,…,pnp_1,p_2,\dots ,p_np1,p2,…,pn,你需要构建一个无向图,规则是:当i<ji<ji<j且pi>pjp_i>p_jpi>pj时在iii和jjj之间连一条无向边。问最后图中会有几个连通块。【输入格式】第一行一个整数t(1≤t≤105)t(1\leq t\leq 10^5)t(1≤t≤105),表示测试组数。每组第一行一个整数n(1≤n≤105)n(1\leq n\leq 10^5)n(1≤n原创 2022-03-06 20:35:50 · 511 阅读 · 2 评论 -
洛谷P1598 垂直柱状图(字符串,模拟)
【题目描述】写一个程序从输入文件中读取四行大写字母(全都是大写的,每行不超过100100100个字符),然后用柱状图输出每个字符在输入文件中出现的次数。严格地按照输出样例来安排你的输出格式。【输入格式】四行字符,由大写字母组成,每行不超过100100100个字符【输出格式】由若干行组成,前几行由空格和星号组成,最后一行则是由空格和字母组成的。在任何一行末尾不要打印不需要的多余空格。不要打印任何空行。【输入样例】THE QUICK BROWN FOX JUMPED OVER THE LAZY D原创 2022-03-05 16:56:39 · 210 阅读 · 0 评论 -
洛谷P1553 数字反转升级版(字符串,模拟)
【题目描述】给定一个数,请将该数各个位上数字反转得到一个新数。这个数可以是小数,分数,百分数,整数。整数反转是将所有数位对调。小数反转是把整数部分的数反转,再将小数部分的数反转,不交换整数部分与小数部分。分数反转是把分母的数反转,再把分子的数反转,不交换分子与分母。百分数的分子一定是整数,百分数只改变数字部分。【输入格式】一个数sss【输出格式】一个数,即sss的反转数【输入样例1】5087462【输出样例1】2647805【输入样例2】600.084【输出样例2原创 2022-03-04 13:08:27 · 265 阅读 · 0 评论 -
LeetCode 92. 反转链表 II
【题目描述】给你单链表的头指针head和两个整数left和right,其中left <= right。请你反转从位置left到位置right的链表节点,返回反转后的链表。【示例1】输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5]【示例2】输入:head = [5], left = 1, right = 1输出:[5]【提示】链表中节点数目为nnn1≤n≤5001\le n\le 5001≤n≤500−500≤N原创 2022-03-03 16:10:29 · 472 阅读 · 0 评论 -
AcWing 1987. 粉刷栅栏(差分,离散化,扫描线)
【题目描述】农夫约翰发明了一种绝妙的方法来粉刷牛棚旁边的长栅栏(把栅栏想象成一维的数轴)。他只需要在他最喜欢的奶牛贝茜身上挂一个刷子,然后在一旁悠闲的喝凉水就行了。贝茜沿着栅栏来回走动时,会将她走过的栅栏部分涂上油漆。贝茜从栅栏上的位置000处开始,共进行NNN次移动。移动可能形如10 L,表示向左移动101010单位距离,也可能形如15 R,表示向右移动151515单位距离。给定贝茜的NNN次移动列表,约翰想知道至少被涂抹了222层油漆的区域的总长度。整个行进过程中,贝茜距离出发地的距离不会原创 2022-03-03 15:16:42 · 220 阅读 · 0 评论 -
AcWing 2058. 笨拙的手指(枚举,进位制,哈希)
【题目描述】奶牛贝茜正在学习如何在不同进制之间转换数字。但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔。每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中的某一位数字写错。例如,如果她将数字141414转换为二进制数,那么正确的结果应为111011101110,但她可能会写下011001100110或111111111111。贝茜不会额外添加或删除数字,但是可能会由于写错数字的原因,写下包含前导000的数字。给定贝茜将数字NNN转换为二进制数字以及三进制数字的结果,请确定NNN的正确原创 2022-03-03 14:46:46 · 218 阅读 · 0 评论 -
【模板题】位运算
一、AcWing 801. 二进制中1的个数【题目描述】给定一个长度为nnn的数列,请你求出数列中每个数的二进制表示中111的个数。【输入格式】第一行包含整数nnn。第二行包含nnn个整数,表示整个数列。【输出格式】共一行,包含nnn个整数,其中的第iii个数表示数列中的第iii个数的二进制表示中111的个数。【数据范围】1≤n≤1000001≤n≤1000001≤n≤1000000≤数列中元素的值≤1090≤数列中元素的值≤10^90≤数列中元素的值≤109【输入样例】51 2原创 2022-02-25 21:33:26 · 407 阅读 · 0 评论 -
【模板题】双指针算法
一、AcWing 799. 最长连续不重复子序列【题目描述】给定一个长度为nnn的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。【输入格式】第一行包含整数nnn。第二行包含nnn个整数(均在0∼1050\sim 10^50∼105范围内),表示整数序列。【输出格式】共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。【数据范围】1≤n≤1051≤n≤10^51≤n≤105【输入样例】51 2 2 3 5【输出样例】3【代码】#include &原创 2022-02-25 16:11:41 · 761 阅读 · 0 评论 -
【算法题归纳合集】基础算法-位运算、递推与递归
一、AcWing 90. 64位整数乘法【题目描述】求aaa乘bbb对ppp取模的值。【输入格式】第一行输入整数aaa,第二行输入整数bbb,第三行输入整数ppp。【输出格式】输出一个整数,表示a∗b mod pa*b\ mod\ pa∗b mod p的值。【数据范围】1≤a,b,p≤10181≤a,b,p≤10^{18}1≤a,b,p≤1018【输入样例】345【输出样例】2【分析】直接乘会爆精度,将aaa加bbb次会爆时间,因原创 2022-02-22 16:37:45 · 534 阅读 · 0 评论 -
AcWing 1443. 拍照(枚举)
【题目描述】农夫约翰在给他编号为1∼N1\sim N1∼N的NNN头奶牛排队拍照。约翰一开始计划从左向右数第iii个位置排编号为aia_iai的奶牛,他在一张纸上写下了排列a1,a2,…,aNa_1,a_2,\dots ,a_Na1,a2,…,aN。不幸的是,这张纸刚刚被小偷偷走了!幸好约翰仍然有机会恢复他之前写下的排列。在这张纸被偷走之前,奶牛贝茜记录了序列b1,b2,…,bN−1b_1,b_2,\dots ,b_{N-1}b1,b2,…,bN−1,对于每一个1≤i<N1≤i原创 2022-02-19 19:11:51 · 187 阅读 · 0 评论 -
AcWing 1684. 大型植被恢复(构造,模拟)
【题目描述】长时间的干旱使得Farmer John的NNN块草地上牧草匮乏。随着雨季即将到来,现在应当是重新种植的时候了。在Farmer John的储物棚里有四个桶,每个桶里装着一种不同的草种。他想要在每块草地上播种其中一种草。作为一名奶农,Farmer John想要确保他的每头奶牛都能得到丰富的食谱。他的MMM头奶牛每一头都有两块喜爱的草地,他想要确保这两块草地种植不同种类的草,从而每头奶牛都可以选择两种草。已知每块草地最多被333头奶牛喜爱。请帮助Farmer John选择每块草地所种的原创 2022-02-19 00:48:26 · 314 阅读 · 0 评论 -
AcWing 1726. 挤奶顺序(分类讨论)
【题目描述】Farmer John有NNN头奶牛,编号为1∼N1\sim N1∼N。他每天都要给他的奶牛们挤奶。奶牛的社会结构非常复杂,其结构有两个关键特性。首先,有MMM头奶牛的地位等级分明,按照地位越高越早挤奶的规则,这些奶牛的相对挤奶顺序是固定的。此外,有KKK头奶牛的具体挤奶顺序也是固定的,比如,奶牛444必须在所有奶牛中的第二位挤奶。幸运的是,Farmer John总是能够以一种满足所有这些情况的顺序给他的奶牛们挤奶。不幸的是,奶牛111最近生病了,所以Farmer John想要尽早原创 2022-02-10 11:46:00 · 598 阅读 · 0 评论 -
AcWing 1738. 蹄球(基环树)
【题目描述】为了准备即将到来的蹄球锦标赛,Farmer John正在训练他的NNN头奶牛(方便起见,编号为1∼N1\sim N1∼N)进行传球。这些奶牛在牛棚一侧沿直线排列,第iii号奶牛位于距离牛棚xix_ixi的地方。每头奶牛都在不同的位置上。在训练开始的时候,Farmer John会将若干个球传给不同的奶牛。当第iii号奶牛接到球时,无论是从Farmer John或是从另一头奶牛传来的,她会将球传给最近的奶牛(如果有多头奶牛与她距离相同,她会将球传给这些奶牛中最左边的那头奶牛)。为了使所原创 2022-02-09 20:22:29 · 709 阅读 · 0 评论 -
AcWing 1801. 蹄子剪刀布(模拟,枚举)
【题目描述】你可能听说过“石头剪刀布”的游戏。这个游戏在牛当中同样流行,它们称之为“蹄子剪刀布”。游戏的规则非常简单,两头牛相互对抗,数到三之后各出一个表示蹄子,剪刀或布的手势。蹄子赢剪刀,剪刀赢布,布赢蹄子。例如,第一头牛出“蹄子”手势,第二头牛出“布”手势,则第二头牛获胜。如果两头牛出相同的手势,则算平局。农夫约翰的两头奶牛正在进行NNN轮“蹄子剪刀布”对抗,他看的十分入迷。不幸的是,虽然他可以看到奶牛正在做出三种不同类型的手势,但他却无法分辨出哪一个代表“蹄子”,哪一个代表“布”以及哪原创 2022-02-02 19:04:44 · 2731 阅读 · 0 评论 -
AcWing 1875. 贝茜的报复(状态压缩)
【题目描述】农夫约翰和奶牛贝茜喜欢在业余时间互相出数学题。约翰给贝茜出了一道相当难的问题,导致她没能解决。现在,她希望通过给约翰出一道有挑战性的难题来报复他。贝茜给了约翰一个表达式(B+E+S+S+I+E)(G+O+E+S)(M+O+O)(B+E+S+S+I+E)(G+O+E+S)(M+O+O)(B+E+S+S+I+E)(G+O+E+S)(M+O+O),其中包含七个变量B,E,S,I,G,O,MB,E,S,I,G,O,MB,E,S,I,G,O,M(OOO是变量,不是零)。对于每个变量,她给约翰一个原创 2022-02-02 12:30:21 · 622 阅读 · 0 评论 -
AcWing 1945. 奶牛棒球(枚举,双指针)
【题目描述】农夫约翰的NNN头奶牛排成一排,每头奶牛都位于数轴中的不同位置上。它们正在练习投掷棒球。农夫约翰观看时,观察到一组三头牛(X,Y,Z)(X,Y,Z)(X,Y,Z)完成了两次成功的投掷。牛XXX把球扔给她右边的牛YYY,然后牛YYY把球扔给她右边的牛ZZZ。约翰指出,第二次投掷的距离不少于第一次投掷的距离,也不超过第一次投掷的距离的两倍。请计算共有多少组牛(X,Y,Z)(X,Y,Z)(X,Y,Z)可能是约翰所看到的。【输入格式】第一行包含整数NNN。接下来NNN行,每行描述一头牛原创 2022-02-02 12:11:04 · 360 阅读 · 0 评论