JZOJ 5307. 【NOIP2017提高A组模拟8.18】偷窃 (Standard IO)
5307. 【NOIP2017提高A组模拟8.18】偷窃 (Standard IO)
Time Limits: 1000 ms Memory Limits: 262144 KB
Description
Input
Output
Sample Input
5 5
1 4 0 5 2
2 1 2 0 1
0 2 3 4 4
0 3 0 3 1
1 2 2 1 1
Sample Output
9
Data Constraint
Hint
题解
乍一看以为是贪心,贪心保留最大的
后来,发现有个诡异的地方
这是一个会搬砖的小偷
于是,只能用二分图了
如果第i行和第j列最大值相等且可以放,就连一条边
跑一遍匹配匹配到的边就只算一次,代表只放一个就能满足一行和一列
匹配不到的行和列,就分别算一次
代码
#include<cstdio>
#include<cstring>
#include<vector>
#define N 101
using namespace std;
vector<long>map[N];
long a[N][N],link[N],hang[N],lie[N];
bool cover[N];
bool find(long now)
{ long i,to;
for(i=0;i<map[now].size();i++){
to=map[now][i];
if(!cover[to]){
cover[to]=true;
if(!link[to]||find(link[to])){
link[to]=now;
return true;
}
}
}
return false;
}
int main()
{ long n,m,i,j,ans=0,sum=0;
scanf("%ld%ld",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++){
scanf("%ld",&a[i][j]);
hang[i]=max(hang[i],a[i][j]);
lie[j]=max(lie[j],a[i][j]);
if(a[i][j])
sum+=a[i][j]-1;
}
for(i=1;i<=n;i++)
if(hang[i])ans+=hang[i]-1;
for(j=1;j<=m;j++)
if(lie[j])ans+=lie[j]-1;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++){
if(hang[i]==lie[j]&&a[i][j])
map[i].push_back(j);
}
for(i=1;i<=n;i++){
memset(cover,false,sizeof(cover));
if(find(i))
ans-=hang[i]-1;
}
printf("%ld\n",sum-ans);
return 0;
}
JZOJ 5307. 【NOIP2017提高A组模拟8.18】偷窃 (Standard IO)的更多相关文章
- JZOJ 【NOIP2017提高A组模拟9.14】捕老鼠
JZOJ [NOIP2017提高A组模拟9.14]捕老鼠 题目 Description 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里的仓库灭灭鼠.于是,猫被农夫约派去捕 ...
- JZOJ 5305. 【NOIP2017提高A组模拟8.18】C (Standard IO)
5305. [NOIP2017提高A组模拟8.18]C (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Description ...
- [JZOJ 100026] [NOIP2017提高A组模拟7.7] 图 解题报告 (倍增)
题目链接: http://172.16.0.132/senior/#main/show/100026 题目: 有一个$n$个点$n$条边的有向图,每条边为$<i,f(i),w(i)>$,意 ...
- 【NOIP2017提高A组模拟9.7】JZOJ 计数题
[NOIP2017提高A组模拟9.7]JZOJ 计数题 题目 Description Input Output Sample Input 5 2 2 3 4 5 Sample Output 8 6 D ...
- JZOJ 100029. 【NOIP2017提高A组模拟7.8】陪审团
100029. [NOIP2017提高A组模拟7.8]陪审团 Time Limits: 1000 ms Memory Limits: 131072 KB Detailed Limits Got ...
- JZOJ 5328. 【NOIP2017提高A组模拟8.22】世界线
5328. [NOIP2017提高A组模拟8.22]世界线 (File IO): input:worldline.in output:worldline.out Time Limits: 1500 m ...
- JZOJ 5329. 【NOIP2017提高A组模拟8.22】时间机器
5329. [NOIP2017提高A组模拟8.22]时间机器 (File IO): input:machine.in output:machine.out Time Limits: 2000 ms M ...
- JZOJ 5286. 【NOIP2017提高A组模拟8.16】花花的森林 (Standard IO)
5286. [NOIP2017提高A组模拟8.16]花花的森林 (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Descript ...
- 【NOIP2017提高A组模拟9.17】信仰是为了虚无之人
[NOIP2017提高A组模拟9.17]信仰是为了虚无之人 Description Input Output Sample Input 3 3 0 1 1 7 1 1 6 1 3 2 Sample O ...
随机推荐
- maven-assembly-plugin 打包包含多余依赖问题一则
有同事反馈自己maven-assembly-plugin打的包里面多了很多mvn dependency:tree中没有的jar. 我当时只是试着把他的maven-assembly-plugin更新到了 ...
- Java虚拟机内存划分
Java虚拟机在执行Java程序时,会把它管理的内存划分为若干个不同的数据区.这些区域有不同的特性,起不同的作用.它们有各自的创建时间,销毁时间.有的区域随着进程的启动而创建,随着进程结束而销毁,有的 ...
- VisionPro和Halcon的详细对比
一.概括的对比 1.1 Halcon的优势 Halcon有着更加低廉的Lisence 1.并且提供更好.更强大的2D和3D的视觉软件库 2.Halcon支持的视觉图像采集设备数量是Visionpro ...
- 调参、最优化、ml算法(未完成)
最优化方法 调参方法 ml算法 梯度下降gd grid search lr 梯度上升 随机梯度下降 pca 随机梯度下降sgd 贝叶斯调参 lda 牛顿算法 knn 拟牛顿算法 kmeans ...
- 二评北科团委:“斩首计划”进行时,其用心也毒
近日,在同学们和热心群众的共同努力下,各高校相继悬崖勒马,北大马会.北语新新青年.人大新光等进步社团均顺利注册.而北科团委倒行逆施,可谓一枝独秀,对于齐民学社的同学们的诉求,不仅不予以回应,反而采取表 ...
- 每个月执行一次任务,保存90天的mongo日志数据
用mongo 的dump 和 restore实现 shell版 #!/bin/bash mongodump --host -d lewifi -c auditOrigData -q {}} -o ~/ ...
- windows下的tfjs-node安装异常总结
大约有半年没有写博客了,奔波于上海这座魔都之中.险些忘了自己是个有梦想的全栈工程师 书接上回,由于个人非常厌恶python的语法,半年前发现了tensorflow.js这个宝贝(下简称tfjs),喜出 ...
- ffmpeg android移植
CMake语法简介(androidstudio中利用CMake开发NDK): http://blog.csdn.net/u013718120/article/details/62883711FFmpe ...
- 如何手动添加jar包到本地maven仓库
环境 win10 idea工具 1.确认已经安装好 mvn环境 MAVEN_HOME D:\Tool\apache-maven-3.5.2 Path %MAVEN_HOME%\bin 2 ...
- Luogu_1080_国王游戏
题目描述 恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这n位大臣排成一排,国王站在队伍的最前面.排好队 ...