【位运算+暴力】Codeforces Beta Round #86 (Div. 2 Only) B
2011-09-09 13:18
337 查看
本想用图染色的,后来研究了一下才知道这个想法很傻很天真,因为Welch Powell 算法只能求出最小用几种色,不能求出最大有哪几个共存点!
还有,再一次被for里面的i坑了
,i里有i,结果查了半天才知道这个诡异的家伙
复杂度:O((1<<n)*n^2),最坏也是65536*256=16777216,2s肯定可以跑完,而且cf的服务器很强大
还有,再一次被for里面的i坑了
,i里有i,结果查了半天才知道这个诡异的家伙
复杂度:O((1<<n)*n^2),最坏也是65536*256=16777216,2s肯定可以跑完,而且cf的服务器很强大
#include <map> #include <set> #include <list> #include <queue> #include <deque> #include <stack> #include <string> #include <time.h> #include <cstdio> #include <math.h> #include <iomanip> #include <cstdlib> #include <limits.h> #include <string.h> #include <iostream> #include <algorithm> using namespace std; #define LL long long #define PI acos(-1.0) #define N 20 #define MAX INT_MAX #define MIN INT_MIN #define eps 1e-8 #define FRE freopen("a.txt","r",stdin) int n,m; string str ; int g ; int id ; vector<string> v; int get(string a){ int i; for(i=0;i<n;i++){ if(str[i]==a) return i; } } int main(){ //FRE; while(scanf("%d%d",&n,&m)!=EOF){ int i,j,k; for(i=0;i<n;i++){ cin>>str[i]; } memset(g,0,sizeof(g)); while(m--){ string a,b; cin>>a>>b; int s=get(a); int t=get(b); g[s][t]=g[t][s]=1; } int maxm=0; for(i=0;i<(1<<n);i++){ int cnt=0; int t=0; memset(id,0,sizeof(id)); int ii=i; while(ii){ if(ii&1){ t++; id[cnt]=1; } ii>>=1; cnt++; } bool flag=1; for(j=0;j<n;j++){ for(k=0;k<n;k++){ if(id[j]==1 && id[k]==1 && g[j][k]){ flag=0; break; } } if(!flag)break; } if(flag){ if(t>maxm){ v.clear(); maxm=t; for(j=0;j<n;j++){ if(id[j]) v.push_back(str[j]); } } } } sort(v.begin(),v.end()); printf("%d\n",maxm); for(i=0;i<maxm;i++) cout<<v[i]<<endl; } return 0; }
相关文章推荐
- 暴力/DP Codeforces Beta Round #22 (Div. 2 Only) B. Bargaining Table
- 图论/暴力 Codeforces Beta Round #94 (Div. 2 Only) B. Students and Shoelaces
- Codeforces Beta Round #85 (Div. 1 Only) B. Petya and Divisors 暴力
- Codeforces Round VK Cup 2015 - Round 1 (unofficial online mirror, Div. 1 only)E. The Art of Dealing with ATM 暴力出奇迹!
- Codeforces Beta Round #4 (Div. 2 Only) C. Registration system 暴力or 字典树or哈希
- Codeforces Beta Round #92 (Div. 1 Only) A. Prime Permutation 暴力
- codeforces水题100道 第十七题 Codeforces Beta Round #25 (Div. 2 Only) A. IQ test (brute force)
- Codeforces Beta Round #6 (Div. 2 Only) A. Triangle
- Codeforces Round #460 (Div. 2) 【A B C】【水】【暴力】
- 【推导】【暴力】Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) C. Five Dimensional Points
- Codeforces Beta Round #6 (Div. 2 Only) E. Exposition
- Codeforces Round #306 (Div. 2)A B C D 暴力 位/暴力 暴力 构造
- hdu 2721(字符串处理,位运算 暴力)
- 【Codeforces Round 340 (Div 2)C】【暴力排序枚举】Watering Flowers 2个灌溉器灌溉所有点最小的rr+RR
- 【Wunder Fund Round 2016 (Div 1 + Div 2 combined)B】【暴力 贪心】Guess the Permutation 全排列a[i][j]=min(p[i],p
- Codeforces Round #408 (Div. 2) C. Bank Hacking(暴力啊!暴力)
- Codeforces Beta Round #73 (Div. 2 Only)——A,B,C
- Codeforces Round #345 (Div. 2) D. Image Preview 暴力 二分
- 【HDU5635 BestCoder Round 74 (div2)A】【贪心 暴力】LCP Array 相邻后缀最大相同前缀 输出字符串方案数
- Codeforces Beta Round #83 (Div. 1 Only) E.Darts 凸多边形面积交