QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#735272#7780. Dark LaTeX vs. Light LaTeXHNO3ilCompile Error//C++141.6kb2024-11-11 18:52:372024-11-11 18:52:37

Judging History

This is the latest submission verdict.

  • [2024-11-25 20:53:52]
  • hack成功,自动添加数据
  • (/hack/1258)
  • [2024-11-11 18:52:37]
  • Judged
  • [2024-11-11 18:52:37]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define db double
#define endl '\n'
#define lowbit(x) x&-x
#define intz(x,a) memset(x,a,sizeof(x));
const int N=5e3+5;
int lcp[N][N],lens,lent,dp[N][N],cnt[N][N],ct[N][N];long long sum[N];char s[N],t[N];
signed main(){
//	freopen("tst.out","r",stdin);
	scanf("%s%s",s+1,t+1);lens=strlen(s+1),lent=strlen(t+1);
	for(int j=lent;j;j--)
		for(int i=lens;i;i--)dp[i][j]=(s[i]==t[j]?dp[i+1][j+1]+1:0),cnt[i][dp[i][j]]++;
	for(int j=1;j<=lens;j++){
		for(int i=lens-j+1;i;i--)cnt[j][i]+=cnt[j][i+1];
		for(int i=j;i<=lens;i++)ct[j][i]=cnt[j][i-j+1];
	}
	for(int j=lens;j;j--)
		for(int i=j;i;i--)lcp[i][j]=(s[i]==s[j]?lcp[i+1][j+1]+1:0);
	for(int i=lens;i;i--)
		for(int j=i;j;j--)sum[i][j]=sum[i][j+1]+ct[j][i];
	long long ans=0;
	for(int i=1;i<=lens;i++)
		for(int j=i+1;j<=lens;j++){int len=lcp[i][j];ans+=sum[j-1][i+1]-sum[j-1][min(i+len,j-1)+1];}
	swap(lens,lent);swap(s,t);intz(lcp,0);intz(cnt,0);intz(dp,0);
	for(int j=lent;j;j--)
		for(int i=lens;i;i--)dp[i][j]=(s[i]==t[j]?dp[i+1][j+1]+1:0),cnt[i][dp[i][j]]++;
	for(int j=1;j<=lens;j++){
		for(int i=lens-j+1;i;i--)cnt[j][i]+=cnt[j][i+1];
		for(int i=j;i<=lens;i++)ct[j][i]=cnt[j][i-j+1];
	}
	for(int j=lens;j;j--)
		for(int i=j;i;i--)lcp[i][j]=(s[i]==s[j]?lcp[i+1][j+1]+1:0);
	for(int i=lens;i;i--)
		for(int j=i;j;j--)sum[i][j]=sum[i][j+1]+ct[j][i];
	for(int i=1;i<=lens;i++)
		for(int j=i+1;j<=lens;j++){int len=lcp[i][j];ans+=sum[j-1][i+1]-sum[j-1][min(i+len,j-1)+1];}
	for(int i=1;i<=lens;i++)
		for(int j=i+1;j<=lens+1;j++)ans+=ct[i][j-1];
	cout<<ans;
	return 0;
}

詳細信息

answer.code: In function ‘int main()’:
answer.code:22:41: error: invalid types ‘long long int[int]’ for array subscript
   22 |                 for(int j=i;j;j--)sum[i][j]=sum[i][j+1]+ct[j][i];
      |                                         ^
answer.code:22:51: error: invalid types ‘long long int[int]’ for array subscript
   22 |                 for(int j=i;j;j--)sum[i][j]=sum[i][j+1]+ct[j][i];
      |                                                   ^
answer.code:25:75: error: invalid types ‘long long int[int]’ for array subscript
   25 |                 for(int j=i+1;j<=lens;j++){int len=lcp[i][j];ans+=sum[j-1][i+1]-sum[j-1][min(i+len,j-1)+1];}
      |                                                                           ^
answer.code:25:89: error: invalid types ‘long long int[int]’ for array subscript
   25 |                 for(int j=i+1;j<=lens;j++){int len=lcp[i][j];ans+=sum[j-1][i+1]-sum[j-1][min(i+len,j-1)+1];}
      |                                                                                         ^
answer.code:36:41: error: invalid types ‘long long int[int]’ for array subscript
   36 |                 for(int j=i;j;j--)sum[i][j]=sum[i][j+1]+ct[j][i];
      |                                         ^
answer.code:36:51: error: invalid types ‘long long int[int]’ for array subscript
   36 |                 for(int j=i;j;j--)sum[i][j]=sum[i][j+1]+ct[j][i];
      |                                                   ^
answer.code:38:75: error: invalid types ‘long long int[int]’ for array subscript
   38 |                 for(int j=i+1;j<=lens;j++){int len=lcp[i][j];ans+=sum[j-1][i+1]-sum[j-1][min(i+len,j-1)+1];}
      |                                                                           ^
answer.code:38:89: error: invalid types ‘long long int[int]’ for array subscript
   38 |                 for(int j=i+1;j<=lens;j++){int len=lcp[i][j];ans+=sum[j-1][i+1]-sum[j-1][min(i+len,j-1)+1];}
      |                                                                                         ^
answer.code:12:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   12 |         scanf("%s%s",s+1,t+1);lens=strlen(s+1),lent=strlen(t+1);
      |         ~~~~~^~~~~~~~~~~~~~~~