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\) 友好的字符串。

  1. s的长度为1,s=ch
  2. s的长度大于1,字符串的前半部分仅由ch构成(s1=s2=......=sn/2=ch),后半部分为 对(ch+1)友好的字符串
  3. 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\)

posted @ 2022-10-14 16:10  f2021yjm  阅读(22)  评论(0编辑  收藏  举报