Purslane @ 2021-08-22 11:05:50
Rt , 感觉自己和刚学没有区别 .
我写了一个结构体 , 为什么里面一个数组开了
code :
struct Trie {
int idx=1,trie[MAXN][26];
inline int insert(string k) {
int root=1;
for(int i=0;i<k.size();i++) {
int val=k[i]-'a';
if(trie[root][val]==0) trie[root][val]=++idx;
root=trie[root][val];
}
return root;
}
inline int query(string k) {
int root=1;
for(int i=0;i<k.size();i++) {
int val=k[i]-'a'+1;
if(trie[root][val]==0) return -1;
root=trie[root][val];
}
return root;
}
}tri[2];
by Purslane @ 2021-08-22 11:06:18
貌似非全局变量开这么大就有问题 .
by fanypcd @ 2021-08-22 11:09:01
你的声明放哪的
main 里面肯定不行啊
by syksykCCC @ 2021-08-22 11:09:01
@Ma_Zhixian 我本地开 MAXN=1e6,你的代码可以过编译
by syksykCCC @ 2021-08-22 11:09:27
#include <bits/stdc++.h>
using namespace std;
const int MAXN=1e6+5;
struct Trie {
int idx=1,trie[MAXN][26];
inline int insert(string k) {
int root=1;
for(int i=0;i<k.size();i++) {
int val=k[i]-'a';
if(trie[root][val]==0) trie[root][val]=++idx;
root=trie[root][val];
}
return root;
}
inline int query(string k) {
int root=1;
for(int i=0;i<k.size();i++) {
int val=k[i]-'a'+1;
if(trie[root][val]==0) return -1;
root=trie[root][val];
}
return root;
}
}tri[2];
int main() {
}
by fanypcd @ 2021-08-22 11:10:12
编译可以加上
-Wl,--stack=536870912 -Wall
手动扩容栈大小
by fanypcd @ 2021-08-22 11:11:33
-Wall 是我忘了删了
by Purslane @ 2021-08-22 11:12:59
@syksykCCC ?
我先把这个东西注释掉 , 在 main 里面写了个 "HHX AK IOI" , 编译运行后在把这个东西取消注释 , 把 "HHX AK IOI" 去掉 .
结果编译运行出来还是有 "HHX AK IOI"
by syksykCCC @ 2021-08-22 11:15:54
@Ma_Zhixian 那就不懂了
by 墨忧 @ 2021-08-22 11:36:22
qndmx
by tZEROちゃん @ 2021-08-22 19:49:51
@Ma_Zhixian 你倒是给个完整的代码(
HHX AK IOI 好评(