noip模拟yjm
NOIP2022
模拟测试
题目名称 | 友好字符串 | 军事比拼 | 魔法篮球 | 概率变化 |
---|---|---|---|---|
可执行文件名 | friendly.cpp | fight.cpp | basketball.cpp | change.cpp |
输入文件名 | friendly.in | fight.in | basketball.in | change.in |
输出文件名 | friendly.out | fight.out | basketball.out | change.out |
时间限制 | 2s | 1s | 3s | 2s |
空间限制 | 256MB | 256MB | 256MB | 256MB |
测试点数目 | 10 | 10 | 10 | 20 |
测试点分值 | 10 | 10 | 10 | 5 |
题目类型 | 传统题 | 传统题 | 传统题 | 传统题 |
比较方式 | 全文比较 | 全文比较 | 全文比较 | 全文比较 |
是否有部分分 | 是 | 是 | 是 | 是 |
友好字符串(friendly)
一个字符串s满足以下三个条件 之一 的时候,我们称它为对 \(ch\) 友好的字符串。
- s的长度为1,s=ch
- s的长度大于1,字符串的前半部分仅由ch构成(s1=s2=......=sn/2=ch),后半部分为 对(ch+1)友好的字符串
- s的长度大于1,字符串的后半部分仅由ch构成(sn/2+1=sn/2+2=......=sn=ch),前半部分为 对(ch+1)友好的字符串
s="bbcdaaaa" 是一个对a友好的串,因为:
s的后半段("\(aaaa\)")仅由 \(a\) 组成,前半段("\(bbcd\)")为对 \(b\) 友好的字符串,因为:
它的前半段("\(bb\)")仅由 \(b\) 组成,后半段("\(cd\)")为对 \(c\) 友好的字符串,因为:
它的前半段("\(c\)")长度为1,且等于 c,后半段("\(d\)")为对 \(d\) 友好的字符串
对于每一个给出的字符串,问最少需要改变几个字符,才能将它变为对 \(a\) 友好的字符串
输入格式
第一行为询问组数 \(t\)
对于每组询问:
第一行 为字符串长度 \(n\) (\(n=2^k,k≥0\))
第二行 一个长度为 \(n\) 的,仅由小写字母组成的字符串s
输出格式
\(t\) 行,每行一个整数(将 \(s\) 变为对 \(a\) 友好的字符串所需要改变的最少字母数目)
输入样例
6
8
bbdcaaaa
8
asdfghjk
8
ceaaaabb
8
bbaaddcc
1
z
2
ac
输出样例
0
7
4
5
1
1
数据范围
对于 \(20\%\) 的数据, \(n\leq 64\) 。
对于 \(100\%\) 的数据, \(t\leq 2\times 10^4,n\leq 131072,∑n\leq 2\times 10^5\)
军事比拼(fight)
郝硕德费赞国有n支军队,现在他们要进行一场军事比拼。
每次只能有两支军队进行比拼,每支军队在不同的天气(晴天或雨天)有不同的战力值(保证战力值不会相等),在哪种天气下比拼由国王 \(LZC\) 决定,在该天气下战力值大的军队将获胜,战败的军队会被淘汰。现在国王想知道,哪些军队有可能获得总冠军。
输入格式
第一行,一个正整数 \(t\)(\(t≤100\))表示数据组数
对于每组数据,第一行输入一个正整数 \(n\)(\(n\leq 10^5\)),表示军队数量
接下来两行,每行n个整数 xi(xi≤\(10^9\));第一行表示晴天时,每支军队的战力值,第二行表示雨天时军队的战力值。
输出格式
对于每支军队,如果有可能获胜,则第\(i\)个字符输出1,否则输出0。
输入样例
3
4
1 2 3 4
1 2 3 4
4
11 12 20 21
44 22 11 30
1
1000000000
1000000000
输出样例
0001
1111
1
数据范围
对于 \(50\%\) 的数据,随机造的 。
对于 \(100\%\) 的数据, \(t\leq 100,n\leq 10^5,x\leq10^9\)
魔法篮球(basketball)
众所周知,\(ckx\)(cxk)非常喜欢打篮球。
有一天,他得到了很多魔法篮球,每个魔法篮球可以分解为m个普通篮球,每个魔法篮球和普通篮球都占1体积的空间(普通篮球不能被分解)
ckx想要使一些魔法篮球分解,使得所有篮球占据的空间恰好为n,问有多少种不同的分解方案(两种分解方案不同,当且仅当分解的魔法篮球数量不同,或者所用的篮球不同)
输入格式
第一行两个整数\(n,m\)。
输出格式
输出方案数对\(10^9+7\)取模的值。
输入样例1
4 2
输出样例1
5
输入样例2
3 2
输出样例2
3
数据范围
对于\(30\%\)的数据,\(n\le 10^7,m\le 100\)。
对于\(100\%\)的数据,\(n\le 10^{18},m\le100\)。
概率变化(change)
\(lym\)同学很喜欢拆分数字。
对于一个数 \(n\),他每次操作可能把它变成 n 的一个约数(包括1和n,等概率)
问,他将n操作k次之后的期望。
输入格式
两个正整数 \(n,k\)。
输出格式
一行,答案对 \(10^9+7\) 取模后的结果。
输入样例1
6 1
输出样例1
3
输入样例2
6 2
输出样例2
875000008
输入样例3
60 5
输出样例3
237178099
数据范围
对于\(30\%\)的数据,\(n\le 60,k\le10\)。
对于\(100\%\)的数据,\(n\le 10^{15},k\le10^4\)。