码迷,mamicode.com
首页 > 其他好文 > 详细

洛谷模拟赛 答案错误

时间:2017-10-29 13:46:34      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:names   def   模拟   pre   pen   答案   表示   方法   main   

题目背景

小X比较差,她(她?tan90°)有许多WA掉的题,所以她很难受。小Z决定去安慰她,可是他的提交记录里一道WA都没有(flag),于是他决定篡改一半题的署名,让小X觉得他们的错题相当,这样她会好受一些

题目描述

每道WA了的题都会有一个分数,对于两个人的WA题程度是否相同,小X有这样一个评判方法:

无聊的她想了这样一个神奇的函数

技术分享

她认为,无论ai取什么值,两组f(x)的和都相等,则这两组题的错误程度很相似

假如有分值为 A={1,4,6,7 } ,B={2,3,5,8} 的两份被篡改完成的WA题,当a_1=a_2=a_3=1a1?=a2?=a3?=1时,神奇的函数为

f(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) + 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)

对于这组系数,此分组方案是合法的,可以证明,a_iai?取任意值,按照以上方案分组都满足条件(两组的f(x)f(x)和相同),不信可以手动枚举(_hua|ji_)

所以,A={1,4,6,7 } ,B={2,3,5,8}就是一种合法的分组

输入输出格式

输入格式:

 

第一行一个整数nn,代表有2^n2n道WA题,分值分别从11到2^n2n, n>=2n>=2 (emmm........满分是inf)

第二行一个整数q,表示有q组询问

最后一行q个整数,询问分值为x的WA题是谁的名字

(因为小X比较菜,所以我们认为分值为1的WA题是属于她的)

 

输出格式:

 

一共q行,每行一个字符 ‘XX’ 或 ‘ZZ’ ,表示分值为x的WA题是谁的署名

 

输入输出样例

输入样例#1: 复制
3
2
4 5
输出样例#1: 复制
X
Z

说明

对于10%的数据,n<=4 , q<=10;

对于40%的数据,n<=20 , q<=5000;

对于100%的数据,n<=60 , q<=1000000;

题解网址https://pan.baidu.com/s/1qYPuPjA

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 typedef long long lol;
 7 lol cnt,n,q;
 8 int main()
 9 {lol x,i;
10 cin>>n;
11     cin>>q;
12     while (q--)
13     {
14         scanf("%lld",&x);
15         x--;
16         cnt=0;
17         for (i=x;i;i-=(i&(-i))) cnt++;
18         if (cnt%2) printf("Z\n");
19         else printf("X\n");
20     }
21 }

 

洛谷模拟赛 答案错误

标签:names   def   模拟   pre   pen   答案   表示   方法   main   

原文地址:http://www.cnblogs.com/Y-E-T-I/p/7749720.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!