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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

UVa116

發布時間:2025/7/14 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UVa116 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這道題做了好久,題并不難,一開始的思路,和做法都是對的。但是要求最小字典序必須從右向左求,這樣找最小的時候可以從左向右,保證最小字典序。以后做題特別要記住,越是情況多的時候越要總結歸納,最小樣例,最大樣例都要試一試,保證輸出正確。

1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 int m,n,mind,i,j,t,a[20][200],d[20][200],s[20][200]; 6 while(scanf("%d%d",&m,&n)!=EOF) 7 { 8 memset(d,0,sizeof(d)); 9 for(i=1;i<=m;i++) 10 for(j=n-1;j>=0;j--) 11 scanf("%d",&a[i][j]); 12 for(i=1;i<=m;i++) 13 d[i][0]=a[i][0]; 14 for(j=1;j<n;j++) 15 for(i=1;i<=m;i++) 16 { 17 d[i][j]=d[i][j-1]; 18 s[i][j]=i; 19 int t1=i+1; 20 if (t1>m) 21 t1=1; 22 if (d[i][j]==d[t1][j-1]&&s[i][j]>t1) 23 s[i][j]=t1; 24 if (d[i][j]>d[t1][j-1]) 25 { 26 d[i][j]=d[t1][j-1]; 27 s[i][j]=t1; 28 } 29 int t2=i-1; 30 if(t2<1) 31 t2=m; 32 if(d[i][j]==d[t2][j-1]&&s[i][j]>t2) 33 s[i][j]=t2; 34 if (d[i][j]>d[t2][j-1]) 35 { 36 d[i][j]=d[t2][j-1]; 37 s[i][j]=t2; 38 } 39 d[i][j]+=a[i][j]; 40 } 41 mind=d[1][n-1];t=1; 42 for(j=2;j<=m;j++) 43 if(d[j][n-1]<mind) 44 { 45 t=j; 46 mind=d[j][n-1]; 47 } printf("%d",t); 48 for(i=n-1;i>=1;i--) 49 { 50 printf(" %d",s[t][i]); 51 t=s[t][i]; 52 } 53 printf("\n%d\n",mind); 54 } 55 return 0; 56 }

?

轉載于:https://www.cnblogs.com/Acgsws/p/3198659.html

總結

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

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