Network Mess UVA
来源:互联网 发布:js动态控制div的边框 编辑:程序博客网 时间:2024/05/29 19:43
一种类似于试探法。由于仅仅只能是计算机代表的节点才能是外部节点,那么就假设第一个节点是根节点,然后从第二个节点开始,逐步测试是否能够找到某个内部的节点,使得该内部节点到所有的已经加入的外部节点的距离与待加入的外部节点的距离之差相等,如果找到,就保存差值,逐步扩展并且计算,具体实现见如下代码:
#include<iostream>#include<vector>#include<string>#include<set>#include<stack>#include<queue>#include<map>#include<algorithm>#include<cmath>#include<iomanip>#include<cstring>#include<sstream>#include<cstdio>#include<deque>#include<functional>using namespace std;const int MAX = 2005;int area[55][55];vector<int> R[MAX];int dist[MAX][55];int record[MAX];class Solve{public:int N;void Init(){memset(record,0,sizeof(record));for (int i = 1; i <= N; i++){for (int j = 1; j <= N; j++)cin >> area[i][j];}for (int i = 0; i < MAX; i++) R[i].clear();memset(dist, 0, sizeof(dist));}void dfs(int i,int pa,int k){for (int ind = 0; ind < R[i].size(); ind++){int v = R[i][ind];if (v == pa) continue;dist[v][k] = dist[i][k] + 1;dfs(v, i, k);}}void Deal(){Init();int amount = 1;for (int ind = 2; ind <= N; ind++){for (int i = 1; i <= amount; i++){int dis = area[ind][1] - dist[i][1];int j;for (j = 1; j < ind; j++){if (area[ind][j] - dist[i][j] != dis) break;}if (j == ind){while (dis > 0){amount++;R[amount].push_back(i);R[i].push_back(amount);record[amount]++;record[i]++;for (int k = 1; k < ind; k++){dist[amount][k] = dist[i][k] + 1;}dis--;i = amount;}dfs(i,0,ind);break;}}}sort(record+1,record+amount+1);for (int i = 1; i < amount; i++){if (record[i] > 1) cout << record[i] << " ";}cout << record[amount] << endl;}};int main(){Solve a;while (cin >> a.N){if (a.N == 0) break;a.Deal();}return 0;}
阅读全文
0 0
- Network Mess UVA
- Aizu 1263 Network Mess 树的直径+构造
- Network UVA
- uva 1086 - The Ministers' Major Mess(TwoSat)
- UVA 1493 - Draw a Mess(并查集)
- uva 1493 - Draw a Mess(并查集)
- UVA 1086 - The Ministers' Major Mess(2-sat)
- uva 1086 - The Ministers' Major Mess(2 SAT)
- UVA 1493 Draw a Mess(并查集+set)
- UVA 10369 Arctic Network
- UVA 10369 - Arctic Network
- UVa 793 - Network Connections
- UVa 10369 - Arctic Network
- UVa 10369 - Arctic Network
- uva 1267 Network
- Uva-Live Archive3902-Network
- uva 1267 Network
- Uva 10369 - Arctic Network
- ZOJ 3981 && 2017CCPC秦皇岛 A:Balloon Robot
- 20171102
- Jetty使用教程(一)——开始使用Jetty
- 持续更新《Cortex-M0内核MCU的IAP升级》
- 将单链表的每k个节点之间逆序
- Network Mess UVA
- post获取网页post用法
- 【分享】regsvr32 不是内部或外部命令,也不是可运行的程序或批处理文件
- Php7 安装(linux)
- Luogu 3378(堆)
- Digits用于深度学习
- linux安装redis
- 设计模式之单例模式——Python实现
- leveldb和rocksdb在大value场景下的一些问题