当前位置:网站首页>HDU4876ZCC loves cards(多校题)
HDU4876ZCC loves cards(多校题)
2022-07-07 18:44:00 【全栈程序员站长】
大家好,又见面了,我是全栈君。
ZCC loves cards
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2362 Accepted Submission(s): 590
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
Author
镇海中学
Source
2014 Multi-University Training Contest 2
题意:给n个数。从中选出k个数,这k个数能够随意排列,一旦定了顺序就不能改变,在这个确定的顺序。选出m(m<=k)个数异或得到的值x,在这个顺序得到的全部x的值中找出一个最大值R,这些数中使得存在一个连续的范围L~R。
#include<stdio.h>
#include<string.h>
int n,k,L,ans[25];
int a[13],aa[13],R,flag[150];
int vist[10];
void find(int tk)
{
if(tk==k-1)
{
memset(flag,0,sizeof(flag));
for(int i=0;i<k-1;i++)
a[i+k]=a[i];
int maxa=0;
for(int i=0;i<k;i++)//枚举一个确定序列的连续片断的异或值
{
int x=a[i]; flag[x]=1; if(maxa<x)maxa=x;
for(int j=i+1;j-i+1<=k;j++)
{
x^=a[j]; flag[x]=1;if(maxa<x)maxa=x;
}
}
int r=0;
for(int i=L;i<=maxa;i++)//找出这个最大值R,使得这些数存在L~R范围的数都存在。
if(flag[i]==0)break;
else r=i;
if(r>R)R=r;
return ;
}
tk++;
for(int i=0;i<k;i++)
if(vist[i]==0)
{
a[tk]=aa[i]; vist[i]=1; find(tk); vist[i]=0;
}
}
bool panduan()//放宽条件(随意顺序)推断
{
memset(flag,0,sizeof(flag));
int maxa=0;
for(int i=1;i<(1<<k);i++)
{
int x=0;
for(int j=0;(1<<j)<=i;j++)
if((1<<j)&i)x^=aa[j];
flag[x]=1;
if(maxa<x)maxa=x;
}
int r=0;
for(int i=L;i<=maxa;i++)
if(flag[i]==0)break;
else r=i;
return r>R;
}
void CNM(int tk,int i)
{
if(tk==k-1)
{
if(panduan())
find(-1);
return ;
}
tk++;
for(int j=i+1;j<n;j++)
{
aa[tk]=ans[j]; CNM(tk,j);
}
}
int main()
{
while(scanf("%d%d%d",&n,&k,&L)>0)
{
R=0; memset(vist,0,sizeof(vist));
for(int i=0;i<n;i++)
scanf("%d",&ans[i]);
CNM(-1,-1);
printf("%d\n",R);
}
}
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116456.html原文链接:https://javaforall.cn
边栏推荐
- I Basic concepts
- 微服务远程Debug,Nocalhost + Rainbond微服务开发第二弹
- Implement secondary index with Gaussian redis
- 使用 BR 恢复 Azure Blob Storage 上的备份数据
- CodeSonar通过创新型静态分析增强软件可靠性
- C语言多角度帮助你深入理解指针(1. 字符指针2. 数组指针和 指针数组 、数组传参和指针传参3. 函数指针4. 函数指针数组5. 指向函数指针数组的指针6. 回调函数)
- 数值法求解最优控制问题(〇)——定义
- How to implement safety practice in software development stage
- [award publicity] issue 22 publicity of the award list in June 2022: Community star selection | Newcomer Award | blog synchronization | recommendation Award
- 恢复持久卷上的备份数据
猜你喜欢
随机推荐
I wrote a markdown command line gadget, hoping to improve the efficiency of sending documents by garden friends!
Make this crmeb single merchant wechat mall system popular, so easy to use!
awk处理JSON处理
CodeSonar如何帮助无人机查找软件缺陷?
【网络原理的概念】
Alibaba cloud award winning experience: how to mount NAS file system through ECS
字符串中数据排序
恶魔奶爸 A0 英文零基础的自我提升路
Mongodb learn from simple to deep
How to choose fund products? What fund is suitable to buy in July 2022?
寫一下跳錶
Update iteration summary of target detection based on deep learning (continuous update ing)
目标:不排斥 yaml 语法。争取快速上手
Network principle (1) - overview of basic principles
理财产品要怎么选?新手还什么都不懂
Phoenix JDBC
恶魔奶爸 C
论文解读(ValidUtil)《Rethinking the Setting of Semi-supervised Learning on Graphs》
95年专注安全这一件事 沃尔沃未来聚焦智能驾驶与电气化领域安全
Mrs offline data analysis: process OBS data through Flink job