多校训练赛2 ZCC loves cards
ZCC loves cards
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 260 Accepted Submission(s): 7
ZCC loves playing cards. He has n magical cards and each has a number on it. He wants to choose k cards and place them around in any order to form a circle. He can choose any several consecutive cards the number of which is m(1<=m<=k) to play a magic. The magic is simple that ZCC can get a number x=a1⊕a2...⊕am, which ai means the number on the ith card he chooses. He can play the magic infinite times, but once he begin to play the magic, he can’t change anything in the card circle including the order.
ZCC has a lucky number L. ZCC want to obtain the number L~R by using one card circle. And if he can get other numbers which aren’t in the range [L,R], it doesn’t matter. Help him to find the maximal R.
The input contains several test cases.The first line in each case contains three integers n, k and L(k≤n≤20,1≤k≤6,1≤L≤100). The next line contains n numbers means the numbers on the n cards. The ith number a[i] satisfies 1≤a[i]≤100.
You can assume that all the test case generated randomly.
For each test case, output the maximal number R. And if L can’t be obtained, output 0.
4 3 1
2 3 4 5
7Hint⊕ means xor
题意:有N张牌。每张牌都有其权值ai。然后有一个幸运数L。从N个数取K个数围城一个圈,顺序随意。然后能够这个魔术师能够从这k张牌中取连续的随意张牌得到一个数值h=a1^a2^a3...假设他想要[L,R]这个范围的值都能取到,问R最大是多少。
题解:用二进制状态把取出k的多种情况存入sta数组中。然后去模拟找出最大的R。TLE.
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <queue>
#include <map>
#include <stack>
#include <list>
#include <vector>
using namespace std;
#define LL __int64
LL sta[100010];
int a[50];
int main()
{
int n,m,i,j,k,i1,i2,i3,i4,i5,i6,L;
while (3==scanf("%d%d%d",&n,&m,&L))
{
memset(sta,0,sizeof(sta));
memset(a,0,sizeof(a));
LL t=0,s;
for (i=0;i<n;i++)
scanf("%d",&a[i]);
if (m==1)
{
for (i=0;i<n;i++)
sta[++t]=1<<i;
}
else if (m==2)
{
for (i=0;i<n-1;i++)
for (i1=0;i1<n-(i+1);i1++)
{
s=(1<<(i+i1+1))+(1<<i1);
sta[++t]=s;
}
}
else if (m==3)
{
for (i=0;i<n-2;i++)
for (j=0;j<n-(i+1)-1;j++)
for (k=0;k<n-2-i-j;k++)
{
s=(1<<(i+k+j+2))+(1<<(j+k+1))+(1<<k);
sta[++t]=s;
}
}
else if (m==4)
{
for (i=0;i<n-3;i++)
for (i1=0;i1<n-(i+1)-2;i1++)
for (i2=0;i2<n-i-i1-3;i2++)
for (i3=0;i3<n-i1-i2-i-3;i3++)
{
s=(1<<(i+i1+i2+i3+3))+(1<<(i1+i2+i3+2))+(1<<(i2+i3+1))+(1<<i3);
sta[++t]=s;
}
}
else if (m==5)
{
for (i=0;i<n-3;i++)
for (i1=0;i1<n-(i+1)-2;i1++)
for (i2=0;i2<n-i-i1-3;i2++)
for (i3=0;i3<n-i1-i2-i-4;i3++)
for (i4=0;i4<n-i1-i2-i3-i-4;i4++)
{
s=(1<<(i+i1+i2+i3+i4+4))+(1<<(i1+i2+i3+i4+3))+(1<<(i2+i3+i4+2))+(1<<(i3+i4+1))+(1<<(i4));
sta[++t]=s;
}
}
else
{
for (i=0;i<n-3;i++)
for (i1=0;i1<n-(i+1)-2;i1++)
for (i2=0;i2<n-i-i1-3;i2++)
for (i3=0;i3<n-i1-i2-i-4;i3++)
for (i4=0;i4<n-i1-i2-i3-i-5;i4++)
for (i5=0;i5<n-i-i1-i2-i3-i4-5;i5++)
{
s=(1<<(i+i1+i2+i3+i4+i5+5))+(1<<(i1+i2+i3+i4+i5+4))+(1<<(i2+i3+i4+i5+3))+(1<<(i3+i4+i5+2))+(1<<(i4+i5+1))+(1<<i5);
sta[++t]=s;
}
}
/*cout<<t<<endl;
for (i=1;i<=t;i++)
cout<<sta[i]<<endl;*/
int ss[50],ans=0;
memset(ss,0,sizeof(ss));
for (i=1;i<=t;i++)
{
map<int,int>mp;
int l=0;
for (j=0;j<n;j++)
if ((1<<j) & sta[i])
ss[l++]=j; //序列出来了 cout<<ss<<endl;
sort(ss,ss+l);
do
{
/*for (i=0;i<m;i++)
printf("%d ",a[ss[i]]);
cout<<endl;*/
mp.clear();
int s1[50];
memset(s1,0,sizeof(s1));
for (i1=0;i1<m;i1++)
{
s1[i1]=s1[i1+m]=a[ss[i1]];
mp[s1[i1]]=1;
}
for (i1=0;i1<m;i1++)
{
int h=s1[i1];
for (j=i1+1;j<i1+m;j++)
{
h=h^s1[j];
mp[h]=1;
}
}
int h=L;
while (mp[h]) h++;
if (h!=L && h-1>ans) ans=h-1;
}while (next_permutation(ss, ss+l));
}
cout<<ans<<endl;
}
return 0;
}
多校训练赛2 ZCC loves cards的更多相关文章
- 2014---多校训练2(ZCC Loves Codefires)
ZCC Loves Codefires Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- HDU 4876 ZCC loves cards(暴力剪枝)
HDU 4876 ZCC loves cards 题目链接 题意:给定一些卡片,每一个卡片上有数字,如今选k个卡片,绕成一个环,每次能够再这个环上连续选1 - k张卡片,得到他们的异或和的数,给定一个 ...
- hdu 4876 ZCC loves cards(暴力)
题目链接:hdu 4876 ZCC loves cards 题目大意:给出n,k,l,表示有n张牌,每张牌有值.选取当中k张排列成圈,然后在该圈上进行游戏,每次选取m(1≤m≤k)张连续的牌,取牌上值 ...
- HDOJ 4876 ZCC loves cards
枚举组合,在不考虑连续的情况下推断能否够覆盖L...R,对随机数据是一个非常大的减枝. 通过检測的暴力计算一遍 ZCC loves cards Time Limit: 4000/2000 MS (Ja ...
- HDU6578 2019HDU多校训练赛第一场 1001 (dp)
HDU6578 2019HDU多校训练赛第一场 1001 (dp) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6578 题意: 你有n个空需要去填,有 ...
- HDU6579 2019HDU多校训练赛第一场1002 (线性基)
HDU6579 2019HDU多校训练赛第一场1002 (线性基) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6579 题意: 两种操作 1.在序列末 ...
- HDU4876:ZCC loves cards
Problem Description ZCC loves playing cards. He has n magical cards and each has a number on it. He ...
- 2018牛客网暑假ACM多校训练赛(第三场)I Expected Size of Random Convex Hull 计算几何,凸包,其他
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-I.html 题目传送门 - 2018牛客多校赛第三场 I ...
- 2018牛客网暑假ACM多校训练赛(第三场)G Coloring Tree 计数,bfs
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-G.html 题目传送门 - 2018牛客多校赛第三场 G ...
随机推荐
- laydate天蓝色的皮肤
要使用该网站日期控件.就到网上找laydate,但laydate无天蓝色的肌肤,其他皮肤不能进行集成和现场,对自己做了一个天蓝色的肌肤,分享给大家使用. 皮肤下载 版权声明:本文博主原创文章.博客,未 ...
- oracle存储过程的例子
oracle存储过程的例子 分类: 数据(仓)库及处理 2010-05-03 17:15 1055人阅读 评论(2)收藏 举报 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的 ...
- MyEclipse每次修改js有另一种部署
今天在做时间格式显示这块内容的时候.我改动了这个js函数,同一时候凝视的掉了其它的一些替换的方法,可是在浏览器中执行发现效果一点也没有改变.于是debug js,发现浏览器中识别的还是之前未改动的js ...
- 原生javascript与jquery 的比较
JavaScript的优点和缺点: 优点: 性能:由于JavaScript运行在客户端,节省了web服务器的请求时间和带宽 轻量级的脚本语言,比较容易学习 运行在用户机器上,运行结果和处理相对比较快. ...
- 【OpenCV新手教程之十八】OpenCV仿射变换 & SURF特征点描写叙述合辑
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/33320997 作者:毛星云(浅墨) ...
- Android UI设计规则
Android UI技巧 1.1 不该做什么 l 不要照搬你在其他平台的UI设计,应该让用户使用感觉是在真正使用一个Android软件,在你的LOGO显示和平台总体观感之间做好平衡 l 不要过度使 ...
- 介绍一款轻量级js控件:easy.js
easy.js 组件高速入门 在使用 easy.js 的组件之前,假设能花上几分钟看看以下的一些简单的入门指南,在使用组件的时候你会更加的得心应手. 简单性 easy.js 的组件在 UI(界面) 层 ...
- mysql 多个字段拼接
Mysql的查询结果行字段拼接,能够用以下两个函数实现: 1. concat函数 mysql> select concat('1','2','3') from test ; +--------- ...
- 学习pthreads,创建和终止多线程
更CPU多线程编程,通过笔者的研究发现,,pthreads使用日趋广泛.它是螺纹POSIX标准,它定义了一组线程的创建和操作API. 配置环境见上博客文章.配置环境后,只需要加入#include &l ...
- V离MWare至Openstack至FDIO
离VMWare至Openstack 至FDIO --软件虚拟化和硬件虚拟化相结合 作者:廖恒 以VMWare为代表的软件虚拟化技术在企业IT中已是耳熟能详的不争现实.据在HPISS任职的好友告知,V ...