JZOJ 3457. 【NOIP2013模拟联考3】沙耶的玩偶(doll)
题目
Description
终点的机关是一个立着的m*n 的方格棋盘,在有些格子上放了一个玩偶,而有些地方直接挖了个大坑。只有取走所有玩偶才能打开出口。但是,由于奇怪的设定,理树和沙耶不能直接触碰玩偶,他们需要操纵机器人来收集它。机器人的走法很奇怪,和国际象棋的马有点像,只不过马可以走任意方向的1*2 路线,它们只会由上往下走r*c(或c*r)的路线,不能回头。而机器人一旦经过一个有玩偶的格子,那个格子上的玩偶将被回收,并且在机器人离开时,那个格子会变成一个坑。理树可以把机器人放在任何一个有玩偶的格子上作为起点,也可以在任何一个有玩偶的格子回收机器人。机器人行走可以视为瞬移,只不过每一次设置新起点都会消耗1 时间。并且,有坑的格子不能落脚。
就在这个紧要关头,玩偶狂热爱好者的沙耶却流着口水智商归0。理树不得不转而求助你,帮忙计算出最少多少时间就能收集到所有玩偶。
Input
字符串。如果某个字符是'.',表示这个地方有一个玩偶;如果这个字符是'x',表示这个地
方是坑。
Output
Sample Input
3 3 1 2 ... .x. ...
Sample Output
4
Data Constraint
70%的数据中,1<=M<=20,1<=N<=4,1<=R,C<=3。
100%的数据中,1<=M,N<=50,1<=R,C<=10。
Hint
分析
- 首先标点,然后跑二分图
- 答案=空格数-最大匹配
代码
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<vector> 5 using namespace std; 6 long long n,m,x,y,ans,link[100001],s[205][205],p,ss; 7 vector<int> f[10001]; 8 bool cover[100001]; 9 int map[100][100],rk[100][100]; 10 bool find(int i) 11 { 12 for (int k=0;k<f[i].size();k++) 13 if (!cover[f[i][k]]) 14 { 15 int j=f[i][k]; 16 cover[j]=true; 17 int q=link[j]; 18 link[j]=i; 19 if (q==0||find(q)) return true; 20 link[j]=q; 21 } 22 return false; 23 } 24 int main() 25 { 26 int n,m,r,c; 27 cin>>n>>m>>r>>c; 28 char num; 29 int fx[4][2]={{r,c},{c,r},{r,-c},{c,-r}}; 30 int cnt=0,tot=0; 31 for (int i=1;i<=n;i++) 32 for (int j=1;j<=m;j++) 33 { 34 cin>>num; 35 if (num=='.') map[i][j]=1,rk[i][j]=++cnt; 36 else tot++; 37 } 38 for (int i=1;i<=n;i++) 39 for (int j=1;j<=m;j++) 40 for (int k=0;k<4;k++) 41 { 42 int ax=i+fx[k][0],ay=j+fx[k][1]; 43 if (ax>n||ay>m||ax<1||ay<1||!map[ax][ay]) continue; 44 f[rk[i][j]].push_back(rk[ax][ay]); 45 } 46 int ans=0; 47 for (int i=1;i<=n;i++) 48 { 49 for (int j=1;j<=m;j++) 50 { 51 if (map[i][j]==1) 52 { 53 memset(cover,0,sizeof(cover)); 54 ans+=find(rk[i][j]); 55 } 56 } 57 } 58 cout<<n*m-tot-ans; 59 }
转载于:https://www.cnblogs.com/zjzjzj/p/11361667.html
JZOJ 3457. 【NOIP2013模拟联考3】沙耶的玩偶(doll)相关推荐
- JZOJ 3461. 【NOIP2013模拟联考5】小麦亩产一千八(kela)
3461. [NOIP2013模拟联考5]小麦亩产一千八(kela) (Standard IO) Time Limits: 1000 ms Memory Limits: 262144 KB Det ...
- jzoj 3461. 【NOIP2013模拟联考5】小麦亩产一千八(math)
3461. [NOIP2013模拟联考5]小麦亩产一千八 Description "有了金坷垃,肥料一袋能顶两袋撒,小麦亩产一千八,吸收两米下的氮磷钾--",话说HYSBZ(Hen ...
- JZOJ 3468. 【NOIP2013模拟联考7】OSU!(osu)
Description osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为一个长 ...
- JZOJ 3456. 【NOIP2013模拟联考3】恭介的法则(rule)
题目 Description 终于,在众亲们的奋斗下,最终boss 恭介被关进了库特设计的密室.正当她们松了一口气时,这个世界却发生了天翻覆地的变化:地面开始下沉,天空开始变成血红色,海水沸腾--一幅 ...
- JZOJ 3455. 【NOIP2013模拟联考3】库特的向量(code)
题目 Description 从前在一个美好的校园里,有一只(棵)可爱的弯枝理树.她内敛而羞涩,一副弱气的样子让人一看就想好好疼爱她.仅仅在她身边,就有许多女孩子想和她BH,比如铃,库特,等等.不过, ...
- [jzoj 3461]【NOIP2013模拟联考5】小麦亩产一千八 {Fibonacci数列}
题目 Description "有了金坷垃,肥料一袋能顶两袋撒,小麦亩产一千八,吸收两米下的氮磷钾--",话说HYSBZ(Hengyang School for Boys & ...
- 【NOIP2013模拟联考5】军训(training)
Description HYSBZ 开学了!今年HYSBZ 有n 个男生来上学,学号为1-n,每个学生都必须参加军训.在这种比较堕落的学校里,每个男生都会有Gi 个女朋友,而且每个人都会有一个欠扁值H ...
- 【NOIP2013模拟联考6】选课(select)
Description 你真的认为选课是那么容易的事吗?HYSBZ的ZY同志告诉你,原来选课也会让人产生一种想要回到火星的感觉.假设你的一周有n天,那么ZY编写的选课系统就会给你n堂课.但是该系统不允 ...
- 【NOIP2013模拟联考5】休息(rest)
Description 休息的时候,可以放松放松浑身的肌肉,打扫打扫卫生,感觉很舒服.在某一天,某LMZ 开始整理他那书架.已知他的书有n 本,从左到右按顺序排列.他想把书从矮到高排好序,而每一本书都 ...
最新文章
- LeetCode简单题之二进制表示中质数个计算置位
- python3打开文件的代码_Python3 对文件操作
- python用于什么-python用于什么
- (转载)cmd-命令大全及详解
- 【caffe-MATLAB】自己编译faster-rcnn的MATLAB版本
- 使用 csv 导入的方式在 SAP S/4HANA 里创建 employee 数据
- C++this指针的用途
- dev c++ 报错[Error] ld returned 1 exit status 的解决办法
- javaweb实现学生管理系统
- Unity游戏建议对话功能 Fungus插件。
- iOS测试之移动App测试指南
- python selenium下载图片_用selenium自动加载浏览器下载图片
- oracle exadata中国保有量,怎样购买Exadata?
- maxscale连接mysql_MaxScale实现mysql读写分离,负载均衡
- TP6使用session
- 抛弃光驱,让你的U盘变光驱,制作USB-CDROM,用U盘安装系统
- Windows 10出现0xc0000225错误代码如何解决?
- SAP AFS Arun 增强 出口 介绍
- Centos系统下搭建Smokeping 方法
- Ubuntu Linux 系统 键盘错乱 ,按键与输出不一致
热门文章
- 【转】JAVA中的浅拷贝和深拷贝
- SCDPM 2012R2之保护SQL SERVER
- Use Amazon VM to try Openstack (1) (with DevStack)
- 安装 pear、phpunit 测试用例步骤方法
- silverlight 学习笔记 (七):Prism的第一个应用
- 问题 K: 数字统计
- 同一个电脑安装几个MATLAB,同一个版本的matlab、同一个.m文件,为何一个顺利执行、另一个出错?...
- zookeepe安装配置_Zookeeper安装配置及简单使用
- python中的for in 语句_2、python,for..in语句
- 如何查看linux的版本?