[loj2477]劈配
1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 205
4 struct ji{
5 int nex,to,len;
6 }edge[30*N],e[N][30*N];
7 vector<int>v[N][N];
8 int E,t,n,m,x,EE[N],head[N<<1],vis[N<<1],h[N][N<<1];
9 void add(int x,int y,int z){
10 edge[E].nex=head[x];
11 edge[E].to=y;
12 edge[E].len=z;
13 head[x]=E++;
14 }
15 bool dfs(int k){
16 if (k==n+m+1)return 1;
17 if (vis[k])return 0;
18 vis[k]=1;
19 for(int i=head[k];i!=-1;i=edge[i].nex)
20 if ((edge[i].len)&&(dfs(edge[i].to))){
21 edge[i].len--;
22 edge[i^1].len++;
23 return 1;
24 }
25 return 0;
26 }
27 int main(){
28 scanf("%d%*d",&t);
29 while (t--){
30 scanf("%d%d",&n,&m);
31 E=0;
32 memset(head,-1,sizeof(head));
33 for(int i=1;i<=n;i++)
34 for(int j=1;j<=m;j++)v[i][j].clear();
35 for(int i=1;i<=m;i++){
36 scanf("%d",&x);
37 add(i+n,n+m+1,x);
38 add(n+m+1,i+n,0);
39 }
40 for(int i=1;i<=n;i++)
41 for(int j=1;j<=m;j++){
42 scanf("%d",&x);
43 if (x)v[i][x].push_back(j);
44 }
45 EE[0]=E;
46 memcpy(h[0],head,sizeof(head));
47 memcpy(e[0],edge,sizeof(edge));
48 for(int i=1;i<=n;i++){
49 bool flag=0;
50 EE[i]=E;
51 memcpy(h[i],head,sizeof(head));
52 memcpy(e[i],edge,sizeof(edge));
53 for(int j=1;j<=m;j++){
54 E=EE[i];
55 memset(vis,0,sizeof(vis));
56 memcpy(head,h[i],sizeof(head));
57 memcpy(edge,e[i],sizeof(edge));
58 for(int k=0;k<v[i][j].size();k++){
59 add(i,v[i][j][k]+n,1);
60 add(v[i][j][k]+n,i,0);
61 }
62 if (dfs(i)){
63 flag=1;
64 printf("%d ",j);
65 break;
66 }
67 }
68 if (!flag)printf("%d ",m+1);
69 EE[i]=E;
70 memcpy(h[i],head,sizeof(head));
71 memcpy(e[i],edge,sizeof(edge));
72 }
73 printf("\n");
74 for(int i=1;i<=n;i++){
75 scanf("%d",&x);
76 bool flag=0;
77 for(int j=i;j;j--){
78 E=EE[j-1];
79 memset(vis,0,sizeof(vis));
80 memcpy(head,h[j-1],sizeof(head));
81 memcpy(edge,e[j-1],sizeof(edge));
82 for(int k=1;k<=x;k++)
83 for(int l=0;l<v[i][k].size();l++){
84 add(i,v[i][k][l]+n,1);
85 add(v[i][k][l]+n,i,0);
86 }
87 if (dfs(i)){
88 flag=1;
89 printf("%d ",i-j);
90 break;
91 }
92 }
93 if (!flag)printf("%d ",i);
94 }
95 printf("\n");
96 }
97 }
[loj2477]劈配的更多相关文章
- BZOJ5251 八省联考2018劈配(网络流)
劈配,匹配,网络流.那么考虑怎么跑网络流. 先看第一问.首先套路的建出超源超汇.不用想也知道导师向汇连容量为战队人数上限的边.特别地,给出局也建一个点,向汇连容量inf的边(似乎没有必要).对于一个新 ...
- 【BZOJ5251】【八省联考2018】劈配(网络流,二分答案)
[BZOJ5251][八省联考2018]劈配(网络流,二分答案) 题面 洛谷 BZOJ Description 一年一度的综艺节目<中国新代码>又开始了. Zayid从小就梦想成为一名程序 ...
- [BZOJ5251][九省联考2018]劈配(网络流)
5251: [2018多省省队联测]劈配 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 33 Solved: 22[Submit][Status][ ...
- [BZOJ5251][多省联测2018]劈配
bzoj luogu sol 从前往后依次加边,每次对一个人做完劈配后就把当前这个残余网络存下来.这样第二问就可以二分排在第几名然后check一下在对应排名的残余网络上还能不能再增广. 给网络流开结构 ...
- [八省联考2018] 劈配 mentor
Description 一年一度的综艺节目<中国新代码>又开始了.Zayid 从小就梦想成为一名程序员,他觉得这是一个展示自己的舞台,于是他毫不犹豫地报名了. Input 轻车熟路的Zay ...
- bzoj 5251: [2018多省省队联测]劈配
Description 一年一度的综艺节目<中国新代码>又开始了. Zayid从小就梦想成为一名程序员,他觉得这是一个展示自己的舞台,于是他毫不犹豫地报名了. 题目描述 轻车熟路的Zayi ...
- bzoj5251 [2018多省省队联测]劈配
直接网络流模拟即可AC. 可持久化+暴力=90分, 可持久化+二分=30分, 暴力加边+二分=100分. 我也很无奈啊. Ivan便涨红了脸,额上的青筋条条绽出,争辩道,“memcpy也是可持久化…… ...
- bzoj千题计划321:bzoj5251: [2018多省省队联测]劈配(网络流 + 二分)
https://www.lydsy.com/JudgeOnline/problem.php?id=5251 第一问: 左边一列点代表学生,右边一列点代表导师 导师向汇点连流量为 人数限制的 边 然后从 ...
- BZOJ.5251.[八省联考2018]劈配mentor(最大流)
BZOJ 洛谷 对于每个人,每次枚举一个志愿看是否能增广即可. 对于第二问,可以保留第一问中\(n\)次增广前后的\(n\)张图,二分,在对应图上看是否能增广即可. 貌似匈牙利的某种写法比网络流优多了 ...
随机推荐
- openssl 生成证书上 grpc 报 legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0
最近用传统的方式 生成的证书上用golang 1.15. 版本 报 grpc 上面 ➜ ~ go version go version go1.15.3 darwin/amd64 上面调用的时候报错了 ...
- Serverless 在 SaaS 领域的最佳实践
作者 | 计缘 来源 | Serverless 公众号 随着互联网人口红利逐渐减弱,基于流量的增长已经放缓,互联网行业迫切需要找到一片足以承载自身持续增长的新蓝海,产业互联网正是这一宏大背景下的新趋势 ...
- 单体应用 适合采用 dapr 构建吗?
缘起今天在微信群里有同学问 "纯.net 项目,有必要上dapr吗?" 当时不假思索的说不是微服务没必要,其他群友也说没必要.下午细想了一下,觉得这个和微服务没有关系,如果我的应用 ...
- 洛谷4455 [CQOI2018]社交网络 (有向图矩阵树定理)(学习笔记)
sro_ptx_orz qwq算是一个套路的记录 对于一个有向图来说 如果你要求一个外向生成树的话,那么如果存在一个\(u\rightarrow v\)的边 那么\(a[u][v]--,a[v][v] ...
- 2020.3.28-ICPC训练联盟周赛,选用试题:UCF Local Programming Contest 2016
A.Majestic 10 签到题. #include<iostream> #include<cstdio> #include<cstring> #include& ...
- Python 实现断网自动重连
为了实现 断网了,自动连接网络原理:每隔一段时间ping一下百度,判断网络状态,没有联网的话,就模仿浏览器发一条Post给服务器import urllibimport hashlibimport su ...
- MC-BE基岩版服务器搭建与日常维护
有部分内容被csdn和谐,强烈建议移步我的个人博客以获得更好的排版和阅读体验: xzajyjs.cn. 目录 环境搭建 开始部署 日常维护 服务器的白名单机制 定时备份 服务器升级 服务器模组安装 搭 ...
- 10-1 Python 学习笔记
1. 项目 在文本编辑器中新建一个文件,写几句话来总结一下你至此学到的 Python 知识,其中每一行都以"In Python you can"打头. 将这个文件命名为learni ...
- java定时任务调度框架
java定时任务目前主要有三种: Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务.使用这种方式可以让你的程序按照某一个频度执行,但不能在 ...
- 第二次Alpha Scrum Meeting
本次会议为Alpha阶段第二次Scrum Meeting会议 会议概要 会议时间:2021年4月24日 会议地点:线上会议 会议时长:30min 会议内容简介:本次会议主要由每个人展示自己目前完成的工 ...