求hack
查看原帖
求hack
818475
ChpyX2楼主2024/8/2 11:09

rt,思路是枚举小于10的数字后暴力求解,WA#8

错误点信息:Wrong Answer.wrong output format Unexpected end of file - int32 expected

#include<bits/stdc++.h>
using namespace std;
int n,a[55],vis[55]={},c[55]={};//single:vis,found:c
vector<int>q[15];
string str;
void dfs(int t){
	if(t==min(n,9)+1){
		memset(c,0,sizeof(c));
		for(int i=1;i<=str.size();){
			if(vis[i]){
				i++;
				continue;
			}
			if(vis[i+1])return;
			int now=a[i]*10+a[i+1];
			if(c[now]==1||now>n)return;
			c[now]=1;
			i+=2;
		}
		for(int i=1;i<=str.size();){
			if(vis[i]){
				cout<<a[i++]<<' ';
				continue;
			}
			int now=a[i]*10+a[i+1];
			cout<<now<<' ';
			i+=2;
		}
		exit(0);
	}
	for(int i=0;i<q[t].size();i++){
		vis[q[t][i]]=1;
		dfs(t+1);
		vis[q[t][i]]=0;
	}
	return;
}
int main(){
	cin>>str;
	if(str.size()<=9)n=str.size();
	else n=(str.size()-9)/2+9;
	for(int i=1;i<=str.size();i++){
		a[i]=str[i-1]-'0';
		q[a[i]].push_back(i);
	}
	dfs(1);
	return 0;
}
2024/8/2 11:09
加载中...