题目传送门

分析:

没被访问的点要C费用,跑一次路要C费用

把这两个统一一下试试。。。

那就是每次不标记起点或者终点

那就是路径覆盖了2333

二分图,x 部 i 号点与 y 部 j 号点连 i 到 j 的最短路

然后每个点都会被访问到

但是有些的代价会大于C

那些就干脆不访问了吧2333

看看费用流的函数特征

是一个单增函数

某一刻一单位流的代价大于了C,那就可以停止了

由于C会变,先求出整个的费用流函数,每次二分查找就好了

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue> #define maxn 2005
#define maxm 200005
#define INF 0x3f3f3f3f using namespace std; inline int getint()
{
int num=,flag=;char c;
while((c=getchar())<''||c>'')if(c=='-')flag=-;
while(c>=''&&c<='')num=num*+c-,c=getchar();
return num*flag;
} int n,m,Q;
int S,T;
int fir[maxn],nxt[maxm],to[maxm],cnt;
int cap[maxm],cst[maxm];
int dis[maxn];
int vis[maxn],pre[maxn];
int sum[maxn],tot;
int D[maxn][maxn]; inline void newnode(int u,int v,int w,long long c)
{to[++cnt]=v,nxt[cnt]=fir[u],fir[u]=cnt,cap[cnt]=w,cst[cnt]=c;}
inline void insert(int u,int v,int w,long long c)
{newnode(u,v,w,c),newnode(v,u,,-c);} inline bool spfa()
{
memset(dis,INF,sizeof dis);dis[S]=;
memset(pre,-,sizeof pre);
queue<int>Q;Q.push(S),vis[S]=;
while(!Q.empty())
{
int u=Q.front();Q.pop();vis[u]=;
for(int i=fir[u];i;i=nxt[i])
if(cap[i]&&dis[to[i]]>dis[u]+cst[i])
{
dis[to[i]]=dis[u]+cst[i];pre[to[i]]=i^;
if(!vis[to[i]])vis[to[i]]=,Q.push(to[i]);
}
}
return ~pre[T];
} inline int dinic()
{
int num=;
while(spfa())
{
tot++;
sum[tot]=sum[tot-];
int mn=INF;
for(int i=pre[T];i!=-;i=pre[to[i]])mn=min(mn,cap[i^]);
int tmp=;
for(int i=pre[T];i!=-;i=pre[to[i]])cap[i]+=mn,cap[i^]-=mn,tmp+=cst[i^];
sum[tot]+=tmp*mn,num+=mn;
}
return num;
} int main()
{
n=getint(),m=getint(),Q=getint();
S=n*+,T=S+,cnt=;
memset(D,INF,sizeof D);
for(int i=;i<=n;i++)D[i][i]=;
for(int i=;i<=m;i++)
{
int u=getint(),v=getint();
D[u][v]=min(getint(),D[u][v]);
}
for(int k=;k<=n;k++)for(int i=;i<=n;i++)for(int j=;j<=n;j++)
D[i][j]=min(D[i][j],D[i][k]+D[k][j]);
for(int i=;i<=n;i++)insert(S,i,,),insert(i+n,T,,);
for(int i=;i<=n;i++)for(int j=;j<=n;j++)if(i^j)insert(i,j+n,,D[i][j]);
dinic();
while(Q--)
{
int C=getint(),l=,r=tot,ans=;
while(l<=r)
{
int mid=(l+r)>>;
if(sum[mid]-sum[mid-]<C)l=mid+,ans=mid;
else r=mid-;
}
printf("%d\n",sum[ans]+(n-ans)*C);
}
}

BZOJ 3691 游行的更多相关文章

  1. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  2. 【BZOJ3691】游行(网络流)

    [BZOJ3691]游行(网络流) 题面 BZOJ 然而权限题. Description 每年春季,在某岛屿上都会举行游行活动. 在这个岛屿上有N个城市,M条连接着城市的有向道路. 你要安排英雄们的巡 ...

  3. BZOJ 2127: happiness [最小割]

    2127: happiness Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 1815  Solved: 878[Submit][Status][Di ...

  4. BZOJ 3275: Number

    3275: Number Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 874  Solved: 371[Submit][Status][Discus ...

  5. BZOJ 2879: [Noi2012]美食节

    2879: [Noi2012]美食节 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1834  Solved: 969[Submit][Status] ...

  6. bzoj 4610 Ceiling Functi

    bzoj 4610 Ceiling Functi Description bzoj上的描述有问题 给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树. Inp ...

  7. BZOJ 题目整理

    bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...

  8. 【sdoi2013】森林 BZOJ 3123

    Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数.第三行包含N个非负整数 ...

  9. 【清华集训】楼房重建 BZOJ 2957

    Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...

随机推荐

  1. C#面试题整理(不带答案)

     1.维护数据库的完整性.一致性.你喜欢用触发器还是自写业务逻辑?为什么?  2.什么是事务?什么是锁?  3.什么是索引,有什么优点?  4.视图是什么?游标是什么?  5.什么是存储过程?有什么优 ...

  2. FreeSql配合仓储实现软删除

    该篇内容由个人博客点击跳转同步更新!转载请注明出处! 前段时间使用FreeSql作为ORM,写了一个简单的CMS,在这里总结一下其中的使用心得. 仓储配合全局过滤器 1. 统一的删除标志 如:数据库字 ...

  3. C# 如何解析XML

  4. nor flash之频率限制

    背景 支持一款nor flash时,出于性能考虑,一般会查看其nor支持的最高频率以及主控端spi控制器的最高频率,以选择一个合适的运行频率. 对于一款主控支持多款flash的情况,还得考虑好兼容性等 ...

  5. $Noip2016/Luogu2822$ 组合数问题

    $Luogu$ 看这题题解的时候看到一个好可爱的表情(●'◡'●)ノ♥ $Sol$ 首先注意到这题的模数是$k$.然而$k$并不一定是质数,所以不能用$C_n^m=\frac{n!}{m!(n-m)! ...

  6. spring boot 中AOP的使用

    一.AOP统一处理请求日志 也谈AOP 1.AOP是一种编程范式 2.与语言无关,是一种程序设计思想 面向切面(AOP)Aspect Oriented Programming 面向对象(OOP)Obj ...

  7. 讲真,这两个IDE插件,可以让你写出质量杠杠的代码

    昨晚躺在床上看<拯救大兵瑞恩>的时候,不由得感叹道:"斯皮尔伯格的电影质量真高,片头真实地还原了二战的残酷性."看完后,我的精神异常的亢奋,就想写篇文章来帮助大家提高一 ...

  8. Django之models高级进阶技术详解

    目录 一.常用字段 1.AutoField 2.IntegerField 3.CharField 4.自定义及使用char 5.DateField 6.DateTimeField 二.字段合集 三.字 ...

  9. ArcEngine 创建线要素图层

    在创建要素图层的时候,默认的几何类型是Polygon: Dim objectClassDescription As IObjectClassDescription = New FeatureClass ...

  10. opensuse安装Tomcat碰到的问题

    已经安装好JDE,并配置好环境变量 从官网下载Tomcat tar包,解压到用户目录,进入运行bin下的start.sh,显示运行成功,但是浏览器中输入localhost:8080连接不上 检查一番发 ...