社区讨论

关于 ASCII 0

P1030[NOIP 2001 普及组] 求先序排列参与者 2已保存回复 1

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@lq6ra8e3
此快照首次捕获于
2023/12/15 23:00
2 年前
此快照最后确认于
2023/12/15 23:07
2 年前
查看原帖
已知本地测试无异常,算法在其他 OJ 上评测正常。
Wrong Answer because:
CPP
Wrong Answer.wrong answer On line 1 column 1, read (ASCII 0), expected A.
CPP
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e5 + 5;
string a, b;
struct node {
	char c;
	int l, r;
} t[N]; 
int cnt;
int search(int la, int ra, char x) {
	for(int i = la; i <= ra; i++) 
		if(a[i] == x) return i;
	return -1;
}
int work(int la, int ra, int lb, int rb) {
	if(la > ra || lb > rb) return 0;
	int m = search(la, ra, b[rb]), s1 = (m - 1) - la + 1, s2 = ra - (m + 1) + 1, tmp = (++cnt);
	t[tmp] = {b[rb], work(la, m - 1, lb, lb + s1 - 1), work(m + 1, ra, (rb - 1) - s2 + 1, rb - 1)};
	return tmp;
}
void dfs(int x) {
	cout<<t[x].c;
	if(t[x].l) dfs(t[x].l);
	if(t[x].r) dfs(t[x].r);
}
signed main() {
	cin>>a>>b;
	work(0, a.length(), 0, a.length());
	dfs(1);
	cout<<endl;
	return 0;
}

回复

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

正在加载回复...