青少年编程知识记录 codecoming

【题解】报数游戏

【题目描述】

路飞在和他朋友们一块玩一个游戏。由于路飞的机智,这个游戏由路飞担任裁判。

首先,路飞会给他们一个人一个编号,并且每个人的编号都不相同。接下来的每一个回合,会给一个数,编号不超过它的最大编号

的人要报出自己的编号。如果没有人的编号比路飞给出的数要小,那么编号最小的人要报出自己的编号。每个人可以重复报号。

路飞会按照一个列表顺次报出每个回合的数,他的朋友们想知道每回合报出的编号应该是多少?

【输入描述】

输入数据共3行。

第一行有两个整数n,m( 1<=n<=10, 1<=m<=105 ),分别表示参与游戏的路飞朋友的个数和游戏回合数。

第二行n个整数 ai (1<=ai<=108) ,表示朋友们每个人的编号。对于 0<=i<j<n, 都有 ai<aj,即他们的编号递增排列。

第三行m个整数 qi(1 <= qi <=108), 表示每回合路飞给的数字。

【输出描述】

 输出共一行m个整数,表示每回合报出的编号,每两个整数之间一个空格,最后一个数后面没有空格。

【样例输入】

5 5  1 5 10 15 20  3 6 12 18 24

【样例输出】

1 5 10 15 20
作者:亿万年的星光 分类:题解目录 浏览:

【题解】东哥的杯子

【题目描述】

话说在一场牛客练习赛中,东哥力压群雄,挣得第一,牛客为了奖励东哥的发挥,送他一个马克杯。奖励的马克杯是一个标准的

圆台形状,它的上底为R1,下底为R2,高为H, 东哥向杯子里倒V毫升的水,你知道倒完水后,杯子里的水位有多高吗?

【输入描述】

多组数据

每组数据只有一行,为R1(1<=R1<=10,000),R2(1<=R2<=100,000), H(1<=H<=100,000),V(1<=V<=1000,000,000)。

【输出描述】

输出倒完水后的杯子的水位高,结果保留三位小数

【样例输入】

10 100 10 1000  1 1 1 10

【样例输出】

1.250  1.000

【公式】



r为上底半径、R为下底半径、h为高。

标签: 二分

作者:亿万年的星光 分类:题解目录 浏览:

【题解】月度开销

【题目描述】

农夫约翰是一个精明的会计师。他意识到自己可能没有足够的钱来维持农场的运转了。他计算出并记录下了接下来N(1 ≤N≤ 100,000) 天里每天需要的开销。

约翰打算为连续的M(1 ≤M≤N) 个财政周期创建预算案,他把一个财政周期命名为fajo月。每个fajo月包含一天或连续的多天,每天被恰好包含在一个fajo月里。

约翰的目标是合理安排每个fajo月包含的天数,使得开销最多的fajo月的开销尽可能少。

【输入描述】

第一行包含两个整数N,M,用单个空格隔开。

接下来N行,每行包含一个1到10000之间的整数,按顺序给出接下来N天里每天的开销。

【输出描述】

一个整数,即最大月度开销的最小值。

【样例输入】

7 5  100  400  300  100  500  101  400

【样例输出】

500

【题解】均分蛋糕

【题目描述】

小明的生日要到了!根据习俗,他需要将一些派分给大家。

他有 N 个不同口味、不同大小的派。有 F 个朋友会来参加我的派对,每个人会拿到一块派(必须一个派的一块,不能由几个派的小块拼成;可以是一整个派)。

我的朋友们都特别小气,如果有人拿到更大的一块,就会开始抱怨。因此所有人拿到的派是同样大小的(但不需要是同样形状的),虽然这样有些派会被浪费,但总比搞砸整个派对好。当然,我也要给自己留一块,而这一块也要和其他人的同样大小。

请问我们每个人拿到的派最大是多少?每个派都是一个高为 ,半径不等的圆柱体。

【输入描述】

第一行包含两个正整数 N 和 F,表示派的数量和朋友的数量。(N>=1, F<=10000)

第二行包含 N 个 1 到 10000 之间的整数,表示每个派的半径

【输出描述】

输出每个人能得到的最大的派的体积,精确到小数点后三位。

【样例输入】

3 3

4 3 3

【样例输出】

25.133

作者:亿万年的星光 分类:题解目录 浏览:

【题解】切割绳子

【题目描述】

有N条绳子,它们的长度分别为Li。如果从它们中切割出K条长度相同的绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位(直接舍掉2位后的小数)。

【输入描述】

第一行两个整数N和K(0<N<=10000, 0<K<=10000),接下来N行,描述了每条绳子的长度Li(0<Li<=100000.00)。

【输出描述】

切割后每条绳子的最大长度。

【样例输入】

4 11  8.02  7.43  4.57  5.39

【样例输出】

2.00
作者:亿万年的星光 分类:题解目录 浏览:

【题解】木材加工

【题目描述】

 木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头(木头有可能有剩余),需要得到的小段的数目是事先给定的,切割时希望得到的小段越长越好。

      编写程序,输入原木的数目 N 和需要得到的小段的数目 K以及各段原木的长度,计算能够得到的小段木头的最大长度。

      木头长度的单位是 cm。原木的长度都是正整数,要求切割得到的小段木头的长度也是正整数。

例如有两根原木长度分别为11和21,要求切割成到等长的6段,很明显能切割出来的小段木头长度最长为5.

【输入描述】

第一行是两个正整数N和K(1 ≤ N ≤ 100000,1 ≤ K ≤ 100000000),N是原木的数目,K是需要得到的小段的数目。

接下来的N行,每行有一个1到100000000之间的正整数,表示一根原木的长度。

【输出描述】

能够切割得到的小段的最大长度。如果连1cm长的小段都切不出来,输出”0”。

【样例输入】

3 7  232  124  456

【样例输出】

114

标签: 二分

作者:亿万年的星光 分类:题解目录 浏览:

【题解】切割钢管

【题目描述】

小A是某工地的计算工程师。工地现有 n 根钢管,第 i 根钢管的长度为 ai

现在想用这 n 根钢管来做一个支撑用的柱子。我么可以切割这些钢管成为更短的钢管,但是不能缝合两根钢管。为了安全起见,柱子必须用 至少 k 根长度相同的钢管加上混凝土制成,并且要求钢管长度必须为 整数。

小A想知道,这个柱子最高能建成多高(钢管可以有剩余)。

【输入描述】

输入第一行一个整数  。

接下来一行输入 n 个空格隔开的整数 ,表示每根钢管的长度。

【输出描述】

输出最大的高度。

【样例输入1】

2 4  8 4

【样例输出1】

2

【样例输入2】

8 8  12 3 14 12 14 20 4 8

【样例输出2】

7
作者:亿万年的星光 分类:题解目录 浏览:

【题解】开花

【题目描述】

小A所在的学校又迎来了一年一度的开花活动,有 n 名学生被评为文学优秀奖,m 名学生被评为体育优秀奖。现已知两个奖项获奖同学的编号,每个同学都有唯一的编号。只有同时被评为文学优秀奖和体育优秀奖的学生才能开花,小A想知道开花的名单,请你帮他统计一下。

【输入描述】



第一行两个整数  ,分别表示文学优秀奖和体育优秀奖的获奖人数。

第二行 n 个不同的整数,表示获得文学优秀奖的同学编号。

第二行 m 个不同的整数,表示获得体育优秀奖的同学编号。

所有编号为正整数且不超过  。

【输出描述】



一行若干个空格分隔的整数,表示开花的同学编号,按文学优秀奖的先后次序输出。

【样例输入】

4 4  5 1 7 3  2 3 4 1

【样例输出】

 1 3

标签: 二分

作者:亿万年的星光 分类:题解目录 浏览:

【题解】牛的阵容

【题目描述】农民约翰雇一个专业摄影师给他的奶牛拍照。由于约翰的牛有很多品种,他喜欢他的照片包含每个品种至少一头牛。约翰的牛都站在数轴的不同地方,每一头牛由一个整数位置 X_i 以及整数品种编号 ID_i 表示。 约翰想拍一张照片,这张照片由数轴上连续的奶牛组成。照片的成本为这些奶牛最大和最小X坐标的差。 请帮助约翰计算最小的照片成本。保证没有两头牛在同一位置。【输入描述】第 1 行:牛的数量 N;第 2..1+N 行:每行包含 2 个以空格分隔的正整数 X_i 和 ID_i;
作者:亿万年的星光 分类:题解目录 浏览:

【题解】游戏

【题目描述】

上了半天的物理数学课,大家的脑子有点转不动了,下午的课表似乎看透了同学们的 心思,第一节就安排了体育课,CZ 中学的课表真是太有爱了,赞一个!午间休息后,文体 委员小 S 喊大家到教室外的走廊上排队,队形整好后小 S 带着大家走到了大操场上,体育 老师早就在那等着了,他先安排同学们做了五分钟的准备活动,接下来让大家玩一个有趣 的游戏,在这个游戏里,全班同学先散开站在操场上,同学们轮流玩这个游戏,从 1 号同学开始,然后是 2 号 3 号等等 (只要这个同学仍然参与这个游戏)。每次轮到玩的同学,就选择一个目前离他最近的同学,走过去拍他一下,然后回到原来的位置,那个被拍到的 同学就被排除在游戏之外了,必须立刻离开操场。当操场上只剩下一个同学时,游戏即告 结束,最后站在操场上的那个同学就是赢家。

R 老师 正和隔壁班的 F 主任津津有味地在场边看着同学们做游戏,为了添加一点乐 趣,R 老师就和 F 主任打赌哪个同学会赢?所以他想事先知道谁是赢家。R 老师希望你写 一个程序,读入同学们相互之间的距离,模拟出哪个同学最终会获胜。

【输入描述】

输入数据第一行为一个正整数 N, 表示在操场上玩游戏的人数,其中 1≤N≤1000, 接下来共有 N 行数据,每行有 N 个用空格隔开的整数,其中第 i 行第 j 列的数据表示操场 上编号为 i 的同学与编号为 j 的同学之间的距离。输入数据保证第 i 行第 i 列(主对角线 上的位置)的数据均为 0,其余数据均为正整数,且第 i 行第 j 列的数据一定等于第 j 行 第 i 列的数据,这意味着同学甲到同学乙的距离等于同学乙到同学甲的距离;操场上任意 两对同学之间的距离均不相同,也就是说上三角部分的正整数互不相同。

【输出描述】

输出数据仅有一行包含一个正整数表示获胜的同学的编号。



【样例输入】

4

0 1 6 3

1 0 4 5

6 4 0 2

3 5 2 0

【样例输出】

1

【样例解释】

1号同学先玩,走过去拍了离他最近的2号同学,2号同学被排除出游戏;接下去就直接轮到3号同学玩了,他走过去拍了4号同学,4号同学被排除出游戏;再次轮到1号同学时,他走过去拍了3号同学,3号同学被排除出游戏。最后1号同学获胜。

【数据范围】

30%的数据满足:n≤10

60%的数据满足:n≤100

100%的数据满足:n≤1000,所有数据不超过长整型范围

作者:亿万年的星光 分类:题解目录 浏览: