玄学问题求助!!!!!!!(急)
查看原帖
玄学问题求助!!!!!!!(急)
494699
卷王慢即快楼主2022/10/23 17:59

查了好半天都没查出来结果变换了一下定义语句的顺序就从0-100!

//0分代码
#include<iostream>
using namespace std;
int c[2001][2001],ans[2001][2001];
int t,k,n,m;
int main()
{
	cin>>t>>k;
	c[0][0]=1;
	c[1][0]=1;c[1][1]=1;
	for(int i=2;i<=2000;i++)
	{
		c[i][0]=1;
		for(int j=1;j<=i;j++)
		{
			c[i][j]=(c[i-1][j]+c[i-1][j-1])%k;
			ans[i][j]=ans[i-1][j]+ans[i][j-1]-ans[i-1][j-1];
			if(!c[i][j]) ans[i][j]++;
		}
		ans[i][i+1]=ans[i][i];
	}
	while(t--)
	{
		cin>>n>>m;
		if(m>n) cout<<ans[n][n]<<endl;
		else cout<<ans[n][m]<<endl;
	}
	return 0;
}
100分代码
#include<iostream>
using namespace std;
//改变了一下顺序就不行了,什么鬼?
int t,k,n,m; //就在这里!
int c[2001][2001],ans[2001][2001]; //就在这里!
int main()
{
	cin>>t>>k;
	c[0][0]=1;
	c[1][0]=1;c[1][1]=1;
	for(int i=2;i<=2000;i++)
	{
		c[i][0]=1;
		for(int j=1;j<=i;j++)
		{
			c[i][j]=(c[i-1][j]+c[i-1][j-1])%k;
			ans[i][j]=ans[i-1][j]+ans[i][j-1]-ans[i-1][j-1];
			if(!c[i][j]) ans[i][j]++;
		}
		ans[i][i+1]=ans[i][i];
	}
	while(t--)
	{
		cin>>n>>m;
		if(m>n) cout<<ans[n][n]<<endl;
		else cout<<ans[n][m]<<endl;
	}
	return 0;
}

WA+TLE

AC

2022/10/23 17:59
加载中...