传送门:D. Monopole Magnets

这一场也是很神奇了,先是推迟三天,后是评测鸡崩了,unrated...

题意:每一行,每一列必须都要至少有一个s,n要可以到所有的黑格,n的上下左右如果有一个s,他就可以往那个方向移动一格,n最后不能在白格,求n最少的个数。

题解:

1、每一行每一列如果有#,#必须是连续的,否则输出-1

2、如果有一行没有#,那么至少有一列要没有#,s就可以放在交点处,否则输出-1。

3、求解连通块的个数

 1 #include<bits/stdc++.h>
2 #define ll long long
3 using namespace std;
4
5 char a[1010][1010];
6 bool x[1010],y[1010]; //x记录有#的行,y记录有#的列
7 int dx[]={1,-1,0,0};
8 int dy[]={0,0,1,-1};
9
10 void dfs(int xx,int yy)
11 {
12 a[xx][yy]='.';
13 for(int i=0;i<4;i++){
14 int xxx=xx+dx[i];
15 int yyy=yy+dy[i];
16 if(a[xxx][yyy]=='#') dfs(xxx,yyy);
17 }
18 return ;
19 }
20
21 int main()
22 {
23 ios::sync_with_stdio(false);
24 cin.tie(0);
25 cout.tie(0);
26 int n,m;
27 cin>>n>>m;
28 for(int i=0;i<n;i++) cin>>a[i];
29 int flag=1;
30 for(int i=0;i<n;i++){
31 for(int j=0;j<m;j++){
32 if(a[i][j]=='#') {
33 if(x[i]&&j&&a[i][j-1]!='#'){
34 flag=0;
35 break;
36 }
37 if(y[j]&&i&&a[i-1][j]!='#'){
38 flag=0;
39 break;
40 }
41 x[i]=1,y[j]=1;
42 }
43 }
44 if(!flag) break;
45 }
46 int p=0,q=0;
47 for(int i=0;i<n;i++) if(!x[i]) p=1;
48 for(int i=0;i<m;i++) if(!y[i]) q=1;
49 if(p^q) flag=0; //如果有行没有# 而没有列没有#或者反过来,就输出-1.
50 if(!flag) {cout<<-1<<endl;return 0;}
51 int ans=0;
52 for(int i=0;i<n;i++){
53 for(int j=0;j<m;j++){
54 if(a[i][j]=='#') ans++,dfs(i,j); //简单的找连通块
55 }
56 }
57 cout<<ans<<endl;
58 return 0;
59 }

Codeforces 1345 D - Monopole Magnets的更多相关文章

  1. Codeforces Round #330 (Div. 1) C. Edo and Magnets 暴力

    C. Edo and Magnets Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/594/pr ...

  2. CodeForces - 344A Magnets (模拟题)

    CodeForces - 344A id=46664" style="color:blue; text-decoration:none">Magnets Time ...

  3. codeforces Magnets

    link:http://codeforces.com/contest/344/problem/A 这道题目很简单. 把输入的01 和10 当做整数,如果相邻两个数字相等的话,那么就属于同一组,否则,就 ...

  4. Codeforces 344A Magnets

    Description Mad scientist Mike entertains himself by arranging rows of dominoes. He doesn't need dom ...

  5. coderforces Gym 100803A/Aizu 1345/CSU 1536/UVALive 6832 Bit String Reordering(贪心证明缺)

    Portal: http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1345  http://codeforces.com/gym/100 ...

  6. Codeforces Round #639 (Div. 2)

    Codeforces Round #639 (Div. 2) (这场官方搞事,唉,just solve for fun...) A找规律 给定n*m个拼图块,每个拼图块三凸一凹,问能不能拼成 n * ...

  7. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  8. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  9. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

随机推荐

  1. 科来网络通讯协议图2019版(OSI七层模型)

    来源:http://www.colasoft.com.cn/download/protocols_map.php 自己把它转成了图片,好做查看:https://www.lanzous.com/ib5h ...

  2. 【C++】《C++ Primer 》第十一章

    第十一章 关联容器 关联容器和顺序容器的不同:关联容器中的元素时按照关键字来保存和访问的. 关联容器支持通过关键字来高效地查找和读取元素,基本的关联容器类型是 map和 set. 类型 map 和 m ...

  3. 在IDEA中通过Module管理多个项目

    你身边有没有这种顽固的Eclipse忠实用户:IDEA不能一个窗口管理多个项目!太不方便了! 对于一个窗口同时管理多个项目的需求,在我们日常开发时候是经常需要的.尤其当我们在分布式环境下,在一个窗口中 ...

  4. 奇技淫巧,还是正统功夫? - Python推导式最全用法

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  5. XSS类型,防御及常见payload构造总结

    什么是XSS? XSS全称是Cross Site Scripting即跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生了. 最直接的例子:&l ...

  6. 2.4V升3.3V,2.4V升3V,1A大电流升压芯片

    两节镍氢电池串联就是1.2V+1.2V=2.4V的供电电压了,2.4V升3V, 2.4V升3.3V的话,就能稳压稳定给模块供电了,镍氢电池是会随着使用的电池电量减少的话,电池的电压也是跟着变化的,导致 ...

  7. python爬虫如何提高效率

    开启线程池: 线程池 asyncio 特殊的函数 协程 任务对象 任务对象绑定 事件循环 from multiprocessing.dummy import Pool map(func,alist): ...

  8. linux设备

    设备初始化时同样要执行一个device_register函数,该函数传入一个struct device *类型的指针,因此要定义一个struct device类型的变量作为我们的设备. struct ...

  9. 让源码包apache服务被服务管理命令识别

    在默认情况下,源码包服务是不能被系统的服务管理命令所识别和管理的,但是如果我们做一些设定,则也是可以让源码包服务被系统的服务管理命令所识别和管理的.不过笔者并不推荐大家这样做, 因为这会让本来区别很明 ...

  10. Mybatis参数预编译

    Mybatis参数预编译 一.数据库预编译介绍 1.数据库SQL语句编译特性: 数据库接受到sql语句之后,需要词法和语义解析,优化sql语句,制定执行计划.这需要花费一些时间.但是很多情况,我们的一 ...