LA 2965 Jurassic Remains 中途相遇法 .
来源:互联网 发布:头上粉色爱心 软件 编辑:程序博客网 时间:2024/06/02 21:27
题目地址:http://vjudge.net/problem/UVALive-2965
题目就是在n行中任意组合,是的他们代表的数值异或为0;
很明显直接暴力,列出1~(1<<N)的所有子集 ,为了加快速度用中途相遇法
#include <bits/stdc++.h>using namespace std;#define REP(i,a,b) for(int i=a;i<=(b);++i)#define REPD(i,a,b) for(int i=a;i>=(b);--i)#define max(a,b) ((a)>(b)?(a):(b))#define min(a,b) ((a)<(b)?(a):(b))int A[25]; char str[1000];std::map<int, int> table;int bitCount(int x){return x?bitCount(x>>1)+(x&1):0;}int main(int argc, char const *argv[]){int N;while(scanf("%d",&N)==1){REP(i,0,N-1){scanf("%s",str);A[i]=0;for(int j=0;str[j];++j) A[i]|=1<<(str[j]-'A');}table.clear();int n1=N/2,n2=N-n1;REP(i,0,(1<<n1)-1) { //计算1~n1的xor bitCount 大的 子集合int x=0;REP(j,0,n1-1) if((1<<j)&i) x^=A[j];if(!table.count(x)||bitCount(table[x])<bitCount(i)) table[x]=i;}int ans=0;REP(i,0,(1<<n2)-1){int x=0;REP(j,0,n2-1) if((1<<j)&i) x^=A[n1+j];if(table.count(x)&&bitCount(table[x])+bitCount(i)>bitCount(ans)) ans=table[x]^(i<<n1);}printf("%d\n", bitCount(ans));REP(i,0,N) if((1<<i)&ans) printf("%d ", i+1);putchar('\n');}return 0;}
0 0
- LA 2965 - Jurassic Remains 中途相遇法
- LA 2965 Jurassic Remains / 中途相遇法
- LA 2965 Jurassic Remains 中途相遇法 .
- 【UVALive】2965 Jurassic Remains 中途相遇法
- UVALive - 2965 Jurassic Remains 状态压缩+中途相遇法
- UVALive 2965-Jurassic Remains (Mitm)中途相遇法+bitmask
- Jurassic Remains,NEERC 2003,中途相遇法
- uva 1326 Jurassic Remains(中途相遇法)
- Uva 1326 - Jurassic Remains 中途相遇法
- uva1326 - Jurassic Remains 中途相遇法
- UVA 1326 Jurassic Remains 中途相遇法
- POJ 1903 Jurassic Remains -- 中途相遇法
- poj 1903 Jurassic Remains 中途相遇法
- LA --- 2965 Jurassic Remains 数相同的大写字母 【思维 + 状态压缩枚举 + 中途相遇法(折半搜索)】
- POJ 1903 - Jurassic Remains 中途相遇法(枚举)
- uva 1326 Jurassic Remains(中途相遇法+位运算)
- 【中途相遇+二进制】【NEERC 2003】Jurassic Remains
- 中途相遇法(侏罗纪,LA 2965)
- 新手引导页
- 多线程五
- 洛谷 P2051 [AHOI2009]中国象棋
- redis数据备份的两种机制rdb aof
- 【poj 3070】 Fibonacci
- LA 2965 Jurassic Remains 中途相遇法 .
- 关于上传头像到服务器的问题
- 欧拉工程第17题 用英文写出1到1000的所有数字需要多少个字母
- 去雾 - Non-Local Image Dehazing
- 程序员的自我修养-线程安全
- (附代码)根据输入信息构建不同人种类,统一打印不同国家地区的身高、体重信息(泛型数组应用,多态、重载、泛型、反射等概念体验)
- Android中在控件上显示倒计时
- React Native 定义组件(简单)
- [Tips]Java&&Android Tips