社区讨论

求解为什么只有25分,悬赏5元!!!

P1012[NOIP 1998 提高组] 拼数参与者 4已保存回复 7

讨论操作

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

当前回复
7 条
当前快照
1 份
快照标识符
@mi6nvoi3
此快照首次捕获于
2025/11/20 07:56
4 个月前
此快照最后确认于
2025/11/20 07:56
4 个月前
查看原帖
CPP
#include<iostream>
#include <string>
using namespace std;
#define maxn 25

int main (){
	int n;
	cin>>n;
	string a[maxn];
	int boo[maxn];
    //输入
	for(int i=0;i<n;i++){
		cin>>a[i];
		boo[i]=0;
	}
	string res;
    //每次找最大的那个,总共要找n次,两重循环
	for(int i=0;i<n;i++){
		int temp=0;
		while (true){
			if(boo[temp]==0){
				break;
			}
			temp++;
		}
		for(int j=0;j<n;j++){
			string temp_a;
			string temp_b;
			temp_a.append(a[j]);
			temp_a.append(a[temp]);
			temp_b.append(a[temp]);
			temp_b.append(a[j]);
			/*
if(boo[j]==0&&a[j].compare(a[temp])==1){
				temp=j;
			}*/
			if(boo[j]==0&&temp_a.compare(temp_b)==1){
				temp=j;
			}
		}
		boo[temp]=1;
		res.append(a[temp]);
	}
	cout<<res;	
	return 0;
} 
第二个点就出现了错误,但是我本机上测试第二个测试点没有发现错误:
第二个测试点数据:
输入:
CPP
4
13 24 75 42
输出:
CPP
75422413
本机测试结果:
CPP
4
13 24 75 42
75422413请按任意键继续. . .
如果能帮我解决这个问题,请联系我 QQ:599454157,谢谢

回复

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

正在加载回复...