AC自动机实现了!(大雾
  • 板块灌水区
  • 楼主万航之舰
  • 当前回复20
  • 已保存回复20
  • 发布时间2021/8/11 11:53
  • 上次更新2023/11/4 11:04:01
查看原帖
AC自动机实现了!(大雾
308123
万航之舰楼主2021/8/11 11:53

事情是这样的

我在做这道题:P3379 【模板】最近公共祖先(LCA) 然后写了个这个代码。(有大量删减)


int f[514514],ans[514514],vis[514514];

void dfs(int x){
	vis[x]=1;
	for(int i=0;i<k;i++){
		int y=a[x][i];
		if(vis[y]==0)
			dfs(x);
		else
			fa=y;
	}
	f[x]=fa;
}
int main(){
	cin>>n>>m>>s;
	dfs(s); 
	for(int i=1;i<=m;i++)
		cout<<ans;
}

很显然这是一个错误的代码,比如倒数第二行cout一个数组,比如dfs当中向下dfs(x)(鬼知道我当初是怎么想的写出这种憨批代码)

然后我编译,运行,复制样例,竟然过了?!

然后我还没发现,就像个憨批一样交到洛谷上,不出意外地MLE了。

后来我研究了半天,我的编译器自动输出了ans数组的数值,还带了换行?!(这个可以理解,毕竟c++11自带这个功能)

然后还把dfs里面的dfs(x)换成了dfs(y)?!

这编译器还带自动改bug的吗???

????????????????????

真·AC自动机

好吧我承认了我只是闲着没事想过来灌个水(

2021/8/11 11:53
加载中...