提交记录 3883


用户 题目 状态 得分 用时 内存 语言 代码长度
ytx noi18c. 【NOI2018】你的名字 Wrong Answer 0 524.902 ms 69860 KB C++ 1.34 KB
提交时间 评测时间
2018-07-18 19:32:58 2020-07-31 21:57:37
#include<iostream>
#include<cstdio>
#include<cstring>

char S[600000],T[600000];
int n,l,r;
bool Hash1[20000000],Hash2[20000000],Hash3[20000000];

struct Trie{
//	int son[40000000][26],tot=1;
	int son[100000][26],tot;
	void add_string(char *str){
		int now=1;
		int len=strlen(str);
		for (int i=0;i<len;i++){
			int s=str[i]-'a';
			if (!son[now][s]) son[now][s]=++tot;
			now=son[now][s];
		}
	}
	int query_string(char *str){
		int now=1,ans=0;
		long long hash1=1,hash2=1,hash3=1;
		int len=strlen(str);
		for (int i=0;i<len;i++){
			int s=str[i]-'a';
			hash1=(long long)(hash1+s)*65432101%18932443;
			hash2=(long long)(hash2+s)*35433131%19972681;
			hash3=(long long)(hash3+s)*21937195%16781639;
			if (son[now][s]) ans++;
			if (!son[now][s]&&Hash1[hash1]&&Hash2[hash2]&Hash3[hash3]) ans++;
			Hash1[hash1]=Hash2[hash2]=Hash3[hash3]=true;
			now=son[now][s];
		}
		return ans;
	}
}Tree;

int main(){
	freopen("name.in","r",stdin);
	freopen("name.out","w",stdout);
	scanf("%s",S);int Slen=strlen(S);
	for (int i=0;i<Slen;i++) Tree.add_string(S+i);
	Tree.tot=1; 
	scanf("%d",&n);
	for (int i=1;i<=n;i++){
		scanf("%s%d%d",T,&l,&r);
		int Tlen=strlen(T);
		int Ans=0;
		memset(Hash1,0,sizeof(Hash1));
		memset(Hash2,0,sizeof(Hash2));
		memset(Hash3,0,sizeof(Hash3));
		for (int j=0;j<Tlen;j++)
			Ans+=Tree.query_string(T+j);
		printf("%d\n",(1+Tlen)*Tlen/2-Ans);
	}
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #1524.902 ms58 MB + 572 KBWrong AnswerScore: 0

Testcase #262.776 ms67 MB + 184 KBRuntime ErrorScore: 0

Testcase #395.81 ms67 MB + 184 KBRuntime ErrorScore: 0

Testcase #416.826 ms67 MB + 184 KBRuntime ErrorScore: 0

Testcase #517.615 ms67 MB + 184 KBRuntime ErrorScore: 0

Testcase #617.124 ms68 MB + 228 KBRuntime ErrorScore: 0

Testcase #717.147 ms68 MB + 228 KBRuntime ErrorScore: 0

Testcase #811.884 ms67 MB + 860 KBRuntime ErrorScore: 0

Testcase #912.022 ms67 MB + 860 KBRuntime ErrorScore: 0

Testcase #1013.251 ms67 MB + 960 KBRuntime ErrorScore: 0

Testcase #1113.271 ms67 MB + 960 KBRuntime ErrorScore: 0

Testcase #1214.447 ms68 MB + 32 KBRuntime ErrorScore: 0

Testcase #1314.623 ms68 MB + 32 KBRuntime ErrorScore: 0

Testcase #1412.596 ms68 MB + 128 KBRuntime ErrorScore: 0

Testcase #1515.794 ms68 MB + 128 KBRuntime ErrorScore: 0

Testcase #1616.849 ms68 MB + 228 KBRuntime ErrorScore: 0

Testcase #1717.039 ms68 MB + 228 KBRuntime ErrorScore: 0

Testcase #1815.315 ms67 MB + 960 KBRuntime ErrorScore: 0

Testcase #1914.362 ms68 MB + 32 KBRuntime ErrorScore: 0

Testcase #2015.648 ms68 MB + 128 KBRuntime ErrorScore: 0

Testcase #2116.733 ms68 MB + 228 KBRuntime ErrorScore: 0

Testcase #2216.766 ms68 MB + 228 KBRuntime ErrorScore: 0

Testcase #2321.759 ms68 MB + 228 KBRuntime ErrorScore: 0

Testcase #2416.741 ms68 MB + 228 KBRuntime ErrorScore: 0

Testcase #2512.771 ms68 MB + 228 KBRuntime ErrorScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2026-04-17 20:43:00 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠