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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【百度之星程序设计大赛】2020年初赛第三场第四题Intersection

發布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【百度之星程序设计大赛】2020年初赛第三场第四题Intersection 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄導引

  • 系列
  • 題目
    • Problem Description
    • Sample input/output
  • 思路
  • 代碼

系列

【百度之星程序設計大賽】2020年初賽第二場第一題Poker
【百度之星程序設計大賽】2020年初賽第三場第四題Intersection

題目

Problem Description

Sample input/output

題目來源:百度之星

思路

  • 考慮所有車輛通過的時間,實際上就只需要考慮最后車通過的時間情況,因為不能超車。
  • 右邊車道(1號車道)通過路口的時間不能壓縮。
  • 只有左邊車道通過路口的時間存在壓縮的可能,唯一的壓縮方法就是超過x=0的軸的時候向右變道。變道會節省左側車道一格的時間。
  • 在過x軸之前進行變道是不需要考慮的,因為它的效果和過了x軸變道是一樣的。
  • 同時要注意,變道不一定必然減少時間成本,如果左側車道的右后方緊鄰著一臺車,變道會造成別住后車,卡了自己后面車的通行時間,如果不進行變道,左車將比右車晚一個時間單位,變道會使得他們倆需要花的時間一增一減,最大值不變,不節省時間,故不進行變道。
  • 總之,考慮兩車道最后一臺車的位置進行分類即可,很簡單。

代碼

#include<stdio.h> #include<malloc.h>int main(){ int groups;int n;int * pos_x, * pos_y;int y[2];scanf("%d", &groups);for(int i = 0; i < groups; i ++){scanf("%d", &n);pos_x = (int*)malloc(sizeof(int)*n);pos_y = (int*)malloc(sizeof(int)*n);y[0] = 0;y[1] = 0;for(int j = 0; j < n; j ++){scanf("%d %d", pos_x + j, pos_y + j);if(pos_y[j] >= y[pos_x[j] - 1])y[pos_x[j] - 1] = pos_y[j];}// printf("第一車道:%d 第二車道:%d\n", y[0], y[1]);// 啥也不干往前開,內(右)車道至少y[0] + 1 外(左)車道至少y[1] + 3 if(y[1] == 0){// 外側車道沒有車,看內測道的時間就好了 printf("%d\n", y[0] + 1);}else if(y[0] + 1 >= y[1] + 3){// 如果 y[0] + 1 >= y[1] + 3 肯定不要變道// 時間下線不是外車道可以掌控的,而內車道時間限定死 printf("%d\n", y[0] + 1);}else if(y[0] + 1 == y[1] + 2){// y[0] + 1 = y[1] + 3 - 1 的時候說明2車道最后一輛車在1車道最后一輛車上一位,變道會別車// 故不變道,取外車道時間 printf("%d\n", y[1] + 3);}else{// 最后一臺車可以變道printf("%d\n", y[1] + 2); }}return 0; }

總結

以上是生活随笔為你收集整理的【百度之星程序设计大赛】2020年初赛第三场第四题Intersection的全部內容,希望文章能夠幫你解決所遇到的問題。

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