每个点拆成入点和出点。

发现每个点、每条边都只能经过一次,所以所有边的容量都是 \(1\)。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=405,M=1e5+5;
int n,m,s,t,k=1,h[N],vis[N];
int to[M],nxt[M],w[M],f[M];
int lst[N],flw[N],dis[N];
void add(int x,int y,int z,int a){
w[++k]=z;f[k]=a;to[k]=y;
nxt[k]=h[x];h[x]=k;
f[++k]=-a;to[k]=x;
nxt[k]=h[y];h[y]=k;
}queue<int>q;
int spfa(){
while(q.size()) q.pop();
memset(lst,-1,sizeof(lst));
memset(vis,0,sizeof(vis));
memset(dis,127,sizeof(dis));
flw[s]=1e9;dis[s]=0;q.push(s);
while(q.size()){
int x=q.front();
q.pop();vis[x]=0;
for(int i=h[x];i;i=nxt[i]){
int y=to[i],vl=w[i];
if(vl&&dis[y]>dis[x]+f[i]){
lst[y]=i;
flw[y]=min(flw[x],vl);
dis[y]=dis[x]+f[i];
if(!vis[y])
q.push(y),vis[y]=1;
}
}
}return lst[t]!=-1;
}int mxflw,mncst;
void MCMF(){
while(spfa()){
mxflw+=flw[t];
mncst+=dis[t]*flw[t];
for(int i=t;i!=s;i=to[lst[i]^1])
w[lst[i]]-=flw[t],w[lst[i]^1]+=flw[t];
}
}signed main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n>>m;s=n+1;t=n;
for(int i=2;i<n;i++)
add(i,i+n,1,0);
for(int i=1;i<=m;i++){
int u,v,y;
cin>>u>>v>>y;
add(u+n,v,1,y);
}MCMF();cout<<mxflw<<" "<<mncst;
return 0;
}//spfa:它没有死透

[SDOI2009] 晨跑 题解的更多相关文章

  1. BZOJ1877:[SDOI2009]晨跑——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1877 https://www.luogu.org/problemnew/show/P2153 Ela ...

  2. BZOJ 1877: [SDOI2009]晨跑 费用流

    1877: [SDOI2009]晨跑 Description Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑.仰卧起坐等 等,不过到目前为止,他坚持下来的只有晨跑. 现在给出一 ...

  3. BZOJ 3438 小M的作物 & BZOJ 1877 [SDOI2009]晨跑

    我由衷地为我的朋友高兴.哈哈,yian,当你nick name破百上千时,再打“蒟蒻”就会被打的. 好的,说正事吧.请注意,这还是题解.但我发现,网络流实在是太套路了(怪不得这两年几乎销声匿迹).我们 ...

  4. 【BZOJ1877】[SDOI2009]晨跑 最小费用最大流

    [BZOJ1877][SDOI2009]晨跑 Description Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑.仰卧起坐等 等,不过到目前为止,他坚持下来的只有晨跑. 现 ...

  5. 1877: [SDOI2009]晨跑

    1877: [SDOI2009]晨跑 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 2007  Solved: 1085[Submit][Status][ ...

  6. bzoj1877: [SDOI2009]晨跑

    挺裸的最小费用最大流... #include<cstdio> #include<queue> #include<cstring> #include<iostr ...

  7. BZOJ 1877: [SDOI2009]晨跑( 最小费用最大流 )

    裸的费用流...拆点, 流量限制为1, 最后的流量和费用即答案. ------------------------------------------------------------------- ...

  8. BZOJ_1877_[SDOI2009]晨跑_费用流

    BZOJ_1877_[SDOI2009]晨跑_费用流 题意: Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑.仰卧起坐等 等,不过到目前为止,他 坚持下来的只有晨跑. 现在给出 ...

  9. AC日记——[SDOI2009]晨跑 bzoj 1877

    1877: [SDOI2009]晨跑 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 2131  Solved: 1142[Submit][Status][ ...

  10. [SDOI2009]晨跑[最小费用最大流]

    [SDOI2009]晨跑 最小费用最大流的板子题吧 令 \(i'=i+n\) \(i -> i'\) 建一条流量为1费用为0的边这样就不会对答案有贡献 其次是对 \(m\) 条边建 \(u'-& ...

随机推荐

  1. 基于 C# 编写的 Visual Studio 文件编码显示与修改扩展插件

    前言 在软件开发过程中,尤其是在处理跨平台或来自不同来源的项目时,文件的编码格式往往会成为一个不可忽视的问题.不同的操作系统.编程语言和编辑器可能对文件编码有不同的支持和默认设置,这可能导致在打开一个 ...

  2. 关于 Span 的一切:探索新的 .NET 明星: 1 Span<T> 是什么?

    关于 Span 的一切:探索新的 .NET 明星 https://docs.microsoft.com/en-us/archive/msdn-magazine/2018/january/csharp- ...

  3. Dapr-2: 世界是分布式的

    第 2 章 世界是分布的 只需要问任何达人:现代的.分布式的系统已经到来,单体应用已经过时. 但是,不仅是达人,渐进的 IT 领袖,企业架构师,以及精明的开发者,在探寻和评估现代分布式应用的时候,也在 ...

  4. StreamUtils

    package com.redis.utils; import com.SpringUtils; import com.StringUtils; import lombok.extern.slf4j. ...

  5. Qt开发经验小技巧256-260

    默认QDialog窗体右下角有个拉伸尺寸的手柄,通过它可以对窗体拉伸大小,这个控件很容易被遗忘但是又经常可以看到,他的名字叫QSizeGrip,可以通过setSizeGripEnabled来启用或者禁 ...

  6. Vue.js 监听属性的使用

    示例源码: <div id = "computed_props"> 千米 : <input type = "text" v-model = & ...

  7. AI对开发过程的替代性

    在过去一年投入人工智能辅助开发之后,虽然大家说使用了人工智能之后工作效率显着提高,但我们日常使用的实际软件似乎并没有明显改善.所以问题出现在哪里? 使用场景 目前团队AI使用主要在以下方面: 代码补全 ...

  8. Docker 多平台打包错误

    1. Multi-platform build is not supported for the docker driver. 问题 因为 Docker 默认使用的 builder 不支持多架构构建镜 ...

  9. docker-compose部署下Fastapi中使用sqlalchemy和Alembic

    本篇介绍使用Fastapi + sqlalchemy + alembic 来完成后端服务的数据库管理,并且通过docker-compose来部署后端服务和数据库Mysql.包括: 数据库创建,数据库用 ...

  10. Solution Set - “让季节停止哽咽”

    目录 0.「CTT 2017」「洛谷 P4004」Hello world! 1.「CTT 2017」「洛谷 P4006」小 Y 和二叉树 2.「CTT 2017」「洛谷 P4226」避难所 3.「AG ...