SGU 194

题意:无源汇有上下界的最大流

收获:https://wenku.baidu.com/view/0f3b691c59eef8c75fbfb35c.html

#include<bits/stdc++.h>
#define de(x) cout<<#x<<"="<<x<<endl;
#define dd(x) cout<<#x<<"="<<x<<" ";
#define rep(i,a,b) for(int i=a;i<(b);++i)
#define repd(i,a,b) for(int i=a;i>=(b);--i)
#define repp(i,a,b,t) for(int i=a;i<(b);i+=t)
#define ll long long
#define mt(a,b) memset(a,b,sizeof(a))
#define fi first
#define se second
#define inf 0x3f3f3f3f
#define INF 0x3f3f3f3f3f3f3f3f
#define pii pair<int,int>
#define pdd pair<double,double>
#define pdi pair<double,int>
#define mp(u,v) make_pair(u,v)
#define sz(a) (int)a.size()
#define ull unsigned long long
#define ll long long
#define pb push_back
#define PI acos(-1.0)
#define qc std::ios::sync_with_stdio(false)
#define db double
#define all(a) a.begin(),a.end()
const int mod = 1e9+7;
const int maxn = 2e2+5;
const double eps = 1e-6;
using namespace std;
bool eq(const db &a, const db &b) { return fabs(a - b) < eps; }
bool ls(const db &a, const db &b) { return a + eps < b; }
bool le(const db &a, const db &b) { return eq(a, b) || ls(a, b); }
ll gcd(ll a,ll b) { return a==0?b:gcd(b%a,a); };
ll lcm(ll a,ll b) { return a/gcd(a,b)*b; }
ll kpow(ll a,ll b) {ll res=1;a%=mod; if(b<0) return 1; for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}
ll read(){ll x=0,f=1;char ch=getchar();while (ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while (ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
int n,m,s,t,tot;
int b[maxn*maxn],c[maxn*maxn],in[maxn],out[maxn];
int pre[maxn],dis[maxn];
int q[maxn],l,r;
struct edge{int v,w,nt;
}e[maxn*maxn];
void init(){tot = 0;mt(pre,-1);mt(in,0);mt(out,0);
}
void addedge(int u,int v,int w){e[tot].v=v;e[tot].w=w;e[tot].nt=pre[u];pre[u]=tot++;e[tot].v=u;e[tot].w=0;e[tot].nt=pre[v];pre[v]=tot++;
}
bool bfs(){mt(dis,-1);dis[s]=0;l = r = 0;q[r++] = s;while(l<r){int u=q[l++];for(int i=pre[u];~i;i=e[i].nt){int v=e[i].v,w=e[i].w;if(dis[v]==-1&&w>0){dis[v]=dis[u]+1;q[r++] = v;}}}return dis[t]!=-1;
}
int dfs(int u,int cp){if(u==t||!cp) return cp;int tmp=cp;for(int i=pre[u];~i;i=e[i].nt){int v=e[i].v,w=e[i].w;if(dis[v]==dis[u]+1&&w>0){int tt=dfs(v,min(tmp,w));e[i].w-=tt;e[i^1].w+=tt;tmp-=tt;if(tmp<=0) return cp;}}dis[u]=inf;return cp-tmp;
}
int dinic(){int ret = 0;while(bfs()) ret+=dfs(s,inf);return ret;
}
int main(){int u,v;init();scanf("%d%d",&n,&m);rep(i,0,m) scanf("%d%d%d%d",&u,&v,&b[i],&c[i]),addedge(u,v,c[i]-b[i]),in[v] += b[i],out[u] += b[i];s = 0;t = n + 1;int ans = 0;rep(i,1,n+1) if(out[i] - in[i] > 0) addedge(i,t,out[i] - in[i]),ans += out[i] - in[i];else addedge(s,i,in[i] - out[i]);if(ans!=dinic())  return puts("NO"),0;puts("YES");rep(i,0,m) printf("%d\n",b[i] + e[i << 1 | 1].w);return 0;
}

View Code

转载于:https://www.cnblogs.com/chinacwj/p/9086779.html

今日SGU 5.25相关推荐

  1. 今日SGU 5.20

    SGU 404 题意:.. 收获:取模 #include<bits/stdc++.h> #define de(x) cout<<#x<<"="& ...

  2. 今日头条 8.25 双生词

    题目 #include <iostream> #include <map> #include <string>using namespace std;int sha ...

  3. 第25版 OpenStack Yoga 已发布

    OpenStack社区今日正式发布第25版-Yoga,该版本通过支持先进的硬件技术如SmartNIC DPUs,优化与云原生软件如Kubernetes.Prometheus等的集成以及减少技术债等方式 ...

  4. oracle昨日时间,。。今日,昨日,上周,本月,本年,按时间统计总金额

    "本月 102", 这是错的你少加了"10        7        41        2009-1-5 16:26:39"这条数据! 结果具体如下: ...

  5. 倒数日电脑版_应用日报|iOS 或更名为 iPhoneOS,倒数日 Mac 版上线限时免费

    今日推荐 倒数日 · Days Matter for Desktop 免费,macOS · 86 MB 倒数日· Days Matter 是 iOS 端非常经典的应用,今天它的 Mac 版本上线,限时 ...

  6. 腾讯回应“被骗”;黄峥卸任拼多多 CEO;Firefox 78 发布 | 极客头条

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极 ...

  7. 3月12日公开短线黑马牛股请点击验证

    03月12日星期×××开验证的股票是:(000033)新都酒店(会员11日9:44分7.7元建仓介入)(002141)蓉胜超微(会员11日9:38分11.18元建仓介入)(000532)力合股份(会员 ...

  8. 专门画像素图的软件_新世纪像素画设计软件,你值得一试!

    哟,大家好,我是骼灵桑桑哟.这一次的文章主角便是我们手机玩家最受欢迎的像素游戏之一"元气骑士".好!问题来了,为什么?这一次的文章我会提到元气骑士呢?而我这次文章的标题又为何取名为 ...

  9. 道通转债,微芯转债,博22转债上市价格预测

    道通转债 基本信息 转债名称:道通转债,评级:AA,发行规模:12.8亿元. 正股名称:道通科技,今日收盘价:32.85,转股价格:34.73. 当前转股价值 = 转债面值 / 转股价格 * 正股价格 ...

最新文章

  1. 手把手教你上手python库pydbgen(附代码、安装地址)
  2. JDBC与mysql同为CST时区导致数据库时间和客户端时间差13或者14小时
  3. 检测代码区校验和实现简易反调试
  4. Java 的toString() 和 equals()函数简单介绍
  5. windows 访问linux中的mongodb,MongoDB的linux系统下的安装与连接
  6. 2020年快手短视频直播电商营销增长宝典
  7. Genome Research封面文章|张勇课题组开发方法绘制胚胎发育早期转录因子结合位点图谱...
  8. Mac不能进入休眠状态?怎么解决
  9. liunx中安装软件的几种方式
  10. 银联的bankall_gmc银联接口开发demo
  11. python爬取网站大数据_[Python]爬虫抓取大数据职位数据
  12. (226)FPGA入门推荐书籍
  13. shineblink BH1750光照强度传感器
  14. 别样的风景——韦应物《滁州西涧》赏析
  15. Emoji 的处理 - 使用正则表达式匹配所有 Emoji表情
  16. Webpack经典入门
  17. 每个程序员都应该了解的内存知识(2)-CPU caches
  18. 【机器学习】代价函数,损失函数,目标函数区别
  19. 一款公历转农历节气以及天干地支的js代码
  20. 日常所用的耳机接口定义

热门文章

  1. mysql server 5.6使用_关于MySQLServer5.6配置问题
  2. spring事务-说说Propagation及其实现原理
  3. 影响线型缩聚物分子量的因素_【CRPS】通过硼烷引发剂实现氧气引发的超高分子量聚合物的可控合成...
  4. 二进制的mysql怎么装_使用二进制演示MySQL安装步骤
  5. mysql数据库的字符集设置_mysql数据库字符集设置
  6. pycharm 远程调试图文_Pycharm配置远程调试的图文步骤
  7. Vue_双向绑定解析以及指令介绍
  8. 参加第十六届全国大学生智能车竞赛广东省报名队伍
  9. Seeduino XIAO开发板安装Arduino软件包以及USB串口驱动
  10. 第十六届全国大学生智能车竞赛-航天智慧物流创意组-技术培训