答案错误
来源:互联网 发布:w7搜索不到网络打印机 编辑:程序博客网 时间:2024/04/28 03:54
题目背景
小X比较差,她(她?tan90°)有许多WA掉的题,所以她很难受。小Z决定去安慰她,可是他的提交记录里一道WA都没有(flag),于是他决定篡改一半题的署名,让小X觉得他们的错题相当,这样她会好受一些
题目描述
每道WA了的题都会有一个分数,对于两个人的WA题程度是否相同,小X有这样一个评判方法:
无聊的她想了这样一个神奇的函数
她认为,无论ai取什么值,两组f(x)的和都相等,则这两组题的错误程度很相似
假如有分值为 A={1,4,6,7 } ,B={2,3,5,8} 的两份被篡改完成的WA题,当a1=a2=a3=1a_1=a_2=a_3=1a1=a2=a3=1时,神奇的函数为
f(x)=x2+x+1f(x)=x^2+x+1f(x)=x2+x+1
那么,f(1)=3,f(2)=7,f(3)=13......f(1)=3,f(2)=7,f(3)=13......f(1)=3,f(2)=7,f(3)=13......
显然 f(1)+f(4)+f(6)+f(7)=124=f(2)+f(3)+f(5)+f(8) f(1) + f(4) + f(6) + f(7) = 124 = f(2) + f(3) +f(5) +f(8)f(1)+f(4)+f(6)+f(7)=124=f(2)+f(3)+f(5)+f(8)
对于这组系数,此分组方案是合法的,可以证明,aia_iai取任意值,按照以上方案分组都满足条件(两组的f(x)f(x)f(x)和相同),不信可以手动枚举(_hua|ji_)
所以,A={1,4,6,7 } ,B={2,3,5,8}就是一种合法的分组
输入输出格式
输入格式:第一行一个整数nnn,代表有2n2^n2n道WA题,分值分别从111到2n2^n2n,n>=2n>=2n>=2 (emmm........满分是inf)
第二行一个整数q,表示有q组询问
最后一行q个整数,询问分值为x的WA题是谁的名字
(因为小X比较菜,所以我们认为分值为1的WA题是属于她的)
输出格式:一共q行,每行一个字符 ‘XXX’ 或 ‘ZZZ’ ,表示分值为x的WA题是谁的署名
输入输出样例
324 5
XZ
说明
对于10%的数据,n<=4 , q<=10;
对于40%的数据,n<=20 , q<=5000;
对于100%的数据,n<=60 , q<=1000000;
一道正解比暴力还短的水题
——其实就是等幂和问题
10分做法
暴力枚举每个值在A组还是B组,因为ai可以取任意值,就随便瞎取,当搜出的方案只有唯一一种时,显然就是答案,时间复杂度O(n*2^(2^n))
其实这个时候已经可以发现分组有一些神奇的地方,再多想一下就是40分了
40分做法
根据暴力,我们有:
n=2时,A={1,4} , B={2,3};
n=3时,A={1,4,6,7} , B={2,3,5,8};
n=4时,A={1,4,6,7,10,11,13,16} , B={2,3,5,8,9,12,14,15}
............
可以发现,第n次的分组,在第n+1次时并没有改变,而新加入的数:
n=3时,新加入A组的数 6=2+22,7=3+22,2,3属于B组
新加入B组的数 5=1+22,8=4+22,1,4属于A组
n=4时,新加入A组的数 10=2+23,11=3+23,13=5+23,16=8+23,2,3,5,8属于B组
新加入B组的数 9=1+23,12=4+23,14=6+23,15=7+23,1,4,6,7 属于A组
不妨大胆猜测,第n次新加入的数,就是另一组中的所有数加上2n-1,递推得出所有数的分组,时间复杂度O(2^n),其实想到40分100也就出来了
100分做法
用数学归纳法证明刚刚的结论:
对于1 ~ 2n( n∈N,n>=2 ),1分在A组,2分在B组,并按从小到大排列,若前2k已分组完成,对于新加入的2k+1 ~ 2k+1,若满足,,则对于任意 ,两组和均相等
1.当n=2时,显然,(a1*1+ a2 ) + (a1*4 + a2 ) = (a1*2 + a2) + (a1*3 + a2 ),
结论成立;
2.假设n=k时结论成立,那么对于n=k+1时,
n=k时结论成立,即
而将 和 拆开,会得到两个系数相等
的多项式,k次幂的项完全相等,将剩下的记为g(x)
因为n=k时结论成立,且g(x)最高次项不超过k-1次幂,即有,故 成立
由1.2得,此命题成立
那么如何快速判断一个数在A组还是B组?
,转化为二进制,显然与 中1的个数是不同奇偶的,而与也被分于两组,这意味着判断x在哪一组,即统计x-1在二进制下1的个数,时间复杂度O(qlogx)
可以用lowbit优化,不过加不加都可以过
- 答案错误
- 007中一道答案错误的题目
- c++ primer习题9.26答案错误
- 正确的答案都是错误的
- 503错误(百度搜索答案)
- 答案
- 答案
- 答案
- 答案
- 答案
- 答案
- 答案
- EMC在线测试题目及答案 绿色为正确答案,红色为错误答案
- SUN JAVA 110_新版答案更正了部分错误
- C++primer 习题9。25答案错误,正确答案如下
- 什么错误呀?老大们给个答案吧?
- 出了错误/问题到哪里找答案?
- 以下代码有什么错误_JAVA面试题及答案
- Linux中断驱动示例
- NOIP 2002 普及组 复赛 过河卒
- CodeForces 337D Book of Evil(双向dfs)
- 关于爬虫——前言
- Linux入门推荐书籍
- 答案错误
- 最长公共子序列(LCS)问题--动态规划
- DialogFragment实现自定义布局的小技巧
- 牛顿法
- Lintcode-动态规划-不同路径
- ssm配置问题
- Hbase安装
- (Deep Learning)network in network 学习笔记
- Vm虚拟机扩展Ubuntu系统磁盘空间