悬赏关注!
  • 板块学术版
  • 楼主XNULL666
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/11/27 17:38
  • 上次更新2023/10/27 01:11:39
查看原帖
悬赏关注!
550324
XNULL666楼主2022/11/27 17:38

题目链接:https://atcoder.jp/contests/abc279/tasks/abc279_c

我的代码:

#include<bits\stdc++.h>
using namespace std;
const int N=400005;
int n,m;
char x;
string tempa[N],tempb[N];
string a[N],b[N];
int main(){
    scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){tempa[i]=" ";tempb[i]=" ";}
    for(int i=1;i<=m;i++){a[i]=" ";b[i]=" ";}
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            scanf(" %c",&x);
            if(x=='#'){tempa[i][j]='1';}
            else {tempa[i][j]='0';}
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            scanf(" %c",&x);
            if(x=='#'){tempb[i][j]='1';}
            else {tempb[i][j]='0';}
        }
    }
    printf("-----Step 1-----\n");
    for(int i=1;i<=m;i++){
        a[i][0]=' ';b[i][0]=' ';
        for(int j=1;j<=n;j++){
            a[i][j]=tempa[j][i];
            b[i][j]=tempb[j][i];
        }
		printf("i:%d a:%s sa:%d b:%s sb:%d\n",i,a[i].c_str(),a[i].size(),b[i].c_str(),b[i].size());
    }
    swap(n,m);
    sort(a+1,a+n+1);sort(b+1,b+n+1);
    printf("-----Step 2-----\n");
    for(int i=1;i<=n;i++){
    	printf("*%s*\n",a[i].c_str());
	}
    for(int i=1;i<=n;i++){
    	printf("*%s*\n",b[i].c_str());
	}
    printf("-----Step 3-----\n");
	for(int i=1;i<=n;i++){
		int left=1,right=n,flag=0;
		while(left<right){
			int mid=(left+right)/2;
			if(a[i]==b[mid]){
				flag=1;
				break;
			}
			if(a[i]<b[mid]){left=mid+1;}
			else {right=mid;}
		}
		if(!flag){
			printf("No\n");
			return 0;
		}
	}
	printf("Yes\n");
    return 0;
}

测试数据:

输入:
3 3
#.#
.#.
#.#
##.
##.
.#.

输出:
No

为什么这段代码

    for(int i=1;i<=m;i++){
        a[i][0]=' ';b[i][0]=' ';
        for(int j=1;j<=n;j++){
            a[i][j]=tempa[j][i];
            b[i][j]=tempb[j][i];
        }
    }

所计算的a,b字符串,用

cout<<a[i]<<' '<<b[i]<<'\n';

输出是空,用

printf("%s %s\n",a[i].c_str(),b[i].c_str();

却能输出正确的计算结果? 而且a[i].size和b[i].size()都只有1(a[i][0],b[i][0]用空格占位)

2022/11/27 17:38
加载中...