蒟蒻求助P1608
  • 板块灌水区
  • 楼主511_Juruo_wyk
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/9/18 22:31
  • 上次更新2023/11/2 19:10:15
查看原帖
蒟蒻求助P1608
1025958
511_Juruo_wyk楼主2023/9/18 22:31

源代码:

#include<bits/stdc++.h>
using namespace std;
const int N = 2e3+5;
int a[N][N],dp[N][2],n,e;
int main(){
    memset(a,-1,sizeof(a));
    memset(dp,-1,sizeof(dp));
    scanf("%d%d",&n,&e);
    dp[0][0]=dp[1][0]=0;dp[1][1]=0;
    for(int i=1;i<=e;i++){
        int x,y,m;
        scanf("%d%d%d",&x,&y,&m);
        a[x][y]=m;
    }
    for(int i=1;i<=n;i++){
        int ans=INT_MAX,sum;
        for(int j=1;j<=i;j++){
            if(a[j][i]==-1||dp[j][0]==-1)continue;
            if(ans>dp[j][0]){
                ans=dp[j][0]+a[j][i];
                sum=dp[j][1]+1;
            }
        }
        if(ans==INT_MAX)continue;
        dp[i][0]=ans;
        dp[i][1]=sum;
    }
    if(dp[n][0]==-1)cout<<"No answer";
    else printf("%d %d",dp[n][0],dp[n][1]);
	return 0;
}

结果这样了

2023/9/18 22:31
加载中...