POJ 3662 Telephone Lines(二分+最短路)
最小化第K大值。
让我怀疑人生的一题目,我有这么笨?
- #include <cstdio>
- #include <queue>
- #include <cstring>
- #include <vector>
- #include <functional>
- using namespace std;
- #define maxv 1010
- #define maxl 1000000
- struct edge
- {
- int to, cost;
- edge(){}
- edge(int to, int cost) : to(to), cost(cost){}
- };
- typedef pair<int, int> P;
- vector<edge> G[maxv];
- int d[maxv];
- int V, E;
- int dij(int s, int x) {
- priority_queue<P, vector<P>, greater<P> > que;
- memset(d, 0X3f, V*sizeof(int));
- d[s] = ;
- que.push(P(, s));
- while (!que.empty()) {
- P p = que.top(); que.pop();
- int v = p.second;
- if (d[v] < p.first) continue;
- for (int i = ; i < G[v].size(); ++i)
- {
- edge e = G[v][i];
- int new_d = d[v] + (e.cost >= x ? : );
- if (d[e.to] > new_d)
- {
- d[e.to] = new_d;
- que.push(P(d[e.to], e.to));
- }
- }
- }
- return d[V-];
- }
- int main(void) {
- freopen("in.txt", "r", stdin);
- freopen("out.txt", "w", stdout);
- int K;
- scanf("%d%d%d", &V, &E, &K);
- for (int i = ; i < E; ++i) {
- int A, B, L;
- scanf("%d%d%d", &A, &B, &L);
- --A, --B;
- G[A].push_back(edge(B,L));
- G[B].push_back(edge(A,L));
- }
- int l = , u = maxl+;
- for (;(u-l) > ;) {
- int m = (u+l) >> ;
- if (dij(, m) > K) {
- l = m;
- } else {
- u = m;
- }
- }
- printf("%d\n", (l>maxl ? - : l));
- return ;
- }
POJ 3662 Telephone Lines(二分+最短路)的更多相关文章
- poj 3662 Telephone Lines(最短路+二分)
Telephone Lines Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6973 Accepted: 2554 D ...
- POJ 3662 Telephone Lines (二分+Dijkstra: 最小化第k大的值)
题意 Farmer John想从电话公司修一些电缆连接到他农场.已知N个电线杆编号为1,2,⋯N,其中1号已经连接电话公司,N号为农场,有P对电线杆可连接. 现给出P对电线杆距离Ai,Bi,Li表示A ...
- POJ 3662 Telephone Lines (二分+dijkstra)
题意: 多年以后,笨笨长大了,成为了电话线布置师.由于地震使得某市的电话线全部损坏,笨笨是负责接到震中市的负责人. 该市周围分布着N(1<=N<=1000)根据1……n顺序编号的废弃的电话 ...
- (poj 3662) Telephone Lines 最短路+二分
题目链接:http://poj.org/problem?id=3662 Telephone Lines Time Limit: 1000MS Memory Limit: 65536K Total ...
- POJ 3662 Telephone Lines【Dijkstra最短路+二分求解】
Telephone Lines Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7214 Accepted: 2638 D ...
- poj 3662 Telephone Lines spfa算法灵活运用
意甲冠军: 到n节点无向图,它要求从一个线1至n路径.你可以让他们在k无条,的最大值.如今要求花费的最小值. 思路: 这道题能够首先想到二分枚举路径上的最大值,我认为用spfa更简洁一些.spfa的本 ...
- poj 3662 Telephone Lines
Telephone Lines Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7115 Accepted: 2603 D ...
- POJ 3662 Telephone Lines (分层图)
Telephone Lines Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6785 Accepted: 2498 D ...
- poj 3662 Telephone Lines dijkstra+二分搜索
Telephone Lines Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5696 Accepted: 2071 D ...
随机推荐
- C#字符串默认值
using System; class MYTestX { class CT { } class CO { public CT ott; //默认是null public string strx;// ...
- 打印机设置(PrintDialog)、页面设置(PageSetupDialog) 及 RDLC报表如何选择指定打印机
如果一台电脑同时连接多个打印机,而且每个打印机使用的纸张大小各不相同(比如:票据打印钱用的小票专用张,办公打印机用的是A4标准纸),在处理打印类的需求时,如果不用代码干预,用户必须每次打印时,都必须在 ...
- win10下 解决系统进程占用80端口
公司电脑从win7升级到win10,无法启动nginx,日志里输出:2016/05/30 09:26:01 [emerg] 7024#5440: bind() to 0.0.0.0:80 failed ...
- warning: #870-D: invalid multibyte character sequence
warning: #870-D: invalid multibyte character sequence2011-03-12 9:18warning: #870-D: invalid multiby ...
- 海王星给你好看!FineUI v4.0公测版发布暨《你找BUG我送书》活动开始(活动已结束!)
<FineUI v4.0 你找BUG我送书>活动已结束,恭喜如下三位网友获得由 FineUI 作者亲自翻译的图书<jQuery实战 第二版>! 奋斗~ 吉吉﹑ purplebo ...
- React-Native运行知乎日报遇到的问题
研究几天RN(React-Native)后,跟着官方的demo做了一下电影图片显示的那个,但是总感觉官方的demo欠缺点什么,所以找来找去找到了RN版的知乎日报,话说知乎日报什么版的都有,不信你们上网 ...
- 部署到IIS上的网站打开时总是显示无法找到资源解决方案
1.首先修改项目目录的访问权限:右键->属性->安全里面找到组名或用户名 ->编辑->添加一个用户取名everyOne并设置可以修改即可 2.然后在IIS下面,选中你的mvc项 ...
- T4模板——一个神奇的代码生成器
利用T4模板,可以很方便的从数据库映射成Model模型,相当于动软等功效.但动软是可以直接生成三层,抽象工厂的,T4没那么牛叉,所以我们一般只用作生成Modle或者Server等指定方法了. 废话少说 ...
- BroadcoastReceiver之短信到来监听和获取内容
废话就不说了,新建类继承,然后配置Manifest.xml:如下 <!--需要给一个接收短信的权限 --> <uses-permission android:name="a ...
- hdu-1823 Luck and Love
题目链接:hdu1823二维线段树单点更新区间查询 题意 向一个100*1000的二维空间中插入点,每次查询时,查询区间最大值. 题解 身高既然是100~200,那就相当于100;活泼度相当于1000 ...