题意:给定m<=50000的1-n有联通的图,求最多可以使K<=20条边变为0的情况下的最短路是多少。。

思路:简单的分层图最短路,对于每个点拆成K个点。。

然后求一边最短路。。

code:

 /*
* Author: Yzcstc
* Created Time: 2014/11/5 19:25:47
* File Name: revamp.cpp
*/
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<string>
#include<map>
#include<set>
#include<vector>
#include<queue>
#include<stack>
#include<ctime>
#define M0(x) memset(x, 0, sizeof(int) * (n+10))
#define MP make_pair
#define x first
#define y second
using namespace std;
typedef long long ll;
typedef pair<ll, int> pii;
const int maxn = ;
struct edge{
int v, w, next;
} e[maxn * ];
int last[maxn], tot;
int n, k, m; void add(const int &u,const int &v, const int& w){
e[tot] = (edge){v, w, last[u]}; last[u] = tot++;
} void init(){
int u, v, w;
memset(last, -, sizeof(int) * (n * k + ));
tot = ;
for (int i = ; i < m; ++i){
scanf("%d%d%d", &u, &v, &w);
add(u, v, w); add(v, u, w);
for (int i = ; i <= k; ++i){
add(u + i * n, v + i * n, w);
add(v + i * n, u + i * n, w);
add(u + (i-) * n, v + i * n, );
add(v + (i-) * n, u + i * n, );
}
}
} ll dis[maxn];
int vis[maxn];
void dij(){
priority_queue<pii, vector<pii>, greater<pii> > q;
int nt = n * k + n;
memset(vis, , sizeof(vis));
for (int i = ; i <= nt; ++i) dis[i] = (1LL<<);
pii tmp(, ); dis[] = ;
q.push(tmp);
int u, v;
while (!q.empty()){
u = q.top().y;
q.pop();
if (vis[u]) continue;
vis[u] = ;
for (int p = last[u]; ~p; p = e[p].next){
v = e[p].v;
if (dis[u] + e[p].w < dis[v]){
dis[v] = dis[u] + e[p].w;
tmp.x = dis[v], tmp.y = v;
q.push(tmp);
}
}
}
} void solve(){
dij();
ll ans = 1LL<<;
for (int i = ; i <= k; ++i)
ans = min(ans, dis[n+i*n]);
cout << ans << endl;
} int main(){
freopen("a.in", "r", stdin);
freopen("a.out", "w", stdout);
clock_t start, finish;
start = clock();
while (scanf("%d%d%d", &n, &m, &k) != EOF){
init();
solve();
}
finish = clock();
double t = (double)(finish - start) / CLOCKS_PER_SEC;
// printf("time = %.6f\n", t);
return ;
}

道路翻新 (Revamping Trails, USACO 2009 Feb)的更多相关文章

  1. USACO 2009 Feb 股票市场 Stock Market

    USACO 2009 Feb 股票市场 Stock Market Description 尽管奶牛们天生谨慎,她们仍然在住房抵押信贷市场中大受打击,现在她们准备在股市 上碰碰运气.贝西开挂了,她知道S ...

  2. BZOJ1579 USACO 2009 Feb Gold 3.Revamping Trails Solution

    标题效果:一个N积分m无向图边.它可以是路径k右边缘值变0,确定此时1-n最短路径长度. Sol:我以为我们考虑分层图,图复制k+1部分,每间0~k一层.代表在这个时候已经过去"自由边缘&q ...

  3. BZOJ1577 USACO 2009 Feb Gold 1.Fair Shuttle Solution

    权限题,不给传送门啦!在学校OJ上交的.. 有些不开心,又是一道贪心,又是一个高级数据结构的模板,又是看了别人的题解还写崩了QAQ,蒟蒻不需要理由呀. 正经题解: 首先,我们可以由「显然成立法」得出, ...

  4. 【BZOJ】【3398】【USACO 2009 Feb】Bullcow 牡牛和牝牛

    组合计数/乘法逆元 排列组合求总方案数 这个可以用一个一维的动态规划解决: f[i][0]表示第i头牛是牝牛的方案数 f[i][1]表示第i头牛是牡牛的方案数 则转移为:f[i][0]=f[i-1][ ...

  5. [USACO 2009 Feb Gold] Fair Shuttle (贪心+优先队列)

    题目大意:有N个站点的轻轨站,有一个容量为C的列车起点在1号站点,终点在N号站点,有K组牛群,每组数量为Mi(1≤Mi≤N),行程起点和终点分别为Si和Ei(1≤Si<Ei≤N).计算最多有多少 ...

  6. Bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级 dijkstra,堆,分层图

    1579: [Usaco2009 Feb]Revamping Trails 道路升级 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1573  Solv ...

  7. BZOJ 1579: [Usaco2009 Feb]Revamping Trails 道路升级( 最短路 )

    最短路...多加一维表示更新了多少条路 -------------------------------------------------------------------------------- ...

  8. 【BZOJ 1579】 1579: [Usaco2009 Feb]Revamping Trails 道路升级 (最短路)

    1579: [Usaco2009 Feb]Revamping Trails 道路升级 Description 每天,农夫John需要经过一些道路去检查牛棚N里面的牛. 农场上有M(1<=M< ...

  9. BZOJ_1579_[Usaco2009 Feb]Revamping Trails 道路升级_分层图最短路

    BZOJ_1579_[Usaco2009 Feb]Revamping Trails 道路升级_分层图最短路 Description 每天,农夫John需要经过一些道路去检查牛棚N里面的牛. 农场上有M ...

随机推荐

  1. 一天一经典Reducing the Dimensionality of Data with Neural Networks [Science2006]

    别看本文没有几页纸,本着把经典的文多读几遍的想法,把它彩印出来看,没想到效果很好,比在屏幕上看着舒服.若用蓝色的笔圈出重点,这篇文章中几乎要全蓝.字字珠玑. Reducing the Dimensio ...

  2. android中的requestFocus标签

    <requestFocus />标签用于指定屏幕中的焦点View 用法:置于Views标签内部 ex: <EditText             android:id=" ...

  3. Java(String)

    1>String类型判等 (1)请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? package StringPool; publi ...

  4. asp.net web api集成微信服务(使用Senparc微信SDK)

    /// <summary> /// 微信请求转发控制器 /// </summary> [RoutePrefix("weixin")] public clas ...

  5. 分享Db4o的便捷封装类源码

    导言 大家好,话说真是好久好久没写文章了,哈哈. 最近在写网站,个人对传统数据库天然抵触,感觉非常繁冗,即便是Entity Framework也过于庞杂了,Db4o这种轻量级且读写.配置都极其方便的新 ...

  6. nginx+tomcat负载均衡

    最近练习nginx+tomcat负载均衡.根据一些资料整理了大体思路,最终实现了1个nginx+2个tomcat负载均衡. 安装JDK 1>进入安装目录,给所有用户添加可执行的权限 #chmod ...

  7. Xmanager远程Centos 7 Xfce

    最近发现远程除了使用VNC还可以用Xmanager,孤陋寡闻了,通过这个远程软件,又把不怎么关注的Xwindow给了解了一遍. Xfce是一个自由软件,运行在类Unix操作系统 (如Linux.Fre ...

  8. linux 怎么完全卸载mysql数据库

    在linux下开发,mysql数据库是经常用到的,对于初学者来说,在linux怎么安装卸载mysql数据库,也许可能比较痛苦,这里简单介绍下,怎么卸载msql数据库. a)查看系统中是否以rpm包安装 ...

  9. Windows如何修改MySQL用户root密码

    听语音 浏览:16925 | 更新:2015-06-12 14:49 | 标签:windows 1 2 3 4 5 6 分步阅读 MySQL是一个关系型数据库管理系统,在 WEB 应用方面 MySQL ...

  10. .NET J2EE APP全局会话架构运用场景

    .NET J2EE APP全局会话架构运用场景, 全局会话运用拓扑图代码核心架构为.NET架构开发C#语言为主代码架构分为全局会话中心.ASP.NET会话节点..NET会话节点针对WCF服务器与APP ...