题目都偏规律总结类型,只要思路对了,很容易做出来,不像华为机试一道字符串+两道算法题……
第一题
有n个同学,老师买了n块巧克力(1<n<10^5),按照学号顺序依次来办公室拿巧克力,每个进办公室的学生最少拿1块,拿完后面的同学就不用进来了。如果第一个同学至少拿6块的话,剩下同学的分配方案有几种?(结果可能很大,输出对666666666取模的结果)
输入:6 输出:1
输入:8 输出:4 输出说明:8;7,1;6,2;6,1,1;
import sys
while True:
n = sys.stdin.readline()
if n == '':
break
n = int(n)-6
print(0) if n<0 else print(2**n%666666666)
第二题
给出n*2个杯子,每个杯子容量为ai,以及w毫升的水,有n个男孩,n个女孩,规则如下:
-每个男孩子杯里的水要相同
-每个女孩子也要相同
-男孩子的水要是女孩子的水的两倍
问最多总共能倒入多少毫升水?
输入描述:
第一行为两个整数 n 和 w (1<=n<=10^5 , 1<=w<=10^9)
第二行为2n个整数 a1,a2,…,an(1<=ai<=10^9)(每个杯子最大能盛多少水)
示例1 | 示例2 | |