HDU6026(最短路)
来源:互联网 发布:知柏地黄丸女童能吃吗 编辑:程序博客网 时间:2024/06/08 02:40
Deleting Edges
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 479 Accepted Submission(s): 166
Problem Description
Little Q is crazy about graph theory, and now he creates a game about graphs and trees.
There is a bi-directional graph with n nodes, labeled from 0 to n−1. Every edge has its length, which is a positive integer ranged from 1 to 9.
Now, Little Q wants to delete some edges (or delete nothing) in the graph to get a new graph, which satisfies the following requirements:
(1) The new graph is a tree with n−1 edges.
(2) For every vertice v(0
#include<bits/stdc++.h>using namespace std;typedef long long ll;ll mod = 1e9 + 7;const int inf = 1e9;const int maxn = 100;int n;int Matrix[maxn][maxn];char s[maxn][maxn];int dis[maxn];int num[maxn];struct node{ int v; int d; bool operator < (const node &nx) const { return nx.d > d; }};void Dijkstra(){ priority_queue<node> Q; for(int i = 1; i <= n; i++) dis[i] = inf; memset(num, 0, sizeof(num)); node n0, nx, ans; n0.v = 1; n0.d = 0; Q.push(n0); dis[1] = 0; while(!Q.empty()) { nx = Q.top(); Q.pop(); int v = nx.v; int d = nx.d; if(d > dis[v]) continue; for(int i = 1; i <= n; i++) { if(Matrix[v][i] && dis[i] > dis[v] + Matrix[v][i]) { dis[i] = dis[v] + Matrix[v][i]; ans.v = i; ans.d = dis[i]; Q.push(ans); } } }}int main(){ while(~scanf("%d", &n)) { for(int i = 1; i <= n; i++) { scanf("%s", s[i] + 1); for(int j = 1; j <= n; j++) { Matrix[i][j] = s[i][j] - '0'; } } Dijkstra(); for(int i = 2; i <= n; i++) { ll res = 0; for(int j = 1; j <= n; j++) { if(i != j) { if(dis[j] + Matrix[j][i] == dis[i] && Matrix[j][i]) res++; } } num[i] = res; } ll ans = 1; for(int i = 2; i <= n; i++) { ans = (ans * num[i]) % mod; } printf("%lld\n", ans); } return 0;}
阅读全文
1 0
- HDU6026(最短路)
- HDU6026 Deleting Edges (最短路树计数)
- 最短路径-Deleting Edges-hdu6026
- 最短路 & 次短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 最短路
- 数组的添加和删除
- NSFileManager一般常用方法
- 取elecagreemodel表中 agreement_version 值最大的的协议号对应的协议名称,以及协议路径不为空的数据
- 缓存之EHCache(二)
- location.replace()和location.href=进行跳转的区别
- HDU6026(最短路)
- vector结构体排序与priority优先级队列自动排序对比
- 优盘病毒清理方法与预防措施
- nginx使用ngx.req.get_body_data()获取不到请求体内容
- 可重入内置锁
- Android插件收集
- 教你用Fiddler在电脑上抓手机上的包
- ios开发证书,描述文件,bundle ID的关系
- 学习easyUI之初次使用