= =我承认我写网络流写疯了

= =我承认前面几篇博文都是扯淡,我写的是垃圾dinic(根本不叫dinic)

= =我承认这道题我调了半天

= =我承认我这道题一开始是T的,后来换上真正的dinic才过

= =我承认我还没理解dinic

= =我承认我一直到处改最后才发现输入顺序错了

= =我承认我已经疯了

= =我承认我写我承认上瘾了


回正题:这道题建图比较基础(但终于不是板题了),对于每个任务和每一天都建一个点(感觉把任务拆成若干点还能写二分图匹配),然后限制流量,然后判断是否满了

 #include <cstdio>
#define INF 2147483647
int n,m,N,need,p,q,o,zl,h,t,T,tt,ans,fir[],nex[],to[],flo[],d[],l[];
inline int min(int p,int q){ return(p<q)?p:q;}
inline void add(int p,int q,int o){ to[++N]=q;flo[N]=o;nex[N]=fir[p];fir[p]=N;
to[++N]=p;flo[N]=;nex[N]=fir[q];fir[q]=N;}
int dfs(int now,int flow,int sum)
{
if(now==n+) return flow;
for(int i=fir[now];i && (flow>sum);i=nex[i])
if(d[to[i]]==d[now]+ && flo[i])
zl=dfs(to[i],min(flow,flo[i]),),sum+=zl,flo[i]-=zl,flo[i^]+=zl;
if(sum==) d[now]=;
return sum;
}
bool bfs()
{
for(int i=;i<=n+;i++) d[i]=;
for(h=,t=,l[]=,d[]=;h<=t;h++)
for(int i=fir[l[h]];i;i=nex[i])
if(!d[to[i]] && flo[i])
l[++t]=to[i],d[l[t]]=d[l[h]]+;
return d[n+];
}
int main()
{
for(scanf("%d",&T),tt=;tt<=T;tt++)
{
scanf("%d%d",&n,&m);need=;N=;
for(int i=;i<=n+;i++) fir[i]=;
for(int i=;i<=n;i++)
{
scanf("%d%d%d",&o,&p,&q),add(,i,o),need+=o;
for(int j=p;j<=q;j++) add(i,j+n,);
}
for(int i=;i<=;i++)
add(i+n,n+,m);
for(ans=;bfs();ans+=dfs(,INF,));
printf((ans==need)?"Case %d: Yes\n\n":"Case %d: No\n\n",tt);
}
return ;
}

最新文章

  1. SharePoint 2013 入门教程之入门手册
  2. 经典收藏 50个jQuery Mobile开发技巧集萃
  3. Android监听Home键
  4. A Mathematical Curiosity 分类: HDU 2015-06-25 21:27 11人阅读 评论(0) 收藏
  5. PHP单元测试工具PHPUnit初体验
  6. Spring MVC - log4j 配置
  7. Mysql不区分大小写
  8. c#中用DirectShow实现媒体播放器的核心(1) DirectShow简介
  9. JS兼容性问题列表
  10. 【PullToRefresh 系列基本用法】 Android装上拉下拉刷新控制具体的解释
  11. VMware Workstation 无法与 Windows XP \ Windows 7 \ Windows 8 进行共享文件夹。
  12. SpringCloud实战-Ribbon客户端负载均衡
  13. linux(centos)上安装mysql教程,为需要远程登录的用户赋予权限
  14. 【Android】用Cubism 2制作自己的Live2D——初探Live2D在Android上的运行!
  15. YouTuboba视频搬运~哔哩哔哩
  16. Java编程的逻辑 (6) - 如何从乱码中恢复 (上)?
  17. VMware 安装Ubuntu16.04时显示不全的解决方法
  18. Java 异常处理的 9 个最佳实践
  19. 使用javascript模拟常见数据结构(三)
  20. ORACLE-&gt;SQL*Loader[20180712]

热门文章

  1. CMake学习笔记
  2. [Sass]扩展/继承
  3. [原创]Windows Server 2003 物理机转换为VMware虚拟机出现VSS错误的处理
  4. Sql Server本地高版本备份数据备份至远程低版本数据库方法
  5. 学号20145332 《信息安全系统设计基础》实验五 简单嵌入式WEB服务器实验
  6. 修改NavigationView中的Item的Icon大小
  7. useradd与adduser的区别
  8. CSS清除浮动技巧
  9. 【Java并发系列04】线程锁synchronized和Lock和volatile和Condition
  10. Flume(1)使用入门