題意:有n(<=1e10)個人,每個人會坐當前空閒的,編號最小的飛機(<=1000),對於第i個飛機,任意人的乘坐時間為si。
n的數量很驚人,不能模擬,所以第一次我考慮從m下手,又怎麼做呢?
dp ? 貪心 ? 似乎無從下手。
正解: 可以發現坐飛機的時間是有規律的,那麼這就意味著如果確定了時間,可以在o(m)的時間內求出有多少人坐了飛機。那麼就二分找到最後乙個人上飛機的時刻,模擬一下即可。
ps:**中的 (time - 1) % s[i] == 0 就代表了在這個時刻可以上飛機,很重要
/*i am firing!*/
#include
#include
#include
#include
using
namespace
std;
typedef
int _int;
#define int long long
int n , m , s[1005];
int calc(int time)
int getnum(int time)
_int main()
cout
0;}
CODE 遊樂園的迷宮
題目 題目描述 description 迷宮可是每個遊樂園必不可少的專案,菜菜當然是要嘗試一下啦。這個迷宮比較特殊。與其說是迷宮,倒不如說是乙個巨大的格仔。遊樂園給菜菜發了一張地圖,地圖上標明了,這個格仔由n行m列共n m個小格仔組成。有的格仔可以正常走,標為 有的格仔有陷阱不能走,標為 有的格仔比...
2855 遊樂園的迷宮
時間限制 1 s 空間限制 128000 kb 題目等級 gold 迷宮可是每個遊樂園必不可少的專案,菜菜當然是要嘗試一下啦。這個迷宮比較特殊。與其說是迷宮,倒不如說是乙個巨大的格仔。遊樂園給菜菜發了一張地圖,地圖上標明了,這個格仔由n行m列共n m個小格仔組成。有的格仔可以正常走,標為 有的格仔有...
HNOI2007 神奇遊樂園
題面在這裡 四通格中每格都有權值 a 求單回路上路徑權值和的最大值 2 le n le 100,2 le m le 6,10 3 le a le10 3 插頭dp,最後合併單迴路的時候就不要記狀態了,直接更新答案就好 include include include include include i...