sgu-242 Student's Morning
来源:互联网 发布:手写笔 软件 编辑:程序博客网 时间:2024/05/16 02:17
题目大意:
有
解题思路:
首先这道题目显然可以用有上下确界的可行流做,但是太麻烦了,直接跑最大流就行了啊。
首先原点
AC代码:
#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>#include <iostream>#define Min(a,b) ((a)>(b)?(b):(a))using namespace std;int G[510][510]={{0}};int f[510][510]={{0}};int N,K;int st=0,en;int dist[510]={0};int dui[510]={0};int duip=0;void bfs(){ duip=0; dui[++duip]=en; for(int i=1;i<=duip;i++) { int u=dui[i]; for(int v=0;v<=en;v++) { if(G[v][u]-f[v][u]>0 && dist[v]>dist[u]+1) { dist[v]=dist[u]+1; dui[++duip]=v; } } } return;}int Max_Flow(int now,int Max){ if(now==en) return Max; int sum=0; for(int i=0;i<=en;i++) { if(G[now][i]-f[now][i]>0 && dist[now]==dist[i]+1) { int tmp=Min(G[now][i]-f[now][i],Max); tmp=Max_Flow(i,tmp); sum+=tmp; Max-=tmp; f[now][i]+=tmp; f[i][now]-=tmp; if(Max==0) return sum; } } return sum;}void prt(){ for(int i=N+1;i<=en-1;i++) { printf("2 "); for(int j=1;j<=N;j++) if(f[j][i]==1) printf("%d ",j); puts(""); } return;}int main(){ scanf("%d%d",&N,&K); en=N+K+1; for(int i=1;i<=N;i++) { int num=0; scanf("%d",&num); for(int j=1;j<=num;j++) { int sb; scanf("%d",&sb); G[i][sb+N]=1; } G[st][i]=1; } for(int i=1;i<=K;i++) G[i+N][en]=2; int ans=0; for(;;) { memset(dist,0x3f3f3f3f,sizeof(dist)); dist[en]=0; bfs(); if(dist[st]==0x3f3f3f3f) break; ans+=Max_Flow(st,2e9); if(ans==K*2) break; } if(ans!=K*2) cout<<"NO"<<endl; else { cout<<"YES"<<endl; prt(); } return 0;}
0 0
- sgu-242 Student's Morning
- SGU 242. Student's Morning
- sgu 242 Student's Morning--最大流 或 多重匹配
- SGU 242 Student's Morning 网络流(水
- 解题报告 之 SGU242 Student's Morning
- sgu242:Student's Morning(网络流)
- Ural1876-Centipede's Morning
- UPC:2541 HaHa's Morning
- URAL 1876 Centipede's Morning
- ACM 数论 SGU 444Headstrong Student
- morning
- morning
- URAL 1876 Centipede's Morning 水题
- URAL 1876. Centipede's Morning (贪心)
- URAL 1876 Centipede's Morning[数论]
- sgu 242
- sgu - 276 - Andrew's Troubles
- SGU 553 Sultan's Pearls
- InstallShield 2013 应用笔记(一)
- sql sever 三种分页方式效率的简单测试
- SublimeText3安装Package Control
- 如何让自己变得更优质?
- oracle 为 用户 解锁 加锁 (以hr为例)
- sgu-242 Student's Morning
- clamav病毒库格式解析
- Operating SystemVersion NumberOther Information
- 韩顺平老师《一周学会Linux》视频笔记
- Leetcode 编程训练 (转)
- 欢迎使用CSDN-markdown编辑器
- 省赛总结(2015)
- servlet开发6-接收用户提交的表单数据
- Struts2 标签库讲解