社区讨论

63分求条(消失的return),必关

P1331海战参与者 4已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@mlmrt990
此快照首次捕获于
2026/02/15 04:30
4 天前
此快照最后确认于
2026/02/18 22:50
13 小时前
查看原帖
CPP
//这是我的代码
#include<bits/stdc++.h>
using namespace std;

int r, c, s, l, p, q;
char a[1001][1001];
int ans;
bool flag;

void DFS(int x, int y){
    int p, q, temp = 0;
    for(q=y;;q++)
        if(a[x][q]=='.'||q>c)
            break;
    q--;
    for(p=x;;p++)
        if(a[p][y]=='.'||p>r)
            break;
    p--;
    for(int i=y;i<=q;i++){
	    for(int j=x;a[j][i]=='#';j++)
            temp++;
        if(temp!=p-x+1){
            cout << "Bad placement.";
            flag = 1;
            return;
        }
	    temp = 0;
    }
    for(int i=x;i<=p;i++)
		for(int j=y;j<=q;j++)
            a[i][j]='*';
	ans++;
	return;
}

int main(){
	cin >> r >> c;
	for(int i=1;i<=r;i++)
		for(int j=1;j<=c;j++)
            cin >> a[i][j];
	for(int i=1;i<=r;i++)
		for(int j=1;j<=c;j++)
			if(a[i][j]=='#')
                DFS(i, j);
			if(flag)
                return 0;
	cout << "There are " << ans << " ships." << endl;
	return 0;
}
//第一个测试点是这样的:
//6 6
// .....#
// ##...#
// ##...#
// ..#..#
// .....#
// ######
//但我的输出是这样的
//Bad placement.Bad placement.Bad placement.Bad placement.Bad placement.(再弱弱地说一句,我样例过了qwq)
//请dalao们指条明路qwq

回复

3 条回复,欢迎继续交流。

正在加载回复...