tjut 4876
来源:互联网 发布:访客网络连不上 编辑:程序博客网 时间:2024/06/16 07:39
#include <stdio.h> #include <string.h> #include <algorithm> using namespace std; int n,k,l,r; int vis[500],a[500],tem[500],s[500]; void set(int len,int sum) { vis[sum] = 1; if(len == k) return ; set(len+1,sum^tem[len]); set(len+1,sum); } int check() { memset(vis,0,sizeof(vis)); set(0,0); for(int i = l; i<=r; i++) if(!vis[i]) return 0; return 1; } void solve() { if(!check()) return ; int i,j; for(i = 0; i<k; i++) s[i] = tem[i]; do { memset(vis,0,sizeof(vis)); for(i = 0; i<k; i++) { int ans = 0; for(j = i; j<k+i; j++) { ans^=s[(j%k)]; vis[ans] = 1; } } for(i = l; i<=128; i++)//a[i]最大100,所以不会超过128 if(!vis[i]) { r = max(r,i-1); break; } } while(next_permutation(s+1,s+k)); } void dfs(int now,int len) { if(len == k) { solve(); return ; } for(int i = now; i<n; i++) { tem[len] = a[i]; dfs(i+1,len+1); } } int main() { int i,j; while(~scanf("%d%d%d",&n,&k,&l)) { for(i = 0; i<n; i++) scanf("%d",&a[i]); sort(a,a+n);//先排序,方便后面进行排列 r = l-1; dfs(0,0); if(r<l) printf("0\n"); else printf("%d\n",r); } return 0; }
0 0
- tjut 4876
- tjut 5289
- tjut 5288
- tjut 5294
- tjut 2586
- tjut 5296
- tjut 5297
- tjut 5299
- tjut 5384
- tjut 5387
- tjut 5386
- tjut 5381
- tjut 5400
- tjut 5399
- tjut 5396
- tjut 5398
- tjut 5412
- tjut 5410
- 记一次寻找围观学姐证件照的心得(burpsuite科普向)
- Windows 7搭建IIS本地服务器(Internet Information Server)(by 星空武哥)
- HBase读取数据卡住长时间不返回的原因分析
- Java中的泛型
- 驱动程序调测方法与技巧
- tjut 4876
- 5742 ( It's All In The Mind )
- Git自学之路(二)- Git初始配置和基本使用
- 微信网页返回到前一列表的历史位置(解决方案)/兼容苹果
- RXJava学习记录
- UVA 11076 Add Again
- HotSpot VM GC 的种类
- 多控制器之间的跳转
- Android--自定义对话框--AlertDialog