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

本次比赛为真·水题欢乐赛

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](ji)
f[i,j]=i(j=0)
f[i,j]=f[i1][j]+f[i1][j1]+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> <script type="math/tex" id="MathJax-Element-56"> </script>满足 1an 1bm 使得 (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(n1)(n3) ,否则 A3n1

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

主席树裸题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值