hdu 5294 Tricks Device(最短路)
来源:互联网 发布:论文数据自己瞎编的 编辑:程序博客网 时间:2024/06/05 16:19
题目链接:hdu 5294 Tricks Device
#include <cstdio>#include <cstring>#include <queue>#include <algorithm>using namespace std;const int maxn = 60000 + 5;const int inf = 0x3f3f3f3f;int N, M, E, first[maxn], jump[maxn * 2], link[maxn * 2], val[maxn * 2];inline void addEdge(int u, int v, int w) {jump[E] = first[u];link[E] = v;val[E] = w;first[u] = E++;}void init () {E = 0;memset(first, -1, sizeof(first));int u, v, w;for (int i = 0; i < M; i++) {scanf("%d%d%d", &u, &v, &w);addEdge(u - 1, v - 1, w);addEdge(v - 1, u - 1, w);}}struct Node {int w, d, v;Node (int w = 0, int d = 0, int v = 0) {this->w = w;this->d = d;this->v = v;}bool operator < (const Node &a) const {if (w != a.w)return w > a.w;return d > a.d;}};int dp[maxn], dis[maxn], vis[maxn];int dijkstra(int s, int t) {priority_queue<Node> Q;memset(vis, 0, sizeof(vis));memset(dp, inf, sizeof(dp));memset(dis, inf, sizeof(dis));dp[s] = dis[s] = 0;Q.push(Node(dp[s], dis[s], s));vis[s] = 1;while (!Q.empty()) {int u = Q.top().v;vis[u] = 0;Q.pop();for (int i = first[u]; i + 1; i = jump[i]) {int v = link[i];int w = val[i];if (dp[u] + w < dp[v] || (dp[u] + w == dp[v] && dis[u] + 1 < dis[v])) {dp[v] = dp[u] + w;dis[v] = dis[u] + 1;if (vis[v] == 0) {vis[v] = 1;Q.push(Node(dp[v], dis[v], v));}}}}return dis[t];}int dfs (int u, int f) {if (u == N - 1)return 1;int ret = 0;for (int i = first[u]; i + 1; i = jump[i]) {int v = link[i];if (v == f || dp[u] + val[i] != dp[v])continue;if (dfs(v, u) > 0) ret++;}return ret;}void solve () {int ans = M - dijkstra(0, N-1);printf("%d %d\n", dfs(0, -1), ans);}int main () {while (scanf("%d%d", &N, &M) == 2) {init();solve();}return 0;}
0 0
- hdu 5294 Tricks Device(最短路)
- hdu 5294 Tricks Device(最短路+最大流)
- hdu 5294 Tricks Device(最短路 + 最大流)
- 【HDU 5294】Tricks Device(最短路+最大流)
- HDU 5294 Tricks Device(最短路+最大流)
- 最短路,网络流(HDU 5294,Tricks Device)
- hdu HDU 5294 - Tricks Device(最短路+最小割)
- 【网络流+最短路】 HDU 5294 Tricks Device
- Tricks Device (hdu 5294 最短路+最大流)
- HDU 5294 - Tricks Device(最短路+最小割)
- hdu 5294 Tricks Device 最短路建图+最小割
- HDU 5294 Tricks Device(最短路+最小割)
- hdu 5294 Tricks Device 最短路+最大流
- 多校 hdu 5294 Tricks Device 最短路+最大流
- HDU 5294 Tricks Device (最短路+网络流)
- HDU 5294 Tricks Device (最大流+最短路)
- HDU 5294 Tricks Device 最短路+最小割
- HDU 5294(Tricks Device-最短路最小割)[Template:SPFA]
- C++ 智能指针详解
- 青岛高收费电话加盟 2014好项目 电话群呼器
- 指针使用注意事项
- 每天一个Linux命令-11(Netstat 详解)
- 腾讯、阿里2014实习招聘面经
- hdu 5294 Tricks Device(最短路)
- 单片机small、compact、large存储模式
- linux 命令
- Sort List
- C#接口性能测试--计算执行时间
- Vbs脚本经典教材
- 四色问题
- 通用寄存器区四个寄存器
- MD5加密算法和解密算法