闻人莹华 发表于 2025-6-4 19:58:39

COCI 2024/2025 #3

T1 P11474 公交车 / Autobus

愤怒,从红升橙足以说明其恶心,考场上调了半小时才过。
这道题的车能够开 \(24\) 小时,并且他能从前一天开到第二天,由于它只能开 \(24\) 小时,所以说发车时间的时刻晚于或等于到达时间,说明他开了一天,由于这个,所以我们要处理 \(3\) 天的情况。
先把所有的时间段存下来,然后分别加 \(1440\) 和 \(2880\) 分钟,暴力匹配,时间复杂度 \(O(600^2) = O(1)\) (不是)。
//# pragma GCC optimize("Ofast")# include # define fr front# define il inline# define fir first# define sec second# define vec vector# define it iterator# define pb push_back# define lb lower_bound# define ub upper_bound# define all(x) x.begin(), x.end()# define mem(a, b) memset(a, b, sizeof(a))# define lc (t.l)# define rc (t.r)# define ls(x) (x(i)) & 1)# define set1(x, i) ((x) | (1 > ch;                        m1 += ch - '0';                        cin >> ch >> ch;                        cin >> h2 >> ch >> ch;                        m2 = (ch - '0') * 10;                        cin >> ch;                        m2 += ch - '0';                        int t1 = h1 * 60 + m1;                        int t2 = h2 * 60 + m2;                        if(t1 > t2) tmp1.pb({t1, t2 + 1440});                        else tmp1.pb({t1, t2});                }                                else{                        cin >> h1 >> ch >> ch;                        m1 = (ch - '0') * 10;                        cin >> ch;                        m1 += ch - '0';                        cin >> ch >> ch;                        cin >> h2 >> ch >> ch;                        m2 = (ch - '0') * 10;                        cin >> ch;                        m2 += ch - '0';                        int t1 = h1 * 60 + m1;                        int t2 = h2 * 60 + m2;                        if(t1 > t2) tmp2.pb({t1, t2 + 1440});                        else tmp2.pb({t1, t2});                }        }                each2(x, tmp1){                v1.pb(x);                v1.pb({x.fir + 1440, x.sec + 1440});                v1.pb({x.fir + 2880, x.sec + 2880});        }                each2(x, tmp2){                v2.pb(x);                v2.pb({x.fir + 1440, x.sec + 1440});                v2.pb({x.fir + 2880, x.sec + 2880});        }                each2(a, v1){                each2(b, v2){                        if(a.sec >= b.fir) continue;                        ans = min(ans, b.sec - a.fir + 1);                }        }                if(ans == INF1) coutx >> y;                                if(deep == deep - 1){                        cout = deep + 1) z = f;                        s --;                }                                cout

各卧唯 发表于 2025-10-22 01:12:19

感谢分享,下载保存了,貌似很强大

涅牵 发表于 2025-12-18 03:16:32

感谢发布原创作品,程序园因你更精彩

厌外 发表于 2025-12-19 17:12:19

东西不错很实用谢谢分享

挺喽蹂 发表于 2026-1-14 05:55:10

过来提前占个楼

衣旱 发表于 2026-1-16 07:33:36

谢谢楼主提供!

绘纵 发表于 2026-1-17 20:16:12

喜欢鼓捣这些软件,现在用得少,谢谢分享!

绘纵 发表于 2026-1-17 22:27:16

热心回复!

甦忻愉 发表于 2026-1-19 09:40:39

过来提前占个楼

僭墙覆 发表于 2026-1-19 13:41:59

鼓励转贴优秀软件安全工具和文档!

迭婵椟 发表于 2026-1-21 09:04:33

感谢,下载保存了

卓卞恻 发表于 2026-1-22 11:32:13

前排留名,哈哈哈

列蜜瘘 发表于 2026-1-22 12:10:07

鼓励转贴优秀软件安全工具和文档!

郦珠雨 发表于 2026-1-24 08:05:35

过来提前占个楼

每捎京 发表于 2026-1-24 13:56:17

谢谢楼主提供!

第璋胁 发表于 2026-1-25 08:38:45

鼓励转贴优秀软件安全工具和文档!

锦惺 发表于 2026-1-27 17:28:14

谢谢分享,试用一下

梁宁 发表于 2026-1-29 02:08:12

感谢分享,学习下。

郏琼芳 发表于 2026-1-30 06:56:17

收藏一下   不知道什么时候能用到

炀餮氢 发表于 2026-2-3 06:38:43

感谢分享,学习下。
页: [1] 2
查看完整版本: COCI 2024/2025 #3