單點時限: 10.0 sec
記憶體限制: 256 mb
在一條沒有分岔的高速公路上有 n 個關口,相鄰兩個關口之間的距離都是 10km。所有車輛在這條高速公路上的最低速度為 60km/h,最高速度為 120km/h,並且只能在關口處改變速度。
巡邏的方式是在某個時刻 ti 從第 ni 個關口派出一輛巡邏車勻速駛抵第 (ni+1) 個關口,路上耗費的時間為 ti 秒。
兩輛車相遇是指它們之間發生超車或者兩車同時到達某關口(同時出發不算相遇)。
巡邏部門想知道一輛於 6 點整從第 1 個關口出發去第 n 個關口的車(稱為目標車)最少會與多少輛巡邏車相遇,請程式設計計算之。假設所有車輛到達關口的時刻都是整秒。
輸入格式
輸入第一行為兩個用空格隔開的整數,分別為關口數 n 和巡邏車數 m。(1第一次看這個題感覺應該是dp,然後考慮了很多種寫法,但是一直因為擔心自己的寫法不夠優秀會tle所以很糾結
後來發現只要把巡邏車輛按照出發點分開時間就差不多了,比我想象的要簡單
至於如何判斷相遇——畫個x-t函式影象你自己就明白了
#include
#include
#include
#include
#include
#define rt long long
using
namespace std;
inline rt read()
while
(isdigit
(ch)
)return u*v;
}struct car
an[310];
char as[10]
;rt dp[55]
[86400
],l[55]
,r[55
],n,m;
intmain()
memset
(dp,
0x3f
,sizeof
(dp));
dp[1]
[21600]=
0;for(
int i=
1;i)for
(int j=
21600
;j<
86400
;j++)if
(dp[i]
[j]!=dp[0]
[0])
} rt minn=dp[0]
[0],ans;
for(
int i=
21600
;i<
86400
;i++)if
(dp[n]
[i][i],ans=i;
printf
("%lld\n"
,minn)
; rt hour=ans/
3600
; ans%
=3600
; rt minute=ans/60;
ans%=60
;printf
("%02d%02d%02d"
,hour,minute,ans)
;return0;
}
EOJ 莫干山奇遇
出題人當然是希望出的題目有關oxx,於是想方設法給題目配上一些有關oxx的背景故事,使得它看起來不那麼無趣。但有的時候卻無法引入合適的小姐姐,使得oxx顯得非常可憐。所以出題人刪除了故事,只留下乙個枯燥乏味的數學問題。故事已刪除 給乙個長度為n的序列a1,a2,an,求乙個長度為m的序列b1,b2,...
EOJ 2794 鍊錶
大概是在10000 10的矩陣裡找兩行,兩列,使得兩行中的對應列是相同的。思路 在長列中hash,建立hash陣列,表示這個hash i 的i前乙個位置,建立鍊錶next i 指向hash value i 這樣就能o n 的找到所有相同的數的乙個鍊錶。然後搜尋兩列的時候比較當前指向的位置,當前比較短...
EOJ 3256 拼音魔法
time limit per test 1.0 seconds time limit all tests 1.0 seconds memory limit 256 megabytes 魔法學校小學一年級有一種題。就是給乙個字的拼音,給乙個聲調,讓你正確地注音。但魔法老師給了巨量的題,你不用魔法根本不...