Codeforces Purification
来源:互联网 发布:喵萝捏脸数据 百度云 编辑:程序博客网 时间:2024/06/04 18:56
这题想通了就不难。首先先考虑什么样的情况下才会输出-1呢?只有在出现有一行并且一列全为E的时候。然后再考虑有一行全为E且每一列都至少有一个不为E的情况:
eg:EEEEE
. . . . .
. . . . .
. . . . .
. . . . .
这种情况下因为每一列至少有有一个不为E,那么就从第一列开始找到一个 ‘. ’ 输出他的坐标,然后找到第二列的‘ . ’,输出他的坐标,如此往复。
最后再考虑每一行至少有一个不为E的点且每一列至少有一个不为E的点,这时候从第一行开始找‘.’然后输出,如此往复。
注意:第一组的测试数据有问题,已用红色标记。
Sample test(s)
Input
3
.E.
E.E
.E.
Output
1 1
2 2
3 1(原为3)
#include <stdio.h>#include <stdlib.h>#include<string.h>char map[105][105];int row[105]={0},col[105]={0};int main(){ int n,i,j; int r=0,c=0; memset(row,0,sizeof(row)); memset(col,0,sizeof(col)); scanf("%d",&n); for(i=0;i<n;i++) scanf("%s",map[i]); for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(map[i][j]=='E') {row[i]++; col[j]++;} if(row[i]==n)r=1;//出现一行全为E if(col[j]==n)c=1;//出现一行全为E if(r&c) {printf("-1\n"); return 0;} } } if(r) { for(j=0;j<n;j++) { for(i=0;i<n;i++) { if(map[i][j]=='.') {printf("%d %d\n",i+1,j+1); break;} } } } else for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(map[i][j]=='.') { printf("%d %d\n",i+1,j+1); break; } } } return 0;}
- Codeforces Purification
- Codeforces 329A Purification
- codeforces 330C Purification
- Codeforces 330C Purification【思维】
- Purification
- Codeforces Round #192 (Div. 2) C. Purification
- Codeforces Round #192 (Div. 2) (329A)C.Purification
- Codeforces Round #192 (Div. 1) A. Purification(贪心模拟+清除每行每列)
- CF330 C. Purification 认真想后就成水题了
- CF 329A(Purification-贪心-非DLX)
- 无监督对话数据清洗利器:Data Purification Framework
- codeforces~~~
- Codeforces
- codeforces
- Codeforces
- codeforces
- codeforces
- Codeforces
- ZOJ 1307 Packets
- hdu 1159 Common Subsequence
- hdu 1087 Super Jumping! Jumping! Jumping!
- jQuery定义自己函数
- hdu 1003 Max Sum
- Codeforces Purification
- hdu 2181 哈密顿绕行世界问题 - 搜索
- Burning Midnight Oil
- poj 1979 Red and Black - bfs
- 分析函数
- hdu 1241 Oil Deposits - bfs
- poj 3273 Monthly Expense
- poj 2785 4 Values whose Sum is 0
- iOS7设置状态栏颜色