随笔 - 531  文章 - 0  评论 - 3  阅读 - 10215 

一共有n座城市,要在这n座城市旅游k天,从城市1出发,第k天到达城市n。

输入有n*(n-1)行,每n-1行代表i到除了i之外的其他城市航班的天数以及价格。

求最小花费。

 

 

复制代码
 #include <iostream>
 #include <algorithm>
 using namespace std; 
  const int N=1e3+2;
 // #define int long long
  int n,m;
  int f[N][40],len[40][40],c[40][40][40];
  const int inf=1e9;
 void solve(){
     int i,j,k;
     for(i=1;i<=n;i++)
      for(j=1;j<=n;j++){
          if(i==j) continue;
          cin>>len[i][j];
          for(k=1;k<=len[i][j];k++) cin>>c[i][j][k];
      }
     for(i=0;i<=n;i++) 
      for(k=0;k<=m;k++) f[k][i]=inf;
      f[0][1]=0;
      
     for(k=1;k<=m;k++)
      for(i=1;i<=n;i++)
       for(j=1;j<=n;j++){
           if(i==j) continue;
           int t=(k-1)%len[j][i]+1;
           if(f[k-1][j]==inf||c[j][i][t]==0) continue;
           
           f[k][i]=min(f[k][i],f[k-1][j]+c[j][i][t]);
       }
 }
 signed main(){
     int cas=0;
     while(cin>>n>>m){
         if(n==0||m==0) break; 
         ++cas;
         
         solve();
         printf("Scenario #%d\n",cas);
         if(f[m][n]==inf) cout<<"No flight possible.";
         else 
         printf("The best flight costs %d.",f[m][n]);
         cout<<'\n'<<'\n';
     }
 }
 
 
 
复制代码

 

posted on   towboat  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示