警示后人! Wa #2, too short
  • 板块P1127 词链
  • 楼主XuYueming
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/8/11 16:50
  • 上次更新2023/11/3 04:26:55
查看原帖
警示后人! Wa #2, too short
728079
XuYueming楼主2023/8/11 16:50

有些伙伴可能和我一样,让欧拉路的起点先直接为 aa (考虑到欧拉回路),然后再遍历 2626 个字母,如果有个字母的出度等于入读加 11 ,把起点赋为该字母。代码如下:

char start = 'a';
for (char c='a';c<='z';++c) if (du[c][0] == du[c][1] + 1) {
	start = c;
	break;
}

但是!如果 aa 不存在呢?所以不能一开始就赋为 aa。代码应修改如下:

char start;
for (char c='a';c<='z';++c) if (du[c][0] || du[c][1]){
	start = c;
	break;
}
for (char c='a';c<='z';++c) if (du[c][0] == du[c][1] + 1) {
	start = c;
	break;
}

这么做也能保证字典序最小。

2023/8/11 16:50
加载中...