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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

2019 年百度之星·程序设计大赛 - 初赛一

發(fā)布時間:2024/9/5 编程问答 92 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2019 年百度之星·程序设计大赛 - 初赛一 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

傳送門

[1]hdu

[2]bestcoder

B.Game(貪心+思維)

?題意

一步可以走一個或者兩個,求依次進入n個區(qū)間[li,ri]的最少步數(shù)

?思路

就當前位置cur來說,

1)如果下一個任務的區(qū)間包括當前位置,那就可以不動

2)如果下一個任務區(qū)間在當前位置左邊,那就向下一個的左邊界移動

? ? ①如果正好可以全走兩個格子的話,就在此位置

? ? 如果不可以全走兩個格子的話,

 ②如果再下一個位置在左邊的話,那就不動

 ③如果再下一個位置在右邊的話,那就把走的一格變成兩格,在左邊界往右一個位置

3)如果下一個任務區(qū)間在當前位置右邊,那就向下一個的右邊界移動

? ? ①如果正好可以全走兩個格子的話,就在此位置

? ? 如果不可以全走兩個格子的話,

 ②如果再下一個位置在右邊的話,那就不動

 ③如果再下一個位置在左邊的話,那就把走的一格變成兩格,在右邊界往左一個位置

?

起點在最小區(qū)間的左邊界或者右邊界

?代碼

1 #include<bits/stdc++.h> 2 using namespace std; 3 #define ll long long 4 const int maxn=1000+50; 5 6 int n; 7 int l[maxn]; 8 int r[maxn]; 9 10 ll F(int k,int p) 11 { 12 ll ans=0; 13 while(k <= n) 14 { 15 if(p >= l[k] && p <= r[k]) 16 { 17 k++; 18 continue; 19 } 20 if(l[k] > p) 21 { 22 ll cur=l[k]-p; 23 ans += (cur+1)/2; 24 p=l[k]; 25 26 if(cur%2 == 0) 27 continue; 28 29 int tmp=k; 30 for(;tmp <= n && l[tmp] <= p && r[tmp] > p;tmp++); 31 32 if(tmp > n) 33 return ans; 34 35 if(l[k] != r[k] && l[tmp] > p) 36 p++; 37 } 38 else 39 { 40 ll cur=p-r[k]; 41 ans += (cur+1)/2; 42 p=r[k]; 43 44 if(cur%2 == 0) 45 continue; 46 47 int tmp=k; 48 for(;tmp <= n && l[tmp] < p && r[tmp] >= p;tmp++); 49 50 if(tmp > n) 51 return ans; 52 53 if(l[k] != r[k] && r[tmp] < p) 54 p--; 55 } 56 } 57 return ans; 58 } 59 int main() 60 { 61 int T; 62 scanf("%d",&T); 63 while(T--) 64 { 65 scanf("%d",&n); 66 for(int i=1;i <= n;++i) 67 scanf("%d%d",l+i,r+i); 68 69 int L=l[1]; 70 int R=r[1]; 71 for(int i=2;i <= n;++i) 72 { 73 int x=max(max(l[i],l[i-1]),L); 74 int y=min(min(r[i],r[i-1]),R); 75 76 if(x > y) 77 break; 78 L=x; 79 R=y; 80 } 81 ll ans=min(F(1,L),F(1,R)); 82 83 printf("%I64d\n",ans); 84 } 85 return 0; 86 } View Code

?

?

轉載于:https://www.cnblogs.com/MMMinoz/p/11380974.html

總結

以上是生活随笔為你收集整理的2019 年百度之星·程序设计大赛 - 初赛一的全部內容,希望文章能夠幫你解決所遇到的問題。

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