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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

洛谷 【P1252】马拉松接力赛

發布時間:2025/3/15 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 洛谷 【P1252】马拉松接力赛 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

                  洛谷 【P1252】馬拉松接力賽

題目描述

某城市冬季舉辦環城25km馬拉松接力賽,每個代表隊有5人參加比賽,比賽要求每個的每名參賽選手只能跑一次,一次至少跑1km、最多只能跑10km,而且每個選手所跑的公里數必須為整數,即接力的地方在整公里處。

劉老師作為學校代表隊的教練,精心選擇了5名長跑能手,進行了訓練和測試,得到了這5名選手盡力連續跑1km、2km、…、10km的所用時間。現在他要進行一個合理的安排,讓每個選手跑合適的公里數,使學校代表隊跑完25km所用的時間最短。根據隊員的情況,這個最短的時間是惟一的,但安排方案可能并不惟一。

根據測試情況及一般運動員的情況得知,連續跑1km要比連續跑2km速度快,連續跑2km又要比連續跑3km速度快……也就是說連續跑的路程越長,速度越慢,當然也有特殊的,就是速度不會變慢,但是絕不可能變快。

輸入輸出格式

輸入格式:

?

5行數據,分別是1到5號隊員的測試數據,每行的10個整數,表示某一個運動員盡力連續跑1km、2km、…、10km所用的時間。

?

輸出格式:

?

兩行,第一行是最短的時間,第二行是五個數據,分別是1到5號隊員各自連續跑的公里數。

?

輸入輸出樣例

輸入樣例#1:?復制 333 700 1200 1710 2240 2770 3345 3956 4778 5899 300 610 960 1370 1800 2712 3734 4834 5998 7682 298 612 990 1540 2109 2896 3790 4747 5996 7654 289 577 890 1381 1976 2734 3876 5378 6890 9876 312 633 995 1407 1845 2634 3636 4812 5999 8123 輸出樣例#1:?復制 9905 6 5 5 4 5

思路:裸的貪心 難度:普及-

#include<algorithm> #include<cstdio> #define M 10 using namespace std; int a[M+1], b[M+1], c[M+1], d[M+1], e[M+1]; int minn = 1000000, sum; int x, y, z, p, q; int main() {for(int i = 1; i <= M; i++) scanf("%d", &a[i]);for(int i = 1; i <= M; i++) scanf("%d", &b[i]);for(int i = 1; i <= M; i++) scanf("%d", &c[i]);for(int i = 1; i <= M; i++) scanf("%d", &d[i]);for(int i = 1; i <= M; i++) scanf("%d", &e[i]);for(int i = 1; i <= M; i++)for(int j = 1; j <= M; j++)for(int k = 1; k <= M; k++)for(int s = 1; s <= M; s++)for(int t = 1; t <= M; t++) {sum = a[i]+b[j]+c[k]+d[s]+e[t];if(sum<minn && i+j+k+s+t==25) {minn = sum;x=i, y=j, z=k, p=s, q=t;}}printf("%d\n", minn);printf("%d %d %d %d %d", x, y, z, p, q);return 0; } 弱智般的30分暴力 #include<cstdio> #include<iostream> #define INF 2147483647 using namespace std; int minx = INF, flag, ans; int a[5][11], b[5][11], c[5]; int main() {c[0] = c[1] = c[2] = c[3] = c[4] = 1;for(int i = 0; i < 5; i++)for(int j = 1; j < 11; j++) {cin >> a[i][j];b[i][j] = a[i][j]-a[i][j-1];}for(int i = 0; i < 20; i++) {minx = INF;for(int j = 0; j < 5; j++)if(b[j][c[j]+1] < minx && c[j]+1 <= 10) {flag = j;minx = b[j][c[j]+1];}c[flag]++;}for(int i = 0; i < 5; i++) ans+=a[i][c[i]];printf("%d\n%d %d %d %d %d\n",ans,c[0],c[1],c[2],c[3],c[4]);return 0; } 正解

轉載于:https://www.cnblogs.com/v-vip/p/8544541.html

總結

以上是生活随笔為你收集整理的洛谷 【P1252】马拉松接力赛的全部內容,希望文章能夠幫你解決所遇到的問題。

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