luoguP1401 城市
https://www.luogu.org/problemnew/show/P1401
二分答案网络流判断是否可行即可
#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline void read(T &f) {
f = 0; T fu = 1; char c = getchar();
while (c < '0' || c > '9') {if (c == '-') fu = -1; c = getchar();}
while (c >= '0' && c <= '9') {f = (f << 3) + (f << 1) + (c & 15); c = getchar();}
f *= fu;
}
const int N = 200 + 5, M = 4e4 + 5, INF = INT_MAX;
struct Edge {
int u, v, next, cap, flow;
}G[M << 1];
struct ele {
int u, v, val;
bool operator < (const ele A) const {return val < A.val;}
}p[M];
int head[N], nowhead[N], d[N];
int tot, n, m, t, S, T;
inline void addedge(int u, int v, int cap) {
G[++tot] = (Edge) {u, v, head[u], cap, 0}, head[u] = tot;
G[++tot] = (Edge) {v, u, head[v], cap, 0}, head[v] = tot;
}
int bfs() {
memset(d, 0, sizeof(d));
queue <int> q;
d[S] = 1; q.push(S);
while(!q.empty()) {
int u = q.front(); q.pop();
for(int i = head[u]; i; i = G[i].next) {
int v = G[i].v;
if(d[v] == 0 && G[i].cap > G[i].flow) {
d[v] = d[u] + 1;
q.push(v);
}
}
}
return d[T];
}
int dfs(int u, int Flow) {
if(u == T || Flow == 0) return Flow;
int flow = 0, f;
for(int &i = nowhead[u]; i; i = G[i].next) {
int v = G[i].v;
if(d[v] == d[u] + 1 && (f = dfs(v, min(Flow, G[i].cap - G[i].flow))) > 0) {
flow += f, Flow -= f;
G[i].flow += f, G[i ^ 1].flow -= f;
if(!Flow) break;
}
}
return flow;
}
int dinic() {
int ans = 0;
while(bfs()) {
for(int i = 1; i <= n; i++) nowhead[i] = head[i];
ans += dfs(S, INF);
}
return ans;
}
int main() {
read(n); read(m); read(t);
for(int i = 1; i <= m; i++) read(p[i].u), read(p[i].v), read(p[i].val);
sort(p + 1, p + m + 1);
int l = 1, r = m; S = 1; T = n;
while(l < r) {
int mid = (l + r) >> 1;
memset(head, 0, sizeof(head)); tot = 1;
for(int i = 1; i <= mid; i++) addedge(p[i].u, p[i].v, 1);
if(dinic() < t) l = mid + 1;
else r = mid;
}
printf("%d\n", p[l].val);
return 0;
}
luoguP1401 城市的更多相关文章
- luoguP1401 城市(二分答案+最大流)
题意 N(2<=n<=200)个城市,M(1<=m<=40000)条无向边,你要找T(1<=T<=200)条从城市1到城市N的路,使得最长的边的长度最小,边不能重复 ...
- 【开源】分享2011-2015年全国城市历史天气数据库【Sqlite+C#访问程序】
由于个人研究需要,需要采集天气历史数据,前一篇文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子),介绍了基本的采集思路和核心代码,经过1个星期的采集,历史数据库 ...
- 根据ip判断返回城市名称查询当地天气
<?phpheader("content-type:text/html;charset=utf-8");date_default_timezone_set("Asi ...
- 使用page object模式抓取几个主要城市的pm2.5并从小到大排序后写入txt文档
#coding=utf-8from time import sleepimport unittestfrom selenium import webdriverfrom selenium.webdri ...
- geolocation/ 百度地图api Geolocation 定位当前城市信息
根据当前所处位置 定位所在城市信息 <html> <head> <meta charset="UTF-8" /> <title>js ...
- h5手机端下拉选择城市
<!doctype html><html> <head> <meta http-equiv="Content-Type& ...
- BZOJ 2001: [Hnoi2010]City 城市建设
2001: [Hnoi2010]City 城市建设 Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 1132 Solved: 555[Submit][ ...
- redis技巧--IP地址查询对应城市
场景: 根据IP地址判断用户所在地,虽然网上有好多篇了,但我记录一个一看就懂的,不用看超长文字再自己理解了. 我们有城市和IP地址段的对应关系,如: 上海: 202.127.0.0 ~ 202.127 ...
- 美团HD(5)-选择城市
DJSelectCityViewController.m #import "DJSelectCityViewController.h" #import "DJConsta ...
随机推荐
- JasperMES.cn JasperMES.com.cn 我的MES网站
好久没有更新博客园.今天写上两面的两个网址JasperMES.cn JasperMES.com.cn是想记录我在做上面两个网站时的一点心得. 老实说,现在建站的软件很多,WordPress,CMS,我 ...
- Eclipse使用hibernate插件反向生成实体类和映射文件
一般dao层的开发是这样的,先进行数据库的设计,什么E-R图之类的那些,然后选择一款数据库产品,建好表.最后反向生成Java实体和映射文件,这样可以保证一致性和便捷性. 如果用myeclipse,逆向 ...
- 【原创】11. MYSQL++ 之 Quoting 与 Escaping
1. 综述 其实一看到这两个单词的时候我有点莫名其妙,可能英语没有学好,我的理解就是quoting是“引用”的意思,而Escaping是“逃脱”的意思.后来在看到了作者的TUTORIAL之后才大致明白 ...
- PHP网站
1.NetBeans 解决PHP调试问题:https://netbeans.org/ 支持PHP调试的版本 2. http://document.thinkphp.cn/manual_3_2.html ...
- cocos+kbe问题记录
1.不要使用setTimeout函数 setTimeout函数,setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. 是HTML DOM中的方法,在游戏中使用,属于全局的延时,当游 ...
- SpringBoot17 FastJson配置、Druid配置
1 FastJson配置 1.1 FastJson基础知识 点击前往 1.2 SpringBoot整合FastJson 点击前往 1.2.1 导入FastJson依赖 <!--fastjson- ...
- Ubuntu14.04下安装glog
下载原始代码编译 1. Clone Source Code glog git clone https://github.com/google/glog 2. Install dependencies ...
- 利用osmosis导出osm城市数据
转载(未测试) 方法核心就是利用osmosis的导出指定功能,即是从大范围导出小范围的基本用例. 我们只需要知道我们所需要提取的城市的经纬度范围, 例如广州市的经纬度范围是北纬22.26~23.56度 ...
- C语言多线程
http://www.cnblogs.com/lixiaohui-ambition/archive/2012/07/26/2610336.html
- Python基础入门-函数实战登录功能
''' 函数实战: .加法计算器 .过滤器 .登录功能实战 ''' def add(a,b): return a+b def login_order(): return 'asdfasdfdasfad ...