UVA193
来源:互联网 发布:人工智能对人类的危害 编辑:程序博客网 时间:2024/06/14 13:23
题目的意思是给输入的图涂颜色,只能涂成黑色或白色,而且不能相连的两点都是黑色,都是白色没关系。。
问怎么涂黑色最多,哪几个是黑色;
思路就是首先把点都涂成白色。
然后从第一个点开始递归,如果这个点的所有相连点都是白色,那么把它涂成黑色,进行递归,然后不涂成黑色也进行递归(回溯的思想);
#include<iostream>using namespace std;const int N = 100 + 5;int link[N][N];int color[N];int n,k,m;int ok;int ans[N];void init () {for (int i = 0 ; i < N ;i++) {for (int j = 0 ; j < N ; j++) {link[i][j] = 0;}color[i] = 0;}m = 0;}void dfs(int cur,int num) {if (cur == n + 1) {if (num > m ) {m = num;int temp = 0;for (int i = 1 ; i <= n ; i++ ) {if(color[i] == 1)ans[temp++] = i;}}return;}ok = 1;for(int i = 1 ; i <= n ; i++) {if (link[cur][i]) {if (color[i] == 1) {ok = 0;break;}}}if (ok) {color[cur] = 1;dfs(cur + 1 ,num + 1);}color[cur] = 0;dfs(cur + 1 ,num);}int main () {int t ;int op,ed;cin >> t ;while (t--) {init();cin >> n >> k;while (k--) {cin >> op >> ed;link[op][ed] = link[ed][op] = 1;}dfs(1 , 0);cout << m << endl;for (int i = 0 ; i < m ; i++ ) {cout << ans[i];if (i != m - 1)cout << " ";}cout <<endl;}}
AC代码:
0 0
- UVa193
- UVA193
- uva193
- UVA193
- uva193 - Graph Coloring
- uva193继续回溯!!
- [回溯]Graph Coloring UVA193
- UVA193图染色问题
- UVa193图染色
- Swing JPanel 设置画布背景及自己绘图
- OC数组的正序倒序排序(数组元素为字符串)
- 【2779】找朋友 sdutoj
- (搜索,双向BFS)POJ.1915.Knight Moves
- 多线程同步用到的基本的Synchronization Object
- UVA193
- hdu--1004
- 5、判断一个单链表是否有回环
- hdu-oj 1262 寻找素数对
- (转载)纯Linux下的 ARM裸机调试环境搭建(GDB + JLink)
- Communicating with Hardware 《LDD3 学习笔记》
- poj1151 & hdu1542 Atlantis(扫描线+离散化+线段树)
- 详解IOS开发应用之并发Dispatch Queues
- PHP单例模式