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

Problem Description
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.
 
Input
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.
 
Output
For each test case, output the maximal number R. And if L can’t be obtained, output 0.
 
Sample Input
4 3 1
2 3 4 5
 
Sample Output
7
Hint
⊕ 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的更多相关文章

  1. 2014---多校训练2(ZCC Loves Codefires)

    ZCC Loves Codefires Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  2. HDU 4876 ZCC loves cards(暴力剪枝)

    HDU 4876 ZCC loves cards 题目链接 题意:给定一些卡片,每一个卡片上有数字,如今选k个卡片,绕成一个环,每次能够再这个环上连续选1 - k张卡片,得到他们的异或和的数,给定一个 ...

  3. hdu 4876 ZCC loves cards(暴力)

    题目链接:hdu 4876 ZCC loves cards 题目大意:给出n,k,l,表示有n张牌,每张牌有值.选取当中k张排列成圈,然后在该圈上进行游戏,每次选取m(1≤m≤k)张连续的牌,取牌上值 ...

  4. HDOJ 4876 ZCC loves cards

    枚举组合,在不考虑连续的情况下推断能否够覆盖L...R,对随机数据是一个非常大的减枝. 通过检測的暴力计算一遍 ZCC loves cards Time Limit: 4000/2000 MS (Ja ...

  5. HDU6578 2019HDU多校训练赛第一场 1001 (dp)

    HDU6578 2019HDU多校训练赛第一场 1001 (dp) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6578 题意: 你有n个空需要去填,有 ...

  6. HDU6579 2019HDU多校训练赛第一场1002 (线性基)

    HDU6579 2019HDU多校训练赛第一场1002 (线性基) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6579 题意: 两种操作 1.在序列末 ...

  7. HDU4876:ZCC loves cards

    Problem Description ZCC loves playing cards. He has n magical cards and each has a number on it. He ...

  8. 2018牛客网暑假ACM多校训练赛(第三场)I Expected Size of Random Convex Hull 计算几何,凸包,其他

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-I.html 题目传送门 - 2018牛客多校赛第三场 I ...

  9. 2018牛客网暑假ACM多校训练赛(第三场)G Coloring Tree 计数,bfs

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-G.html 题目传送门 - 2018牛客多校赛第三场 G ...

随机推荐

  1. iOS_11_tableViewCell使用alertView变更数据

    最后效果图: Girl.h // // Girl.h // 11_tableView的使用_红楼梦 // // Created by beyond on 14-7-26. // Copyright ( ...

  2. [勘探开发]成绩,全栈开发,健全&amp;借贷

    开发探索的一些update: 将结果做为开发的基础和终极目标 开发人员从过程的追求到最后结果的追求是一个质变的过程.相当于NBA中得分王和总冠军的差别: 一个是完毕一个局部的本职工作(有时候会和项目的 ...

  3. 认识Underscore

    Underscore一个JavaScript实用库,提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象.它弥补了部分jQuery没有实现的功能,同时又是Backbone.j ...

  4. 试DG周围环境

    试DG周围环境 周围环境 名称 主库 备库 主机名 bjsrv shsrv 软件版本号 RedHat Enterprise5.5.Oracle 11g 11.2.0.1 RedHat Enterpri ...

  5. bnu 34982 Beautiful Garden(暴力)

    题目链接:bnu 34982 Beautiful Garden 题目大意:给定一个长度为n的序列,问说最少移动多少点,使得序列成等差序列,点的位置能够为小数. 解题思路:算是纯暴力吧.枚举等差的起始和 ...

  6. .Net程序猿乐Android发展---(10)框架布局FrameLayout

    帧布局FrameLayout中全部的控件都在界面的左上側,后绘制的空间会覆盖之前的控件.布局内控件以层叠方式显示,用在游戏开发方面可能多些. 1.层叠展示                 以下这个样例 ...

  7. 遗传算法解决旅行商问题(TSP)

    这次的文章是以一份报告的形式贴上来,代码只是简单实现,难免有漏洞,比如循环输入的控制条件,说是要求输入1,只要输入非0就行.希望会帮到以后的同学(*^-^*) 一.问题描述 旅行商问题(Traveli ...

  8. SQLServer数据类型优先级对性能的影响

    原文:SQLServer数据类型优先级对性能的影响 译自: http://www.mssqltips.com/sqlservertip/2749/sql-server-data-type-preced ...

  9. wxWidgets+wxSmith版电子词典

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目3-OOP版电子词典](本程序须要的相关 ...

  10. HDU 1026 Ignatius and the Princess I 迷宫范围内的搜索剪枝问题

    这个问题是一个典型的类型的问题迷宫广泛的搜索. 在网上看到了很多解决方案. 没什么解决问题的分析报告,不指出其中的关键点.代码更像是一大抄.一些分析师也有很大的文章分析.只是不要全部命中关键,什么是广 ...