博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gusfield
阅读量:6892 次
发布时间:2019-06-27

本文共 2572 字,大约阅读时间需要 8 分钟。

BZOJ2229

#include 
#include
#include
using namespace std; int cnt,nd[151],dep[151],sor,tar,dl[151],cur[151],sta[10001],mark[151],a[151],n,ans[151][151],tmp[151],m; struct edge{ int next,des,cap,fr; }sid[10001]; void addedge2(int u,int v,int cap){ sid[cnt].next=nd[u];sid[cnt].des=v;sid[cnt].cap=cap;nd[u]=cnt;sid[cnt].fr=u;cnt++; sid[cnt].next=nd[v];sid[cnt].des=u;sid[cnt].cap=cap;nd[v]=cnt;sid[cnt].fr=v;cnt++; } int bfs(){ memset(dep,-1,sizeof(dep)); int head=1,tail=1; dep[sor]=0;dl[head]=sor; while (head<=tail){ for (int p=nd[dl[head]];p!=-1;p=sid[p].next) if ((dep[sid[p].des]==-1)&&(sid[p].cap)) dep[sid[p].des]=dep[dl[head]]+1,dl[++tail]=sid[p].des; head++; } if (dep[tar]==-1) return(0);else return(1); } int dinic(){ int maxflow=0; while (bfs()){ for (int i=1;i<=n;i++) cur[i]=nd[i]; int u=sor,top=0; while(1){ if (u==tar){ int mi=1e9,last; for (int i=1;i<=top;i++) if (sid[sta[i]].cap
>1; } void dfs(int po){ mark[po]=1; for (int p=nd[po];p!=-1;p=sid[p].next) if (sid[p].cap&&!mark[sid[p].des]) dfs(sid[p].des); } void solve(int l,int r){ if (l==r) return; restore(); sor=a[l];tar=a[r]; int flow=dinic(); for (int i=1;i<=n;i++) mark[i]=0; dfs(sor); for (int i=1;i<=n;i++) if (mark[i]) for (int j=1;j<=n;j++) if (!mark[j]) ans[i][j]=ans[j][i]=min(ans[i][j],flow); int pol=l-1,por=r+1; for (int i=l;i<=r;i++) if (mark[a[i]]) tmp[++pol]=a[i];else tmp[--por]=a[i]; for (int i=l;i<=r;i++) a[i]=tmp[i]; solve(l,pol);solve(por,r); } int main(){ int T; scanf("%d",&T); while (T--){ scanf("%d%d",&n,&m);cnt=0; for (int i=1;i<=n;i++) nd[i]=-1,a[i]=i; for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) ans[i][j]=1e9; for (int i=1;i<=m;i++){ int t1,t2,t3; scanf("%d%d%d",&t1,&t2,&t3); addedge2(t1,t2,t3); } solve(1,n); int q; scanf("%d",&q); while (q--){ int lim,tans=0; scanf("%d",&lim); for (int i=1;i<=n;i++) for (int j=i+1;j<=n;j++) if (ans[i][j]<=lim) tans++; printf("%d",tans);if (q!=0||T!=0) printf("\n"); } if (T!=0) printf("\n"); } }

 

转载于:https://www.cnblogs.com/zhujiangning/p/6358774.html

你可能感兴趣的文章
SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例...
查看>>
android用户界面-组件Widget-进度条ProgressBar
查看>>
猜字谜小游戏编程
查看>>
【OneNote Mobile】 如何处理便签内容的格式?
查看>>
ios开发学习-弹出视图(Popup View) 效果源码分享--系列教程1
查看>>
Algeco Scotsman将召开2016年第三季度业绩电话会议
查看>>
新加坡IMDA计划进行Li-Fi测试
查看>>
《深入理解大数据:大数据处理与编程实践》一一1.3 MapReduce并行计算技术简介...
查看>>
LoadRunner关联的高级应用
查看>>
如何减少返工工作量?
查看>>
《敏捷可执行需求说明 Scrum提炼及实现技术》—— 2.1 界定不可更改的边界
查看>>
关注安防行业 聚焦公共安防系统
查看>>
Android代码(Handler的运用),HttpURLConnection的应用,将url图片地址转换成图片。...
查看>>
MySQL锁系列(七)之 锁算法详解
查看>>
webOS 更名 LuneOS,新版本名为 Affogato
查看>>
《UNIX环境高级编程(第3版)》——导读
查看>>
11_Eclipse中演示Git版本的创建,历史版本的修改,创建分支,合并历史版本和当前版本...
查看>>
《实施Cisco统一通信管理器(CIPT1)》一1.2 CUCM概述
查看>>
《容器技术系列》一1.1 引言
查看>>
在经历诸多坑后,Sonar@OSC 重新上线
查看>>