2024包河初中组
题目描述
在一个充满创新与活力的编程小镇里,一年一度的编程挑战赛即将拉开序幕。年轻的程序员小林是这个小镇里的一员,自小对编程有着浓厚的兴趣。他听说过“鸡兔同笼”的问题,但从未尝试过将其转化为编程题目。今天,他决定要以一颗全新的视角来创造这道题目。
经过一番精心策划,小林提出了一个创新的版本:在一个现代化养殖场中,通过一系列传感器和数据分析设备,计算笼子中鸡和兔子的数量。与传统问题不同的是,现在加入了时间维度,也就是说,笼子中的动物数量会随着时间变化而变化,而且这些变化会被设备实时记录下来。当天的每个整时(242424 时计时法)都会记录下鸡和兔子的脚数和只数,并且会有不同的记录形式,具体记录形式如下:
- 如果当前整时是当天上午 666 时及之前,记录的是鸡和兔子的总只数以及鸡和兔子的总脚数;
- 如果当前整时是当天上午 666 时之后,下午 555 时及之前,记录的是鸡比兔子少的只数以及鸡和兔子的总脚数;
- 如果当前整时是当天下午 555 时以后,记录的是鸡比兔子多的只数以及鸡和兔子的总脚数。
参赛者需要编写一个程序,根据每一时刻记录的数据准确计算出对应时刻笼子内鸡和兔子的数量(确保有解)。现在给你一些数据,请你判断对应整时笼子内鸡和兔分别有多少只。
输入格式
第一行一个整数 NNN,表示有 NNN 个整时。
接下来的 NNN 行,每行有三个整数 T,aT,aT,a 和 bbb,TTT 表示当天的某个整时,aaa 表示鸡和兔子的总只数或鸡比兔子少的只数或鸡比兔子多的只数,bbb 表示鸡和兔的总脚数,每行相邻的两个数之间均用一个空格隔开。
输出格式
NNN 行,每行三个整数,分别输出该整时和对应整时笼子内鸡的只数和兔的只数,每行相邻的两个数之间均用一个空格隔开。
样例
3
3 35 94
8 30 180
20 30 180
3 23 12
8 10 40
20 50 20
数据范围
1≤N≤10001\le N\le 10001≤N≤1000,0≤T<240\le T<240≤T<24,1≤a≤1091\le a\le 10^91≤a≤109,2≤b≤6×1092\le b\le 6 \times 10^92≤b≤6×109
题目描述
作为编程小镇中最资深的程序员,小李对编程充满热情,这天他突发奇想,决定将素数与编程完美结合,创造出一个前所未有的作品——素数方阵。这个方阵是将前 N2N^2N2 个素数从右下角按照图示规律依次填入 N×NN \times NN×N 的方阵就得到了素数方阵。以下是 N=4N=4N=4 和 N=5N=5N=5 的素数方阵:

参赛者需要编写一个程序,找出 N×NN \times NN×N 素数方阵中某些方格中的素数。现在给你一些数据,请你判断在该素数方阵中对应方格中的素数是多少。
输入格式
第一行两个正整数 NNN 和 MMM,NNN 表示 N×NN \times NN×N 的素数方阵,MMM 表示有 MMM 个方格。
接下来的 MMM 行,每行有两个正整数 xxx 和 yyy,分别表示该方格在素数方阵中的第 xxx 行第 yyy 列,每行相邻的两个数之间均用一个空格隔开。
输出格式
MMM 行,每行一个整数,分别对应询问的素数。
样例
4 2
3 3
1 2
41
13
数据范围
- 对于 30%30\%30% 的数据,1≤x,y≤N≤101\le x,y\le N\le 101≤x,y≤N≤10,1≤M≤101\le M\le 101≤M≤10;
- 对于 60%60\%60% 的数据,1≤x,y≤N≤201\le x,y\le N\le 201≤x,y≤N≤20,1≤M≤501\le M\le 501≤M≤50;
- 对于 100%100\%100% 的数据,1≤x,y≤N≤1001\le x,y\le N\le 1001≤x,y≤N≤100,1≤M≤1001\le M\le 1001≤M≤100。
题目描述
有一片神秘的大陆,这个大陆上存在着多个民族,相同民族的人会聚集在一起形成村庄,有些民族的人数较多,可能会形成多个村庄,这些村庄由东向西沿着直线分布在大陆上。有一天一位酋长获得了一种神奇的能力,他能够把连续的多个村庄纳入自己的统治。如果这片连续区域内所有的村庄都属于不同的民族,他们之间就会经常发生争执从而需要酋长调解,不思反抗,这样就会有利于酋长的统治。如果区域中有 222 个或者 222 个以上村庄属于同一个民族,那么他们就会联合起来反抗酋长的统治,并且其他的村庄也会纷纷响应最终推翻酋长。
现在酋长已经知道了岛上的人口分布情况(村庄总数、每个村庄的民族构成和人口数),请你帮助酋长计算下他最多能够稳固统治的村庄总数以及统治区域内的人口总数(如果存在多个区域满足条件,那么应该为酋长选择人口最多的区域)。
输入格式
共 n+1n+1n+1 行,第 111 行一个整数 nnn,表示大陆上村庄的总数。
接下来的 nnn 行,每行有两个整数 vvv 和 ppp,分别表示村庄的民族编号和村庄的人口数。
输出格式
两个整数,分别表示酋长可以统治的最大村庄总数及人口总数,相邻的两个数之间均用一个空格隔开。
样例
10
1 23
2 30
3 22
3 15
4 17
5 18
8 21
6 33
7 35
7 21
6 139
解释#1
样例中,第 444 个村庄到第 999 个村庄没有重复的民族,村庄总数为 666,没有比这个更大的区域存在了,所以最终输出 61396\ 1396 139。
数据范围
- 对于 10%10\%10% 的数据:0<n≤1000<n\le 1000<n≤100,0<v≤1050<v\le 10^50<v≤105,0<p≤1060<p\le 10^60<p≤106。
- 对于 30%30\%30% 的数据:0<n≤10000<n\le 10000<n≤1000,0<v≤1050<v\le 10^50<v≤105,0<p≤1060<p\le 10^60<p≤106。
- 对于 100%100\%100% 的数据:0<n≤1050<n\le 10^50<n≤105,0<v≤1050<v\le 10^50<v≤105,0<p≤1060<p\le 10^60<p≤106。
题目描述
小明最近迷上了一个叫八数码的游戏,如下图 111,在 3×33 \times 33×3 的棋盘上,摆有八个棋子,每个棋子上标有 111 至 888 的某一数字。棋盘中留有一个空格,空格用 000 来表示。空格周围的棋子可以移动空格中。

游戏的目标是通过棋子的移动使 888 个棋子到达图 222 的布局。
在上面的图 111 中,我们可以把 555 向上移,然后再将 888 向左移动后达成游戏目标变成图 222 的布局,完成这局游戏最少需要 222 步。
小明知道你是个编程高手,希望你编写一个程序计算完成每一局游戏的最少步数。
输入格式
第一行,一个整数 nnn,表示游戏的局数。
接下来的 nnn 行,每行一个字符串,对应一个初始的游戏布局。(每个字符串中含有数字字符 0∼80\sim 80∼8 各 111 个, 000 表示空格,如图 111 的布局可以记录为 123406758123406758123406758 )
输出格式
nnn 行,每行一个整数,代表每局游戏所需的最少步数。
注意,有的游戏初始布局,无论进行多少次操作也没有办法到达目标,此时请输出 −1-1−1。
样例
2
123406758
283104765
2
-1
解释#1
第一局:第 111 步,将第三行的 555 向上移动;第 222 步,将第三行的 888 向左移动就可以完成游戏;答案为 222。
第二局:这个布局无论进行多少次操作都没有办法达到游戏目标,输出 −1-1−1。
数据范围
1≤n≤101\le n\le 101≤n≤10
