日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UVa 1025 A Spy in the Metro

發布時間:2025/5/22 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UVa 1025 A Spy in the Metro 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=35913

?

預處理出每個時間、每個車站是否有火車

為了方便判斷是否可行,倒推處理,每次有三種決策:原地坐等一分鐘、搭車向左(如果有車)、搭車向右(如果有車)

?

1 /**/ 2 #include<iostream> 3 #include<cstdio> 4 #include<cmath> 5 #include<cstring> 6 #include<algorithm> 7 using namespace std; 8 const int mxn=300; 9 int n,T; 10 bool h[mxn][mxn][2]; 11 int ti[mxn]; 12 int m,d,e; 13 int f[mxn][mxn]; 14 void clear(){ 15 memset(ti,0,sizeof(ti)); 16 memset(h,0,sizeof(h)); 17 memset(f,111,sizeof(f)); 18 } 19 int main(){ 20 int cnt=0; 21 while(scanf("%d",&n) && n){ 22 clear(); 23 scanf("%d",&T); 24 int i,j; 25 for(i=1;i<n;i++)scanf("%d",&ti[i]);//車站距離 26 scanf("%d",&m); 27 for(i=1;i<=m;i++) 28 { 29 scanf("%d",&d);//左邊發車時間 30 for(j=1;d<=T && j<=n;d+=ti[j],j++){ 31 h[d][j][0]=1; 32 } 33 } 34 scanf("%d",&m); 35 for(i=1;i<=m;i++) 36 { 37 scanf("%d",&e);//右邊發車時間 38 for(j=n;e<=T && j>=1;j--,e+=ti[j]){ 39 h[e][j][1]=1; 40 } 41 } 42 //以上全是初始化 43 f[T][n]=0; 44 for(i=T-1;i>=0;i--){//倒推 45 for(j=1;j<=n;j++){ 46 f[i][j]=f[i+1][j]+1;//等待 47 if(j<n && h[i][j][0] && i+ti[j]<=T) 48 f[i][j]=min(f[i][j],f[i+ti[j]][j+1]);//向右 49 if(j>1 && h[i][j][1] && i+ti[j-1]<=T) 50 f[i][j]=min(f[i][j],f[i+ti[j-1]][j-1]);//向左 51 } 52 } 53 printf("Case Number %d: ",++cnt); 54 if(f[0][1]>=0xff) printf("impossible\n"); 55 else printf("%d\n",f[0][1]); 56 } 57 return 0; 58 }

?

轉載于:https://www.cnblogs.com/SilverNebula/p/5574062.html

總結

以上是生活随笔為你收集整理的UVa 1025 A Spy in the Metro的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。