當前位置:
首頁 >
2014百度之星资格赛第二题
發布時間:2025/3/15
32
豆豆
生活随笔
收集整理的這篇文章主要介紹了
2014百度之星资格赛第二题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Disk Schedule
Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2560????Accepted Submission(s): 366
Problem Description 有非常多從磁盤讀取數據的需求。包括順序讀取、隨機讀取。為了提高效率。須要人為安排磁盤讀取。
然而,在現實中,這樣的做法非常復雜。
我們考慮一個相對簡單的場景。
磁盤有很多軌道,每一個軌道有很多扇區,用于存儲數據。
當我們想在特定扇區來讀取數據時。磁頭須要跳轉到特定的軌道、詳細扇區進行讀取操作。為了簡單,我們如果磁頭能夠在某個軌道順時針或逆時針勻速旋轉。旋轉一周的時間是360個單位時間。磁頭也能夠任意移動到某個軌道進行讀取。每跳轉到一個相鄰軌道的時間為400個單位時間,跳轉前后磁頭所在扇區位置不變。
一次讀取數據的時間為10個單位時間,讀取前后磁頭所在的扇區位置不變。
磁頭同一時候僅僅能做一件事:跳轉軌道,旋轉或讀取。 如今,須要在磁盤讀取一組數據,如果每一個軌道至多有一個讀取請求,這個讀取的扇區是軌道上分布在 0到359內的一個整數點扇區,即軌道的某個360等分點。
磁頭的起始點在0軌道0扇區,此時沒有數據讀取。
在完畢所有讀取后,磁頭須要回到0軌道0扇區的始點位置。
請問完畢給定的讀取所需的最小時間。
Input 輸入的第一行包括一個整數M(0<M<=100)。表示測試數據的組數。
對于每組測試數據,第一行包括一個整數N(0<N<=1000),表示要讀取的數據的數量。之后每行包括兩個整數T和S(0<T<=1000。0<= S<360),表示每一個數據的磁道和扇區,磁道是按升序排列,而且沒有反復。
Output 對于每組測試數據,輸出一個整數,表示完畢所有讀取所需的時間。
Sample Input 3 1 1 10 3 1 20 3 30 5 10 2 1 10 2 11
Sample Output 830 4090 1642
第二題是近似算法中的旅行商問題,算法導論上有解說,這個是一個模版題。
點擊這里查看模版題解說。
上代碼: #include <stdio.h>const int inf=1<<20;struct node {int x,y; } points[3005]; int n; int dist(int i,int j) {int ans=points[i].x-points[j].x;if(ans<0)ans=-ans;int t =points[i].y-points[j].y;if(t<0)t=-t;if(360-t<t)t=360-t;return ans*400+t; } int map1[3005][3005]; int does() {map1[1][2] = dist(1,2);for (int j = 3; j <= n; ++j){for (int i = 1; i <= j - 2; ++i){map1[i][j] = map1[i][j - 1] + dist(j - 1,j);}map1[j - 1][j] = inf;for (int k = 1; k <= j - 2; ++k){int temp = map1[k][j - 1] + dist(k,j);if (temp < map1[j - 1][j]){map1[j - 1][j] = temp;}}}map1[n][n] = map1[n - 1][n] + dist(n - 1,n);return map1[n][n]+(n*10)-10; }int main() {int m;while(scanf("%d",&m)!=EOF){while(m--){scanf("%d",&n);points[1].x=0;points[1].y=0;n++;for (int i = 2; i <= n; i++){scanf("%d%d",&points[i].x,&points[i].y);}printf("%d\n",does());}}return 0; }
轉載于:https://www.cnblogs.com/xfgnongmin/p/10653740.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的2014百度之星资格赛第二题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU 2833 WuKong
- 下一篇: EducationalCodeforce