UVA1572Self-Assembly
来源:互联网 发布:sdn会取代那些传统网络 编辑:程序博客网 时间:2024/06/06 11:49
//UVA1572Self-Assemly#include<cstdio>#include<cstring>#include<cstdlib>//#define LOCALint num(char a1, char a2) {return (a1 - 'A') * 2 + (a2 == '+' ? 0 : 1);}char G[60][60];int visited[60];void connect(char a1, char a2, char b1, char b2) {if(a1 == '0' || b1 == '0') return ;int u = num(a1, a2)^1;//最低位取反,使得所表示的元素正负号反向 int v = num(b1, b2);G[u][v] = 1; } bool dfs(int i) {visited[i] = -1;//正在被访问中for(int j = 0; j < 52; j++) { if(G[i][j] && visited[j] < 0) return false;if(G[i][j] && !visited[j] && !dfs(j)) return false;}visited[i] = 1;//访问完成return true; }bool Nocycle() {for(int i = 0; i < 52; i++) {if(!visited[i] && !dfs(i)) return false;}return true;}int main() {int n;#ifdef LOCALfreopen("UVA1572in.txt", "r", stdin);freopen("UVA1572out.txt", "w", stdout);#endifwhile((scanf("%d", &n)) == 1 && n) {char s[10];memset(G, 0, sizeof(G));memset(visited, 0, sizeof(visited));while(n--) {scanf("%s", s);for(int i = 0; i < 4; i++) {for(int j = 0; j < 4; j++) {if(i != j) {connect(s[i * 2], s[i * 2 + 1], s[j * 2], s[j * 2 + 1]);//制造有向边 }}}}if(Nocycle()) printf("bounded\n");else printf("unbounded\n");}return 0;}/*3A+00A+A+ 00B+D+A- B-C+00C+1K+K-Q+Q-*/
阅读全文
0 0
- UVA1572Self-Assembly
- Assembly
- Assembly
- assembly
- Assembly.Load,Assembly.LoadFile 和 Assembly.LoadFrom
- Assembly学习心得
- Assembly 学习心得
- Assembly Tutorial
- Assembly学习心得
- Assembly学习心得
- .NET Assembly
- Assembly学习
- Assembly学习心得
- Assembly.cs
- assembly language
- Assembly.Unload
- Assembly Manifest
- Assembly.LoadFrom
- 清除重复的点Point
- JVM性能调优
- Deep Learning(深度学习)学习笔记整理系列之(三)
- 小白带你学安卓——Activity的启动模式
- PM 前进之路——Axure入门学习
- UVA1572Self-Assembly
- 轨迹球鼠标升级!
- js如何查找上级作用域
- SOCKET编程(C语言实现)
- IOC细解+示例
- hadoop (master/slave)主从结构
- solaris11开启root用户的ssh登录&telnet登录&ftp功能
- Java反射
- scss在angular+gulp中的使用(自己项目记录)