求AC代码,数组——炸弹

题目:

  1. 数组-炸弹
    题目ID:1213100分
    最新提交:
    0 分
    历史最高:
    0 分
    时间限制: 1000ms
    空间限制: 262144kB
    题目描述
    时间:1s 空间:256M
    题目描述:
    一个月黑风高的晚上你接到了一个爆破任务,有一个n∗m的场地,有些地方有墙,假如你在(i,j)位置投1个炸弹,第i行和第j列的墙都会被炸毁,现在你想知道是否可以只投放一次炸弹就将所有的墙炸掉。保证至少有一面墙。

输入格式:
第一行一个整数T,表示测试数据的组数
每组数据的第一行,包含两个整数n,m
接下来n行,
每行m个字符,’*’ 表示墙,’.’表示空地。

输出格式:
如果可以一次炸毁所有的墙在第一行输出“YES”,否则输出”NO”
如果可以一次炸毁所有的墙,在第二行输出投放炸弹的位置x,y
如果有多个位置可以炸毁,输出行号最小的,如果还有多个行号一样小的,输出列标号最小的。

样例输入:

2
3 4
.*..
....
.*..
3 3
..*

.*.

*..

样例输出:
YES
1 2
NO

约定:
1 <= n, m <= 1000  

提示:无

这是那一讲的

二维数组题单第三题

int main(){
	//输入t
	for(int ti=1;ti<=t;ti++){
		for(int i=1;i<1010;i++)
			//x[i]设为0
		for(int i=1;i<1010;i++)
			//y[i]设为0
		for(int i=1;i<1010;i++)
			for(int j=1;j<1010;j++)
				//g[i][j]设为0
		//把temp和sum都设为0
		//输入n和m
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				//输入k
				if(k=='*'){
					//x[i]和y[j]++
					//g[i][j]设为1
					//sum往上加一
				}
			}
		}
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				if(x[i]+y[j]-g[i][j]==sum){
					//a=i,b=j
					//将temp归为1
					break;
				}
			}
			if(temp) break;
		}
		if(/*temp等于0*/)//输出"NO";
		else{
			//输出"YES"和a,b(记得换行)
		}
	}
	return 0;
}
4 个赞

对了给个解决方案

1 个赞