您的位置:首页 > 其它

机房水题欢乐赛 2016-04-24 下午

2016-04-24 22:13 211 查看
本次比赛为真·水题欢乐赛

Parliament

【题目描述】

给出一个正整数N,把N分解成若干个不同的正整数相加,使得这若干个正整数的乘积最大.按升序输出这若干个正整数.

【输入样例】

7

【输出样例】

3 4

【数据范围】

20% 的数据 N<=20

40% 的数据 N<=200

60% 的数据 N<=1000

100%的数据 N<=10000

Solution

尽量分到根号N处即可。。

Oneperson

【题目描述】

这是一个传说中的猜数游戏,灏灏心里想一个数,然后让你猜,你总共有K次猜的机会,和L次猜大的机会

如果你猜的数比灏灏想的数小,那么K-1

如果你猜的数比灏灏想的数大,那么K-1,L-1

问,给你K,L,保证能猜到正确数字时,你能猜到的最大的数是多少?答案保证在longint范围内。

【输入样例】

3 0

3 1

10 5

7 7

0 0

【输出样例】

Case 1: 3

Case 2: 6

Case 3: 847

Case 4: 127

样例解释:对于Case 2,

我们先猜3(3,1),

(1)如果灏灏说大了,那么剩下(2,0),接着猜1,再猜2即可

(2)如果灏灏说小了,那么剩下(2,1),接着猜5,

如果灏灏说大了,那接着猜3,再猜4即可, 如果灏灏说小了,剩下(1,0),猜6即可。所以6是可能猜到的最大数。

【Hint】

注意空格~

输入数据包含若干组数据,以0,0结束。

数据保证0<=K,L<=30

Solution

f[i,j]=f[i,i](j≥i)

f[i,j]=i(j=0)

f[i,j]=f[i−1][j]+f[i−1][j−1]+1(j>0)

UglyNumbers

【题目描述】

我们认为,UglyNumbers是这样定义的,它只由2,3,5相乘而成(1除外),如1,2,3,4,5,6,8,9,10,12为最小的10个Ugly Numbers。问,第K小的UglyNumbers是哪个?

输入数据以K=0结束。

【输入样例】

1
2
9
0


【输出样例】

1
2
10


【数据范围】

30% K<=10

50% K<=100

70% K<=1000

100% K<=1500

Solution

用优先队列维护

从1开始,每次从pq里取出一个数字就乘2 3 5再丢到pq里去,取出K次即可。

记得有道题也是这样类似的方法。

http://blog.csdn.net/huanghongxun/article/details/51181809

平方 Power

【题目描述】

给出n,m,你需要求出有多少对整数<a,b>满足1≤a≤n且1≤b≤m使得(a√+b√)2是整数

【输入格式】

一行2个数n,m

【输出格式】

一行为答案

【输入样例】

1 4

【输出样例】

2

【数据约定】

40%数据:n,m<=5000

100%数据:1<=n,m<=77777

Solution

即为求a+b+2ab−−√

也就是说有多少个a和b使乘积为平方数。

我们可以枚举a,然后看a的质因子的幂,就可以搞出b的个数了。

时间复杂度O(nn−−√)

最小公倍数

Lcm

【题目描述】

你要从[1,n]中找出3个整数(可以重复),使得这三个数的最小公倍数最大

【输入格式】

一个数n

【输出格式】

一个数为答案

【输入样例】

3

【输出样例】

6

【数据约定】

40%数据:n<=200

100%数据:1<=n<=10^6

Solution

n是奇数时答案为A3n

n为偶数且不能被3整除时,答案是n(n−1)(n−3),否则A3n−1

Knumber

【题目描述】

给你一序列数,求某个区间的第k小数

【输入格式】

第一行n,m

第二行n个数,为原数列,每个数绝对值小于10^9,且数字各不相同

接下来m行每行a,b,c,求[a,b]区间内第c小的数字

【输出格式】

输出m个数,为每个询问对应的答案

【输入样例】

7 3

1 5 2 6 3 7 4

2 5 3

4 4 1

1 7 3

【输出样例】

5

6

3

【数据约定】

40%数据n*m<=10^6

100%数据1<=n<=100000,1<=m<=5000

Solution

主席树裸题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: