为什么95分?
  • 板块学术版
  • 楼主Little_duck_GGG
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/11/8 17:53
  • 上次更新2024/11/8 17:55:00
查看原帖
为什么95分?
873983
Little_duck_GGG楼主2024/11/8 17:53

不知道为啥95分

#include<bits/stdc++.h>
using namespace std;
int n,a[1005][1005];
int c[1005],c2[1005],c3[1005];
string add(string a,string b)
{
	memset(c,0,sizeof(c));
	memset(c2,0,sizeof(c2));
	memset(c3,0,sizeof(c3));
	for(int i=a.size();i>=1;i--) c[a.size()-i+1]=int(a[i-1]-'0');
	for(int i=b.size();i>=1;i--) c2[b.size()-i+1]=int(b[i-1]-'0');
	int jw=0,dw=0;
	for(int i=1;i<=max(a.size(),b.size());i++)
	{
		dw=c[i]+c2[i]+jw;
		jw=dw/10;
		dw%=10;
		c3[i]=dw;
	}
	string ans="";
	if(jw!=0) ans="1";
	for(int i=max(a.size(),b.size());i>=1;i--) ans+=char(c3[i]+'0');
	return ans;
}
string dp[1005][1005]; 
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    {
    	for(int j=1;j<=n;j++) cin>>a[i][j];
	}
    dp[1][1]="1";
    for(int i=1;i<=n;i++)
    {
    	for(int j=1;j<=n;j++)
    	{
    		if(a[i][j]==0) continue;
    		if(j+a[i][j]<=n) dp[i][j+a[i][j]]=add(dp[i][j+a[i][j]],dp[i][j]);
    		if(i+a[i][j]<=n) dp[i+a[i][j]][j]=add(dp[i+a[i][j]][j],dp[i][j]);
		}
	}
	cout<<dp[n][n];
	return 0;
}
2024/11/8 17:53
加载中...