2024年3月7日发(作者:)
day1 T1∶转圈游戏((circle.cpp/c/pas)【问题描述】n个小伙伴(编号从0到n-1)围坐一圈玩游戏。按照顺时针方向给n个位置编号,从0到n-1。最初,第0号小伙伴在第0号位置,第1号小伙伴在第1号位置,……,依此类推。游戏规则如下∶每一轮第0号位置上的小伙伴顺时针走到第 m 号位置,第1号位置小伙伴走到第m+1号位置,……,依此类推,第n一m号位置上的小伙伴走到第0号位置,第m-1 号位置。【输入】n-m+1号位置上的小伙伴走到第1号位置,……,第 n-1号位置上的小伙伴顺时针走到第现在,一共进行了10*轮,请问x号小伙伴最后走到了第几号位置。输入文件名为circle.in。输入共1行,包含4个整数n、m、k、x,每两个整数之间用一个空格隔开。【输出】输出文件名为 cirele.out。输出共1行,包含1个整数,表示10轮后x号小伙伴所在的位置编号。10 3 4 5circle.in【输入输出样例】circle.out5【数据说明】对于30??数据,0<k<7;对于80??数据,0<k<107;对于100??数据,1<n<1,000,000,0<m<n,1≤x≤n,0<k<10°。
day1 T2∶火柴排队(match.cpp/c/pas))【问题描述】涵涵有两盒火柴,每盒装有n根火柴,每根火柴都有一个高度。现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为∶Z,(a;-b)2,其中a表示第一列火柴中第i个火柴的高度,b,表示第二列火柴中第i个火柴的高度。每列火柴中相邻两根火柴的位置都可以交换,请你通过交换使得两列火柴之间的距离最小。请问得到这个最小的距离,最少需要交换多少次?如果这个数字太大,请输出这个最小交换次数对 9999,997取模的结果。【输入】输入文件为match.in。共三行,第一行包含一个整数n,表示每盒中火柴的数目。第二行有n个整数,每两个整数之间用一个空格隔开,表示第一列火柴的高度。第三行有n个整数,每两个整数之间用一个空格隔开,表示第二列火柴的高度。【输出】输出文件为 match.out。输出共一行,包含一个整数,表示最少交换次数对99,99997取模的结果。4match.in【输入输出样例1】match.out32 142 314【输入输出样例说明】工最小距离是0,最少需要交换1次,比如∶交换第1列的前2根火柴或者交换第2列的前2根火柴。match.in41 3 4 217 24【输入输出样例2】match.out乙【输入输出样例说明】】最小距离是 10,最少需要交换2次,比如∶交换第1列的中间2根火柴的位置,再交换第2列中后2根火柴的位置。【数据范围】对于10??数据,1≤n ≤10;对于30??数据,1≤n ≤100;对于60??数据,1≤n ≤1,000∶对于100??数据,1≤n≤100,000,0≤火柴高度≤231-1。
day1 T3∶货车运输(truck.cpp/c/pas)【问题描述】A 国有n座城市,编号从1到n,城市之间有m条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有q辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。【输入】输入文件名为truck.in。路。输入文件第一行有两个用一个空格隔开的整数n,m,表示A国有n 座城市和 m条道接下来m 行每行3个整数x、y、z,每两个整数之间用一个空格隔开,表示从x号城市到y号城市有一条限重为z的道路。注意∶x不等于y,两座城市之间可能有多条道路。接下来一行有一个整数g,表示有q辆货车需要运货。接下来q行,每行两个整数x、y,之间用一个空格隔开,表示一辆货车需要从x城市运输货物到y城市,注意∶x不等于y。【输出】输出文件名为 truck.out。输出共有 q 行,每行一个整数,表示对于每一辆货车,它的最大载重是多少。如果货车不能到达目的地,输出-1。43124truck.in【输入输出样例】3112 33e-1了truck.out13【数据说明】对于30??数据,0<n<1,000,0<m<10,000,0<q<1,000;对于60??数据,0<n<1,000,0<m<50,000,0<q<1,000;14e13对于100??数据,0<n<10,000,0<m<50,000,0<q<30,000,0≤z≤100,000。
day2 T1∶积木大赛(block.cpp/c/pas)【题目描述】春春幼儿园举办了一年一度的"积木大赛"。今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是h。在搭建开始之前,没有任何积木(可以看成n块高度为 0 的积木)。接下来每次操作,小朋友们可以选择一段连续区间【L,R】,然后将第L块到第R块之间(含第L块和第R块)所有积木的高度分别增加1。小M是个聪明的小朋友,她很快想出了建造大厦的最佳策略,使得建造所需的操作次数最少。但她不是一个勤于动手的孩子,所以想请你帮忙实现这个策略,并求出最少的操作次数。【输入】输入文件为block in输入包含两行,第一行包含一个整数n,表示大厦的宽度。第二行包含n个整数,第i个整数为hz。【输出】输出文件为block.out仅一行,即建造所需的最少操作数。block.in523412【输入输出样例】block.out合【样例解释】其中一种可行的最佳方案,依次选择[1,5] [1,3] [2,3] [3,3] [5,5]【数据范围】对于30??数据,有1≤n≤10;对于70??数据,有1≤n ≤1000;对于100??数据,有1≤n≤100000,0≤h≤10000。
day2 T2∶ 花匠【问题描述】花匠栋栋种了一排花,每株花都有自己的高度。花儿越长越大,也越来越挤。栋栋决定把这排中的一部分花移走,将剩下的留在原地,使得剩下的花能有空间长大,同时,栋栋希望剩下的花排列得比较别致。具体而言,栋栋的花的高度可以看成一列整数h,hz…,hn。设当一部分花被移走后,剩下的花的高度依次为gg…,gm,则栋栋希望下面两个条件中至少有一个满足∶条件 A∶对于所有的i,9ai >92i-1且g2i>92t+1;请问,栋栋最多能将多少株花留在原地。条件B∶对于所有的i,g2i<92zl-1,且g2i<9241。注意上面两个条件在m =1时同时满足,当m>1时最多有一个能满足。【输入】输入文件为 flower.in。输入的第一行包含一个整数n;表示开始时花的株数。第二行包含n个整数,依次为h,hz…,hn,表示每株花的高度。【输出】输出文件为 flower.out。输出一行,包含一个整数m,表示最多能留在原地的花的株数。flower.in【输入输出样例】53 2 12足条件B。【数据范围】对于20??数据,n≤10;与flower.out了【输入输出样例说明】有多种方法可以正好保留3株花,例如,留下第1、4、5株,高度分别为5、1、2,满对于30??数据,n ≤25;对于70??数据,n≤1000,0≤h;≤1000;对于 100??数据,1≤n≤100,000,0≤h;≤1,000,000,所有的h;随机生成,所有随机数服从某区间内的均匀分布。
day2 T3∶华容道【问题描述】小B 最近迷上了华容道,可是他总是要花很长的时间才能完成一次。于是,,他想到用编程来完成华容道∶给定一种局面,华容道是否根本就无法完成,如果能完成,最少需要多少时间。小B玩的华容道与经典的华容道游戏略有不同,游戏规则是这样的∶1.在一个n*m棋盘上有n*m个格子,其中有且只有一个格子是空白的,其余n*m-1个格子上每个格子上有一个棋子,每个棋子的大小都是1*1的;2. 有些棋子是固定的,有些棋子则是可以移动的;3. 任何与空白的格子相邻(有公共的边)的格子上的棋子都可以移动到空白格子上。游戏的目的是把某个指定位置可以活动的棋子移动到目标位置。给定一个棋盘,游戏可以玩q次,当然,每次棋盘上固定的格子是不会变的,但是棋盘上空白的格子的初始位置、指定的可移动的棋子的初始位置和目标位置却可能不同。第i次玩的时候,空白的格子在第 EX;行第 EY;列,指定的可移动棋子的初始位置为第 SX,行第SY列,目标位置为第TX行第TY,列。假设小 B 每秒钟能进行一次移动棋子的操作,而其他操作的时间都可以忽略不计。请你告诉小B每一次游戏所需要的最少时间,或者告诉他不可能完成游戏。【输入】输入文件为 puzzle.in。第一行有3个整数,每两个整数之间用一个空格隔开,依次表示n、m和 q;接下来的n行描述一个n*m的棋盘,每行有m个整数,每两个整数之间用一个空格隔开,每个整数描述棋盘上一个格子的状态,0表示该格子上的棋子是固定的,1表示该格子上的棋子可以移动或者该格子是空白的。接下来的q行,每行包含6个整数依次是EX、EY、SX、SY、TX、TY,每两个整数之间用一个空格隔开,表示每次游戏空白格子的位置,指定棋子的初始位置和目标位置。【输出】输出文件名为 puzzle.out。输出有q行,每行包含1个整数,表示每次游戏所需要的最少时间,如果某次游戏无法完成目标则输出-1。puzzle.in3 4 2o1 1 1o 11 oo 1oo32122 2【输入输出样例】puzzle.out-1乙12 2 232
【输入输出样例说明】棋盘上划叉的格子是固定的,红色格子是目标位置,圆圈表示棋子,其中绿色圆圈表示目标棋子。1.第一次游戏,空白格子的初始位置是(3.2)(图中空白所示),游戏的目标是将初始位置在(1.2)上的棋子(图中绿色圆圈所代表的棋子)移动到目标位置(2.2)(图中红色的格子)上。移动过程如下∶O2.第二次游戏,空白格子的初始位置是(1.2)(图中空白所示),游戏的目标是将初始位置在(2,2)上的棋子(图中绿色圆圈所示)移动到目标位置(3,2)上。初始状态O法完成。。。。。。0初始状态OO勺第一步之后第二步之后OOOO。。OOO要将指定块移入目标位置,必须先将空白块移入目标位置,空白块要移动到目标位置,必然是从位置(2,2)上与当前图中目标位置上的棋子交换位置,之后能与空白块交换位置的只有当前图中目标位置上的那个棋子,因此目标棋子永远无法走到它的目标位置,游戏无【数据范围】对于30??数据,1≤n,m ≤10,q=1;对于60??数据,1≤n,m ≤30,q≤10;对于100??数据,1≤n,m ≤30,q≤500。


发布评论