BestCoder Round #82 (div.2)

来源:互联网 发布:excel 销售数据分析 编辑:程序博客网 时间:2024/05/16 19:32

A.
ztr喜欢研究数学,一天,他在思考直角三角形方程组的Lower版,即n=x^2-y^2,,他想知道,对于给出的n,是否会有正整数解。
有T组数据,(T<=10^6),n<=10^18


思路:
n=x^2-y^2=(x+y)(x-y),假设x+y=a,x-y=b,如果a+b的和可以凑成偶数而且a < b,那么一定能因式分解,
所以如果当n为奇数时,除了1之外,一定能凑成a=n,b=1,所以一定有解
如果当n为偶数时,要使a+b为偶数,那么a要为偶数,b要为偶数,又因为a>b,所以a至少为2的倍数,b至少为2,所以n要能整除4且n大于4


B.
ztr喜欢幸运数字,他对于幸运数字有两个要求
1:十进制表示法下只包含4、7
2:十进制表示法下4和7的数量相等
比如47,474477就是
而4,744,467则不是
现在ztr想知道最小的但不小于n的幸运数字是多少
有T组数据,(T<=10^5),n<=10^18


思路:
因为10^18中幸运数字的个数小于10^6,所以我们可以把所有的数全部预处理存起来,然后每次查询就是找比他大的数是哪一个就可以了,这里有一个坑点就是最后输出的数可能超过long long的范围,但是只有一种情况,就是输出44444444447777777777的时候,可以特判一下


C.
ztr喜欢研究子串,今天,他有n个串
现在ztr想知道,能否从这n个串的所有回文子串中,
取出恰好k个回文串且满足这些回文串的长度之和为L
以yjqqaq为例
这个串包含的回文子串有
y,j,q,a,q,qq,qaq
所以我们可以既选qq,又选qaq

有T组数据,第一行为一个正整数T(T<=10)
每组数据第一行为三个正整数N(1<=N<=100),K(1<=K<=100),L(L<=100)
接下来N行,每行一个由小写字母构成的字符串,保证每个串的长度不超过L


思路:
首先我们对于每一个串处理出他所有的回文串,然后这些串的费用都是1,那么题意便变成了用费用为K的凑出L的长度,简单的背包便可以了。


D.
给一颗有根树,树上的每一个节点有一个权值,每次询问某个子树中所有权值的中位数


思路:
这道题就是在一个子树上询问第k大,于是我们用dfs序将树上询问第k大转化为区间询问第k大,套用主席树即可
fmod(i,j) 浮点数取模


0 0
原创粉丝点击