编译不过求助
  • 板块学术版
  • 楼主TankYu
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/7/17 11:13
  • 上次更新2023/11/3 09:23:05
查看原帖
编译不过求助
408071
TankYu楼主2023/7/17 11:13
#include <cstring>
#include <iostream>
#include <queue>
#define S string

using namespace std;

struct trie
{
	int fail;
	int son[30];
	int end;
} t[30000010];
int maxroot;

void build(S s)
{
	int rt = 0;
	for (int i = 0; i < s.size(); i++)
	{
		if (!t[rt].son[s[i] - 'a'])
		{
			t[rt].son[s[i] - 'a'] = ++maxroot;
		}
		rt = t[rt].son[s[i] - 'a'];
	}
	t[rt].end++;
	return;
}

void fail()
{
	queue<int> q;
	for (int i = 0; i < 26; i++)
	{
		if (t[0].son[i])
		{
			t[t[0].son[i]].fail = 0;
			q.push(t[0].son[i]);
		}
	}
	while (!q.empty())
	{
		int x = q.front();
		q.pop();
		for (int i = 0; i < 26; i++)
		{
			if (t[x].son[i])
			{
				t[t[x].son[i]].fail = t[t[x].fail].son[i];
				q.push(t[x].son[i]) ;
			}
			else
			{
				t[x].son[i] = t[t[x].fail].son[i];
			}
		}
	}
}

int query(S s)
{
	int now = 0, ans = 0;
	for (int i = 0; i < s.size(); i++)
	{
		now = t[now].son[s[i] - 'a'];
		for (int i = now; i && t[i].end != -1; i = t[i].fail)
		{
			ans += t[i].end;
			t[i].end = -1;
		}
	}
	return ans;
}

int main()
{
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		S s;
		cin >> s;
		build(s);
	}
	S s;
	cin >> s;
	cout << query(s);
	return 0;
}

信息

- C++ 编译器: C:\Program Files (x86)\Dev-Cpp\TDM-GCC-64\bin\g++.exe
- 命令: g++.exe "D:\新文件3.cpp" -o "D:\新文件3.exe" -Ofast -m64 -std=gnu++11 -Wall -Wextra -Wl,-stack=134217728 -I"C:\Program Files (x86)\Dev-Cpp\TDM-GCC-64\include" -I"C:\Program Files (x86)\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\include" -I"C:\Program Files (x86)\Dev-Cpp\TDM-GCC-64\lib\gcc\x86_64-w64-mingw32\9.2.0\include" -I"C:\Program Files (x86)\Dev-Cpp\TDM-GCC-64\lib\gcc\x86_64-w64-mingw32\9.2.0\include\c++" -L"C:\Program Files (x86)\Dev-Cpp\TDM-GCC-64\lib" -L"C:\Program Files (x86)\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\lib" -static-libgcc -m64
D:\新文件3.cpp: In function 'void build(std::string)':
D:\新文件3.cpp:19:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long long unsigned int'} [-Wsign-compare]
   19 |  for (int i = 0; i < s.size(); i++)
      |                  ~~^~~~~~~~~~
D:\新文件3.cpp: In function 'int query(std::string)':
D:\新文件3.cpp:64:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long long unsigned int'} [-Wsign-compare]
   64 |  for (int i = 0; i < s.size(); i++)
      |                  ~~^~~~~~~~~~
C:/Program Files (x86)/Dev-Cpp/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o: in function `__tmainCRTStartup':
C:/crossdev/src/mingw-w64-v7-git20191109/mingw-w64-crt/crt/crtexe.c:259:(.text+0x1cd): relocation truncated to fit: R_X86_64_PC32 against symbol `__imp_Sleep' defined in .idata$5 section in C:\Program Files (x86)\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\lib/libkernel32.a(dqqts01409.o)
C:/crossdev/src/mingw-w64-v7-git20191109/mingw-w64-crt/crt/crtexe.c:286:(.text+0x25a): relocation truncated to fit: R_X86_64_PC32 against symbol `__imp_SetUnhandledExceptionFilter' defined in .idata$5 section in C:\Program Files (x86)\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\lib/libkernel32.a(dqqts01393.o)
C:/crossdev/src/mingw-w64-v7-git20191109/mingw-w64-crt/crt/crtexe.c:294:(.text+0x288): relocation truncated to fit: R_X86_64_PC32 against symbol `__mingw_winmain_hInstance' defined in COMMON section in C:/Program Files (x86)/Dev-Cpp/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o
C:/crossdev/src/mingw-w64-v7-git20191109/mingw-w64-crt/crt/crtexe.c:320:(.text+0x2ec): relocation truncated to fit: R_X86_64_PC32 against symbol `__mingw_winmain_lpCmdLine' defined in COMMON section in C:/Program Files (x86)/Dev-Cpp/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o
C:/crossdev/src/mingw-w64-v7-git20191109/mingw-w64-crt/crt/crtexe.c:246:(.text+0x465): relocation truncated to fit: R_X86_64_PC32 against symbol `__imp_GetStartupInfoA' defined in .idata$5 section in C:\Program Files (x86)\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\lib/libkernel32.a(dqqts00742.o)
C:/Program Files (x86)/Dev-Cpp/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0\libstdc++.a(fstream-inst.o):fstream-inst.cc:(.text$_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv[_ZNSt13basic_filebufIcSt11char_traitsIcEE9underflowEv]+0x3dc): relocation truncated to fit: R_X86_64_PC32 against symbol `__imp__errno' defined in .idata$5 section in C:\Program Files (x86)\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\lib/libmsvcrt.a(dwngs00201.o)
C:/Program Files (x86)/Dev-Cpp/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0\libstdc++.a(fstream-inst.o):fstream-inst.cc:(.text$_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv[_ZNSt13basic_filebufIwSt11char_traitsIwEE9underflowEv]+0x45f): relocation truncated to fit: R_X86_64_PC32 against symbol `__imp__errno' defined in .idata$5 section in C:\Program Files (x86)\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\lib/libmsvcrt.a(dwngs00201.o)
C:/Program Files (x86)/Dev-Cpp/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0\libstdc++.a(fstream-inst.o):fstream-inst.cc:(.text$_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPcx[_ZNSt13basic_filebufIcSt11char_traitsIcEE6xsgetnEPcx]+0x254): relocation truncated to fit: R_X86_64_PC32 against symbol `__imp__errno' defined in .idata$5 section in C:\Program Files (x86)\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\lib/libmsvcrt.a(dwngs00201.o)
C:/Program Files (x86)/Dev-Cpp/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0\libstdc++.a(fstream-inst.o):fstream-inst.cc:(.text$_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwx[_ZNSt13basic_filebufIwSt11char_traitsIwEE6xsgetnEPwx]+0x23c): relocation truncated to fit: R_X86_64_PC32 against symbol `__imp__errno' defined in .idata$5 section in C:\Program Files (x86)\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\lib/libmsvcrt.a(dwngs00201.o)
C:/Program Files (x86)/Dev-Cpp/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0\libstdc++.a(basic_file.o):basic_file.cc:(.text$_ZN12_GLOBAL__N_1L6xwriteEiPKcx+0xd): relocation truncated to fit: R_X86_64_PC32 against symbol `__imp__errno' defined in .idata$5 section in C:\Program Files (x86)\Dev-Cpp\TDM-GCC-64\x86_64-w64-mingw32\lib/libmsvcrt.a(dwngs00201.o)
C:/Program Files (x86)/Dev-Cpp/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0\libstdc++.a(basic_file.o):basic_file.cc:(.text$_ZNSt12__basic_fileIcE8sys_openEP6_iobufSt13_Ios_Openmode+0x1c): additional relocation overflows omitted from the output

collect2.exe: error: ld returned 1 exit status
2023/7/17 11:13
加载中...