多校训练赛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 ...
随机推荐
- CoreGraphics QuartzCore CGContextTranslateCTM 说明
CoreGraphics.h 一些经常使用旋转常量 #define M_E 2.71828182845904523536028747135266250 e #define M_LOG2E 1.442 ...
- LeanCloud获取最近会话列表和获取最后一条聊天记录
最近公司有项目需要集成IM聊天功能,领导要求用LeanCloud集成,搞不出来就要背包滚蛋啊,没办法只能硬着头皮搞了. 刚拿到官方提供的demo感觉:嗯,不错.图片语音啥的都有了,但尼玛这还不够啊,还 ...
- Chapter 1 Securing Your Server and Network(2):管理服务的SIDs
原文出处:http://blog.csdn.net/dba_huangzj/article/details/37927319 ,专题文件夹:http://blog.csdn.net/dba_huang ...
- vuejs 相关资料
官网 http://vuejs.org/ 中文网站 http://cn.vuejs.org/ Vue.js——60分钟快速入门 http://www.cnblogs.com/keepfool/p/56 ...
- QUIC简要
QUIC.即Quick UDP Internet Connection,类似于SPDY,相同也是由Google公司在现有已存协议之上进行了扩展设计,而旨在降低网络延迟.之前我曾介绍过SPDY的相关信息 ...
- JAVA card 应用程序开发(七) JAVA 卡数据(永久数据/)时间数据
JAVA 卡对象 JAVA CARD 存储器装置: a. ROM: 永久保存程序和数据,虚拟机,API等待:(Applets它也可以在这里放) b. RAM: 栈数据,暂时对象. ...
- 如何使用SQLite数据库 匹配一个字符串的子串?
select * from table_name where 字符串 like '%'||列名||'%'
- CSS 之 光进入光
一个.概念 css,层叠样式表(英语:Cascading Style Sheets.简写CSS).又称串样式列表.层次结构式样式表文件,一 种用来为结构化文档(如HTML文档或XML应用)加入样式(字 ...
- JAVA中的super和this关键字的使用
一 this关键字 this关键字可以出现在构造方法和实例方法中,不能出现在静态方法中,这是因为静态方法可以用类名来调用,这时可能还没有任何对象诞生. this主要有两种用法: 1 用在构造方法中,调 ...
- mysql_install_db出错,Unable to lock /usr/local/mysql/var/ibdata1, error: 11
今天,在一台旧机器上编译一个新的Mysql,install时出了错: /usr/local/mysql_5615/scripts/mysql_install_db --user=mysql --bas ...