【题解】月度开销
【题目描述】
农夫约翰是一个精明的会计师。他意识到自己可能没有足够的钱来维持农场的运转了。他计算出并记录下了接下来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 个不同口味、不同大小的派。有 个朋友会来参加我的派对,每个人会拿到一块派(必须一个派的一块,不能由几个派的小块拼成;可以是一整个派)。
我的朋友们都特别小气,如果有人拿到更大的一块,就会开始抱怨。因此所有人拿到的派是同样大小的(但不需要是同样形状的),虽然这样有些派会被浪费,但总比搞砸整个派对好。当然,我也要给自己留一块,而这一块也要和其他人的同样大小。
请问我们每个人拿到的派最大是多少?每个派都是一个高为 ,半径不等的圆柱体。
【输入描述】
第一行包含两个正整数 和 ,表示派的数量和朋友的数量。(N>=1, F<=10000)
第二行包含 个 1 到 之间的整数,表示每个派的半径
【输出描述】
输出每个人能得到的最大的派的体积,精确到小数点后三位。
【样例输入】
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
【STL】二分查找函数 lower_bound 和 upper_bound
【STL】二分查找函数(算法)—binary_search
【题解】开花
【题目描述】
小A所在的学校又迎来了一年一度的开花活动,有 n 名学生被评为文学优秀奖,m 名学生被评为体育优秀奖。现已知两个奖项获奖同学的编号,每个同学都有唯一的编号。只有同时被评为文学优秀奖和体育优秀奖的学生才能开花,小A想知道开花的名单,请你帮他统计一下。
【输入描述】
第一行两个整数
第二行 n 个不同的整数,表示获得文学优秀奖的同学编号。
第二行 m 个不同的整数,表示获得体育优秀奖的同学编号。
所有编号为正整数且不超过
【输出描述】
一行若干个空格分隔的整数,表示开花的同学编号,按文学优秀奖的先后次序输出。
【样例输入】
4 4 5 1 7 3 2 3 4 1
【样例输出】
1 3