多校训练赛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 ...
随机推荐
- MongoDB学习笔记-命令
连接数据库: mongodb://账号:密码@IP/库名 更多方式参考:http://www.runoob.com/mongodb/mongodb-connections.html 命令整理: 名称 ...
- NTVS:把Visual Studio变成Node.js IDE 的工具
NTVS(Node.js Tools for Visual Studio) 运行于VS2012或者VS2013.一些node.js的爱好者已经从PTVS(Python Tools for Visual ...
- leetcode第一刷_Maximum Depth of Binary Tree
这道题预计是ac率最高的一道了.你当然能够用层序遍历,我佩服你的耐心和勇气.由于看到别人的三行代码,会不会流眼泪呢.. class Solution { public: int maxDepth(Tr ...
- [Android] App在三星某些机子上闪退:"不保留活动"
今天遇到用户反映应用总是闪退. 现象:在MainActivity后,只要进入任何主进程相关的二级界面,都会导致应用闪退(注:不是崩溃引起的,只是闪退) 分析:1.看log日志,退出前有抛出异常,但查看 ...
- Shell学问: 调用脚本之间
于Java,Python于,您可以使用import该方法使脚本或模块之间的呼叫,例如: >>> import math >>> math.sqrt(4) 2.0 在 ...
- TextWatcher原因activity内存泄漏问题
TextWatcher原因activity内存泄漏. EditText配置addTextChangedListener该接口,至onDestroy电话里removeTextChangedListene ...
- POJ 2418 Hardwood Species(STL在map应用)
职务地址:id=2418">POJ 2418 通过这个题查了大量资料..知道了非常多曾经不知道的东西. . .. 在代码中凝视说明吧. 代码例如以下: #include <ios ...
- leetcode-2 Add Two Numbers 计算两个对应的列表和问题
1.问题描写叙述: You are given two linked lists representing two non-negativenumbers. The digits are sto ...
- POJ2112Optimal Milking(二分法+floyd最短+网络流量)
职务地址:http://poj.org/problem?id=2112 近期忙着预习课本备考,没怎么刷题.(我是真的有在好好看书..)不敲题还是手痒痒.立即就邀请赛了,还是每晚睡觉前都拿来刷题吧.白天 ...
- IE不能上网、有道云笔记不能联网、各种软件主页不能联网解决办法一
其他的办法我几乎都试过了,读者可以无搜一下,我的问题是,我用Lantern.exe,所以只要打开这个就可以了! 我一直不知道是这个问题,困扰了好久QAQ