HDU5961(bitset,暴力)
来源:互联网 发布:nosql数据库的优点 编辑:程序博客网 时间:2024/05/01 20:41
竞赛图的性质
a -> b b -> c 则 a ->c
多画几个样例就可以总结出了 edge[a] & edge[b] = edge[b]
a连得边的集合 交上 b连的边的集合 = b连得边的集合。
处理集合的交集就用bitset就好了。
#include<bits/stdc++.h>using namespace std;const int maxn = 2022;const int maxm = maxn*maxn;#define mem(a,x) memset(a,x,sizeof a)struct node{ int v,next;}edge[maxm];int head[maxn] ,cnt;int n;char mp[maxn][maxn];bitset<maxn>b[maxn];void add_edge(int u,int v){ edge[cnt].v = v, edge[cnt].next = head[u]; head[u] = cnt++; b[u][v] = 1;}bool legal(char ch){ mem(head,-1); cnt = 0; for(int i=1;i<=n;i++) b[i].reset(); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(mp[i][j] == ch){ add_edge(i,j); } } } for(int i=1;i<=n;i++){ for(int j=head[i];j+1;j = edge[j].next){ int v = edge[j].v; if((b[i] & b[v] )!= b[v]) return 0; } } return 1;}int main(){ int t;scanf("%d",&t); while(t--){ scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%s",mp[i] + 1); } if(legal('P') && legal('Q')){ printf("T\n"); } else printf("N\n"); } return 0;}
暴力求解。。
#include<bits/stdc++.h>using namespace std;const int N = 2020;vector<int>G[N]; int n;char str[N][N];bool legal(char ch){ for(int i=0;i<n;i++){ for(int j=0;j<G[i].size();j++){ int v = G[i][j]; for(int k=0;k<G[v].size();k++){ int v2 = G[v][k]; if(str[i][v2] != ch) { return 0; } } } } return 1;}int main(){ int t;scanf("%d",&t); while(t--){ scanf("%d",&n); for(int i=0;i<=n;i++)G[i].clear(); for(int i=0;i<n;i++){ scanf("%s",str[i]); for(int j=0;j<n;j++){ if(str[i][j] == 'P') G[i].push_back(j); } } if(!legal('P')){ // cout<<"bb"<<endl; printf("N\n");continue; } for(int i=0;i<=n;i++)G[i].clear(); for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(str[i][j] == 'Q') G[i].push_back(j); } } if(!legal('Q')){ printf("N\n");continue; } else printf("T\n"); } return 0;}
0 0
- HDU5961(bitset,暴力)
- hdu5961传递(bitset乱搞)
- HDU5961 传递(bfs)
- hdu5961 传递(BFS)
- hdu5961 传递(图论)
- HDU5961传递(思维)
- hdu5961
- HDU 6085 暴力bitset
- hihoCoder 1236 Scores 解题报告(bitset + 分段暴力)
- ccpc合肥A题 hdu5961(bfs)
- bitset+暴力——校门外的树(增强版)
- HDU 5506:GT and set bitset+暴力
- USACO3.2 还是暴力+bitset学习
- 解题报告:hihoCoder_1236 Scores 分块bitset暴力
- HDU 4920 Matrix multiplication 暴力(bitset)
- Codeforces 707D Persistent Bookcase 暴力(bitset)
- 【暴力预处理+剪枝/bitset】Golf Bot UVALive
- HDU5961 传递
- 绝对定位居中
- java反射总结
- Fast rcnn and Faster rcnn 算法原理
- 【行人检测】之Joint Deep Learning联合深度学习
- 如何用几何画板动态演示电饭锅工作原理
- HDU5961(bitset,暴力)
- Union和Union All到底有什么区别
- 05 Java循环
- 在Swift中如何使用C中的Struct
- iOS 获取系统通讯录的两种方法
- UE4 VR 手柄代替鼠标滚轮(HTC VIVE)
- dwr的介绍和实例
- 一天一条Linux指令-killall
- 详解.htm.html.shtm.shtml的区别与联系