UVA 10160 Servicing Stations
2015-08-17 18:14
246 查看
分析
给定一些城镇和相邻关系,如果要建造服务站,服务站只能服务建造地所在的城镇和其相邻的城镇,问最少要建几个服务站?对每一个城镇,判断是否需要在此处建造服务站,即相邻的城镇是否还需要建站。如果不需要则此处不建站(如该镇自身未建站则需建站)。继续判断下一个城镇。这里进行了一定剪枝,如果当前城镇之前的城镇未能享受服务,并且其相邻的最大城镇小于当前城镇,即不可能再使之前那个城镇享受到服务,所以这种安排是不可以的。
代码
#include <cstdio> #include <cstring> #include <algorithm> #define MAX_V 40 using std::sort; int V, E, min; int edge[MAX_V][MAX_V], top[MAX_V], vis[MAX_V]; void dfs(int p, int n, int s) { if (n == V && s < min) { min = s; return; } if (p > V || s >= min) return; for (int i = 1; i < p; i++) if (!vis[i] && edge[i][top[i]-1] < p) return; int r = 0; for (int i = 0; i < top[p]; i++) { if (!vis[edge[p][i]]) r++; vis[edge[p][i]]++; } if (r) dfs(p + 1, n + r, s + 1); for (int i = 0; i < top[p]; i++) vis[edge[p][i]]--; dfs(p + 1, n, s); } void solve() { for (int i = 1; i <= V; i++) { edge[i][top[i]++] = i; sort(edge[i], edge[i]+top[i]); } min = V; dfs(1, 0, 0); printf("%d\n", min); } int main() { while (scanf("%d%d", &V, &E), (V + E)) { memset(edge, 0, sizeof(edge)); memset(top, 0, sizeof(top)); memset(vis, 0, sizeof(vis)); int v1, v2; for (int i = 0; i < E; i++) { scanf("%d%d", &v1, &v2); edge[v1][top[v1]++] = v2; edge[v2][top[v2]++] = v1; } solve(); } return 0; }
题目
Description
A company offers personal computers for sale in N towns (3 ≤ N ≤ 35). The towns are denoted by 1, 2, … , N. There are direct routes connecting M pairs from among these towns. The company decides to build servicing stations in several towns, so that for any town X, there would be a station located either in X or in some immediately neighbouring town of X.Write a program for finding out the minumum number of stations, which the company has to build, so that the above condition holds.
Input
The input consists of more than one description of town (but totally, less than ten descriptions). Every description starts with number N of towns and number M of pairs of towns directly connected each other. The integers N and M are separated by a space. Every one of the next M rows contains a pair of connected towns, one pair per row. The pair consists of two integers for town’s numbers, separatedby a space. The input ends with N = 0 and M = 0.
Output
For every town in the input write a line containing the obtained minimum.Sample Input
8 12 1 2 1 6 1 8 2 3 2 6 3 4 3 5 4 5 4 7 5 6 6 7 6 8 12 51 12 10 7 12 2 8 1 12 9 12 11 3 11 7 4 12 3 4 2 3 5 3 2 5 10 1 7 2 1 6 6 5 6 8 4 11 8 7 3 7 11 2 11 9 3 10 9 5 8 9 8 10 4 10 7 6 5 8 1 5 4 7 4 6 4 5 2 10 2 4 6 11 11 12 12 8 8 3 11 10 10 5 7 9 9 6 2 6 7 5 1 2 4 8 3 9 10 7 6 3 1 8 25 251 24 25 22 17 19 20 9 23 25 10 9 17 5 15 1 12 20 16 4 15 12 11 11 23 15 10 21 24 15 20 10 13 23 22 4 3 25 21 18 14 22 5 11 14 15 18 11 15 4 8 15 23 13 1 4 13 7 16 18 24 25 6 6 12 17 4 19 22 2 20 16 21 7 1 9 19 10 1 16 17 24 5 12 22 24 17 20 13 15 7 6 21 23 24 19 21 16 19 21 14 25 23 3 20 23 13 8 15 7 6 2 19 11 19 3 25 21 23 9 12 7 13 6 11 12 8 14 9 20 7 3 17 24 6 12 3 5 7 5 21 25 9 13 16 18 25 15 12 2 5 2 17 4 20 4 7 7 17 13 24 21 2 17 10 8 7 10 18 17 12 14 7 25 4 7 25 2 24 9 21 10 6 21 11 11 9 18 12 19 3 9 20 15 2 25 11 22 21 14 19 8 10 8 17 20 10 2 1 6 8 18 17 6 3 22 3 6 5 18 3 18 9 24 19 23 12 19 17 20 18 10 24 22 24 3 7 17 23 18 23 2 3 17 11 22 6 24 11 22 16 6 15 5 9 6 23 5 16 4 1 19 15 21 10 11 7 6 13 9 15 11 5 4 24 16 6 11 1 14 20 5 13 17 15 19 6 4 9 10 14 1 17 5 12 8 21 16 15 18 4 16 25 15 21 19 18 11 3 2 11 19 12 23 19 5 19 6 17 20 1 18 22 14 25 1 25 9 24 17 14 12 24 10 22 8 22 10 9 25 12 22 13 20 6 23 20 13 8 3 16 22 1 14 5 15 14 2 22 18 2 4 2 13 18 2 16 3 15 11 8 2 10 17 25 8 5 4 22 23 4 20 21 16 8 23 10 22 25 12 14 25 15 22 11 1 19 13 3 11 10 1 6 8 14 5 23 10 12 24 8 6 14 18 21 13 12 22 20 15 22 2 6 3 8 16 18 14 13 2 8 11 16 13 11 3 21 16 10 23 3 7 24 3 24 16 12 23 16 25 19 13 19 1 18 2 23 20 24 7 12 13 15 24 1 25 13 15 24 14 24 14 1 2 14 19 4 4 10 21 7 7 2 21 4 8 18 11 18 25 20 17 20 18 7 4 11 8 19 13 2 16 24 18 55 9 14 17 7 14 6 12 7 3 7 11 3 7 15 4 15 14 2 5 6 13 9 14 4 12 2 16 4 3 6 13 8 5 10 7 5 16 13 4 11 10 17 9 11 9 6 10 11 1 5 11 6 6 18 10 3 6 12 18 15 4 17 9 7 4 3 7 14 16 17 5 3 13 6 1 10 2 3 6 4 12 4 12 9 14 10 13 17 11 14 1 12 16 3 16 6 2 9 18 13 13 2 6 17 16 9 15 12 17 5 27 308 5 22 9 24 16 19 25 24 23 2 10 16 5 15 22 19 27 21 9 19 6 15 16 11 3 15 15 19 27 14 9 23 13 12 19 25 5 23 14 6 2 13 21 20 10 13 1 4 23 27 10 15 15 1 6 25 17 23 25 10 8 18 26 22 20 7 11 19 26 7 25 3 23 13 26 18 27 25 18 10 5 4 19 4 14 19 24 16 25 23 5 21 12 10 15 27 12 5 4 10 4 20 17 16 18 15 15 25 24 3 13 15 26 6 17 12 25 8 4 8 6 8 5 11 23 3 21 4 20 1 16 7 8 3 20 19 8 15 26 14 12 11 13 18 24 11 14 5 17 27 14 3 26 16 8 19 20 3 4 18 7 18 7 4 16 13 21 16 22 16 5 16 4 3 24 5 1 16 24 18 6 1 1 2 15 20 19 7 15 2 5 25 27 8 27 12 9 21 26 10 26 17 16 23 21 7 17 14 26 5 23 10 13 19 10 5 1 18 22 20 2 11 6 17 13 11 4 15 7 17 14 2 1 12 20 24 1 9 23 1 23 19 1 10 23 11 24 22 17 18 18 19 20 18 22 13 25 1 27 18 18 2 4 9 18 21 12 24 17 21 25 9 24 4 14 23 7 8 4 25 19 27 24 6 16 27 11 6 7 22 12 25 21 12 16 14 22 14 22 6 14 21 5 20 20 6 18 5 12 20 2 10 11 8 16 6 26 27 16 25 19 2 22 8 16 18 3 13 2 7 5 1 1 19 11 3 3 10 12 9 24 17 9 11 11 14 26 15 26 13 8 5 17 9 3 21 13 7 26 21 17 1 13 14 1 3 7 9 3 16 14 25 13 4 19 3 9 14 7 23 5 3 27 5 21 10 12 16 20 14 26 23 11 7 4 23 21 8 11 25 13 21 17 2 15 23 2 20 17 20 18 3 15 9 22 25 19 26 19 17 12 18 12 2 3 22 10 19 22 21 21 25 5 7 19 12 19 6 11 21 2 3 25 26 24 14 2 26 10 11 13 20 10 17 13 25 8 17 15 12 7 25 25 18 4 14 14 7 6 9 1 7 6 10 27 11 8 23 6 2 24 2 2 22 27 9 3 26 15 16 3 12 9 5 16 9 24 1 26 12 9 3 1 11 12 22 20 11 10 27 22 18 13 6 15 22 13 17 7 24 27 7 26 24 7 15 24 8 12 6 6 21 19 21 19 5 23 12 25 20 9 13 15 21 6 5 4 26 5 2 10 9 27 6 8 10 25 2 9 2 9 18 7 6 4 6 10 20 24 15 2 8 22 9 19 24 16 8 13 1 11 17 1 21 18 11 17 25 23 6 16 20 11 26 5 13 27 2 11 22 27 20 16 2 22 27 24 23 10 22 26 20 14 10 12 8 4 5 2 4 1 4 3 2 3 1 4 3 23 100 7 12 18 12 1 2 22 3 9 19 21 8 16 6 5 19 10 3 14 4 9 7 11 12 3 21 23 16 8 12 2 6 2 16 6 11 2 22 15 22 3 4 1 16 21 2 14 18 5 9 11 2 19 3 3 23 8 14 23 19 4 17 13 14 23 9 4 9 4 15 12 14 20 10 5 13 22 6 8 17 19 12 4 11 20 9 1 11 15 17 22 7 17 2 23 18 14 5 10 21 4 6 15 21 7 10 11 19 19 7 12 15 2 10 13 23 11 5 17 6 13 3 20 16 17 19 22 17 8 6 5 12 18 5 2 20 19 8 9 8 23 2 14 3 16 5 13 7 5 20 13 18 4 20 22 18 9 1 18 16 8 23 13 19 17 23 7 18 18 17 16 7 19 16 16 9 4 8 18 2 10 8 18 11 14 15 7 1 6 13 14 10 10 19 8 22 17 11 4 22 28 260 18 14 13 11 9 5 5 19 15 6 8 9 14 2 14 13 5 23 28 25 17 14 18 27 11 2 16 20 25 16 23 2 28 22 13 2 27 13 8 27 20 12 18 24 22 5 22 25 3 13 12 26 7 26 7 19 10 26 27 25 22 13 4 3 22 6 17 7 13 23 8 14 12 13 10 15 15 18 26 16 21 16 3 18 15 8 8 11 7 21 21 26 22 3 16 15 18 6 24 20 19 15 26 27 22 4 25 10 12 24 7 2 19 16 3 7 24 7 7 28 6 8 2 24 3 12 16 8 23 10 18 25 3 2 5 25 12 6 6 24 28 10 14 24 24 13 12 10 9 23 17 8 27 7 15 3 13 7 26 18 21 25 22 7 3 14 15 22 12 19 8 18 4 16 7 6 19 4 7 15 25 8 22 26 17 27 22 1 21 28 20 22 12 17 10 17 15 12 4 21 6 5 18 20 19 3 9 2 21 2 6 13 20 11 4 9 20 1 14 27 9 10 18 9 4 23 8 1 22 12 2 27 5 1 13 19 10 27 22 8 25 6 28 27 11 19 8 13 3 27 16 12 9 12 6 14 9 22 5 21 13 4 8 7 27 9 26 4 14 15 25 1 3 8 11 17 7 25 1 2 23 6 14 10 23 14 28 23 24 22 24 26 11 24 5 11 17 15 28 6 28 16 10 2 22 11 20 5 4 8 2 18 1 13 23 12 25 12 17 5 13 21 23 22 3 5 4 27 25 2 27 23 27 12 1 4 17 20 19 23 1 19 14 22 25 23 15 28 4 28 11 21 2 6 5 15 11 26 14 9 16 5 21 17 21 10 13 10 24 5 16 17 16 11 13 15 14 19 10 18 19 8 21 27 7 14 24 21 10 19 20 23 28 20 18 5 22 17 11 23 19 27 16 9 9 25 6 9 24 16 11 6 10 5 22 27 15 9 20 14 2 22 26 8 4 7 23 18 10 24 24 28 10 22 24 25 18 17 4 25 16 14 18 19 2 28 20 21 9 26 24 17 19 26 3 16 10 16 3 6 14 21 11 7 9 21 18 21 4 12 11 12 17 25 14 26 14 28 20 7 25 3 18 13 19 21 8 5 9 7 6 16 26 2 8 12 11 15 26 28 1 6 11 10 2 19 14 1 8 28 27 16 12 28 19 20 18 12 19 24 23 33 23 13 14 13 6 22 21 17 8 18 17 8 13 22 7 2 21 10 9 23 15 8 18 11 3 17 2 6 13 17 15 20 20 18 6 9 16 12 21 15 3 10 6 10 7 19 15 5 7 10 17 9 22 7 20 14 17 16 1 13 6 19 13 11 16 13 14 74 5 3 2 5 9 6 11 10 10 6 13 7 13 5 12 13 8 3 6 7 12 5 10 4 7 2 2 8 4 11 2 10 9 11 3 4 14 1 8 9 2 4 9 13 10 13 3 11 6 3 7 10 6 13 14 10 14 5 5 7 11 13 8 13 2 1 14 7 13 14 2 9 3 12 8 10 10 12 10 3 12 4 6 1 9 14 11 14 12 7 1 5 14 2 1 8 11 8 11 7 2 13 9 3 2 6 4 6 10 5 11 2 8 12 6 5 3 13 10 1 5 4 1 13 5 9 8 14 11 1 4 13 6 11 4 1 7 3 1 9 9 10 11 12 12 2 12 6 23 207 11 10 19 12 13 12 23 15 18 7 7 19 22 23 6 10 17 23 16 10 18 17 15 17 3 9 9 11 20 6 4 17 14 22 18 2 20 18 5 13 5 17 20 15 22 16 5 7 13 22 8 14 4 11 6 12 5 15 4 23 18 6 13 20 15 3 18 21 11 12 22 17 2 4 20 11 12 22 4 6 20 23 21 12 6 5 12 1 11 22 5 11 7 10 20 22 7 13 1 14 12 7 13 3 8 22 3 21 21 16 5 2 4 22 14 19 19 18 3 10 12 10 19 4 7 4 6 19 16 2 9 10 20 17 15 2 5 23 23 10 5 12 17 16 19 13 22 10 15 4 3 11 12 3 7 21 7 8 18 10 2 10 5 8 3 8 12 15 7 15 23 21 11 2 9 19 17 14 4 13 5 16 23 13 17 11 1 3 10 15 20 16 16 7 3 17 16 12 12 23 15 19 3 6 21 20 20 2 23 14 21 8 2 21 11 21 13 6 23 1 7 22 7 14 15 9 21 22 19 11 8 10 7 6 19 22 9 6 10 13 19 10 20 3 20 8 21 19 6 21 2 23 16 13 9 8 13 21 17 13 6 23 1 18 22 2 23 8 8 16 20 10 5 4 5 14 2 17 18 14 15 8 7 3 3 18 13 14 18 8 17 6 4 12 16 23 8 1 2 9 20 14 23 3 15 13 9 22 1 6 2 14 3 19 18 15 14 16 20 9 11 18 7 2 7 9 18 13 15 21 16 3 16 18 11 8 1 11 6 16 17 19 7 20 2 1 10 4 12 14 8 2 20 19 11 7 6 8 4 18 18 12 10 5 18 5 1 16 3 4 8 19 17 7 15 22 19 2 4 8 1 19 9 18 10 21 14 3 1 10 5 21 5 9 8 13 12 8 3 2 2 6 2 12 12 20 9 14 20 4 2 13 17 8 17 33 14 15 4 8 11 6 16 4 6 10 17 13 10 13 15 5 7 6 13 8 1 12 7 17 11 13 16 5 16 11 5 12 12 13 8 5 8 6 13 3 7 14 4 2 14 10 17 14 1 4 11 12 10 17 13 5 17 12 11 8 15 13 4 11 13 16 32 132 18 27 20 25 19 9 1 13 8 30 16 24 22 8 3 27 30 25 17 18 17 20 8 26 9 12 6 31 5 10 6 28 3 22 2 21 2 25 27 10 31 21 29 10 23 30 22 19 29 7 2 30 28 25 15 23 9 4 1 23 7 24 14 28 20 10 20 23 28 21 12 2 4 14 29 3 30 21 12 26 28 7 28 29 15 32 21 17 2 29 16 15 19 15 14 27 29 20 6 26 24 6 1 8 7 15 29 19 18 15 9 24 8 29 12 10 23 4 11 4 11 1 4 2 18 9 5 8 25 29 30 27 10 19 16 19 9 15 16 28 20 31 30 29 30 24 5 13 23 7 19 25 27 31 31 29 27 16 18 21 10 16 7 2 14 30 9 8 18 31 17 22 17 13 30 32 14 22 25 18 7 9 17 10 4 17 31 32 6 1 13 20 27 25 26 10 22 6 11 18 21 13 6 19 12 8 10 18 20 8 2 6 27 6 28 9 17 24 16 25 30 15 22 26 3 31 30 3 21 26 23 3 4 12 22 25 23 22 23 14 17 7 7 11 19 24 20 14 29 4 24 12 28 27 19 18 17 3 2 18 22 28 15 10 27 91 6 25 9 3 9 15 9 5 8 24 27 24 12 20 11 17 15 10 3 22 10 26 11 24 2 10 27 7 5 15 26 19 22 5 2 24 19 4 24 4 6 15 21 13 13 27 5 10 19 20 2 21 9 2 19 3 26 15 18 3 14 3 6 14 18 17 15 13 5 14 14 9 10 27 5 2 25 4 9 1 4 17 20 25 26 3 18 10 19 11 6 13 23 19 26 20 10 11 16 7 18 22 17 13 21 15 26 13 9 21 9 4 22 4 8 13 2 6 4 15 3 10 12 11 13 10 22 20 9 25 4 7 7 26 3 23 27 23 26 5 16 5 26 11 25 27 17 24 6 18 9 19 2 1 13 23 13 22 20 3 27 16 26 27 2 8 11 18 1 22 20 10 17 19 2 16 4 16 27 3 14 17 19 28 10 7 6 11 19 9 12 14 13 2 3 14 7 2 15 4 16 14 7 14 6 15 7 9 3 18 12 19 6 16 10 17 6 13 3 2 8 15 9 14 13 17 11 5 10 3 8 12 7 4 5 14 16 18 19 2 25 35 25 2 16 5 23 13 13 9 3 15 12 24 2 16 8 21 5 22 19 22 18 1 5 8 3 13 15 7 22 11 19 18 4 14 24 5 24 6 17 2 22 12 14 25 13 17 13 6 21 17 19 3 16 21 12 14 19 10 6 17 5 20 9 16 17 8 15 12 8 10 18 32 7 13 4 18 16 9 17 2 6 2 2 13 14 3 9 8 1 17 18 10 6 17 4 7 14 18 15 14 9 5 1 15 15 11 3 9 15 17 4 15 18 3 3 5 16 5 16 4 3 2 5 7 10 14 12 2 12 6 13 4 9 17 5 1 3 2 2 3 1 2 0 0 32 59 6 9 29 25 24 31 32 3 5 22 14 11 30 26 22 31 12 21 30 4 27 14 17 8 8 19 27 11 8 3 30 2 20 17 20 16 16 9 5 4 24 15 31 28 19 30 4 16 10 21 31 6 14 30 20 24 9 24 26 18 25 14 24 28 16 2 27 3 12 5 15 22 32 22 2 17 31 3 23 9 24 23 13 7 27 29 23 19 27 10 5 3 23 1 31 21 9 27 26 14 28 25 30 16 17 28 30 31 5 6 15 21 28 26 18 30 21 30 21 99 19 20 13 17 9 19 17 3 6 9 13 10 12 2 21 20 11 18 18 2 21 10 18 14 4 6 3 6 20 13 13 11 17 21 9 3 20 1 16 14 1 13 7 14 1 2 16 10 2 9 14 11 19 6 6 7 19 15 9 7 9 5 13 7 14 15 4 9 19 3 15 5 12 3 17 5 15 10 9 15 2 15 16 15 8 19 19 12 10 14 12 15 13 18 20 7 13 9 5 14 5 3 20 3 2 7 1 9 13 12 11 5 6 14 17 12 10 9 10 2 16 4 18 6 10 5 19 18 4 3 18 20 14 17 19 10 2 20 18 3 4 12 9 14 11 21 11 15 21 13 8 20 14 20 21 8 15 20 19 14 16 6 12 5 8 11 12 9 17 7 13 6 2 13 18 16 5 6 2 8 8 17 8 1 6 12 17 4 7 12 10 8 2 5 18 15 19 21 0 0
Sample Output
2 2 1 3 1 1 3 2 7 1 1 4 5 5 7 8 5 1
相关文章推荐
- Windows下的calabash安装
- 归档和反归档以及文件管理
- 1137 计算系数
- Spring 通过AOP 来实现前置,环绕,异常通知,注解
- 人口红利已尽:iPhone 6S或迎销量大滑坡
- Mac上编译出现NSObjCRuntime.h unknown type name nsstring问题
- Mac 电脑添加代理服务器
- HDU 3062 Party (2-SAT模板题)
- ant exec task参数-c
- 数据库设计理论及应用(4)——概念结构设计
- Android应用更新介绍提醒框
- Agilefant安装
- AsyncTask在SDK 3.0前后的区别
- OpenMANO初探(二)
- SPOJ Longest Common Substring II
- learning Collection Framwork
- 黑马程序员--Java基础学习(运算符知识)第二天
- C. Arthur and Table(Codeforces Round #311 (Div. 2) 贪心)
- JSTL的时间格式化标签的使用
- [转载]C#控制台应用程序里调用自己写的函数的方法