QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#611210#7006. Rikka with SubsequencesEdward2019AC ✓1330ms4288kbC++14818b2024-10-04 19:54:102024-10-04 19:54:10

Judging History

你现在查看的是最新测评结果

  • [2024-10-04 19:54:10]
  • 评测
  • 测评结果:AC
  • 用时:1330ms
  • 内存:4288kb
  • [2024-10-04 19:54:10]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=210,mod=1e9+7;
int n,a[N],f[N][N],g[N][N];
char s[N][N];
signed main()
{
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int T;
	cin>>T;
	while(T--)
	{
		memset(f,0,sizeof(f));
		cin>>n;
		for(int i=1;i<=n;i++)cin>>a[i];
		for(int i=1;i<=n;i++)cin>>(s[i]+1);
		for(int i=1;i<=n;i++)
		{
			memset(g,0,sizeof(g));
			for(int j=1;j<=n;j++)
				for(int k=1;k<=n;k++)
					g[j][k]=((g[j-1][k]+g[j][k-1]-g[j-1][k-1]+f[j-1][k-1]*(s[a[j-1]][a[i]]^48))%mod+mod)%mod;
			for(int j=1;j<=n;j++)
				for(int k=1;k<=n;k++)
					f[j][k]=(f[j][k]+(g[j][k]+1)*(a[i]==a[j])*(a[i]==a[k]))%mod;
		}
		int ans=0;
		for(int j=1;j<=n;j++)
			for(int k=1;k<=n;k++)
				ans=(ans+f[j][k])%mod;
		cout<<ans<<"\n";
	}
	return 0;
}

这程序好像有点Bug,我给组数据试试?

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 4276kb

input:

1
4
1 2 1 2
1111
1111
1111
1111

output:

51

result:

ok single line: '51'

Test #2:

score: 0
Accepted
time: 1330ms
memory: 4288kb

input:

20
195
4 5 4 3 2 4 3 5 1 5 4 3 4 3 1 5 4 4 5 2 2 2 2 4 1 5 3 4 1 1 1 2 1 1 5 5 4 5 4 5 5 4 5 2 1 2 5 4 5 1 1 3 1 2 2 3 3 5 2 3 3 1 4 4 2 4 2 4 3 4 1 1 1 4 3 5 1 1 3 2 2 5 1 3 1 5 1 5 5 3 5 3 3 2 5 1 3 2 4 1 5 5 1 3 3 2 4 2 3 3 3 4 1 3 3 3 5 5 1 1 4 2 5 1 2 5 4 3 5 1 5 5 5 4 2 2 5 3 2 3 4 1 3 2 1 5 3...

output:

806298135
541285042
48173297
222851978
875793336
100057791
156057874
129923599
551277543
874547790
544405786
653241411
521317929
370918040
803940504
969296122
806596012
469227084
338962879
194278629

result:

ok 20 lines