時間限制: 1000 ms 記憶體限制: 524288 kb
原題來自:poi 2004
john 打算駕駛一輛汽車周遊乙個環形公路。公路上總共有 n
'>
n 車站,每站都有若干公升汽油(有的站可能油量為零),每公升油可以讓汽車行駛一千公尺。john 必須從某個車站出發,一直按順時針(或逆時針)方向走遍所有的車站,並回到起點。在一開始的時候,汽車內油量為零,john 每到乙個車站就把該站所有的油都帶上(起點站亦是如此),行駛過程中不能出現沒有油的情況。
任務:判斷以每個車站為起點能否按條件成功周遊一周。
第一行是乙個整數 n
'>n
,表示環形公路上的車站數;
接下來 n
'>
n 行,每行兩個整數 pi,
di'>pi,di
,分別表示表示第 i
'>
i 號車站的存油量和第 i
'>
i 號車站到下一站的距離。
輸出共 n
'>n
行,如果從第 i
'>
i 號車站出發,一直按順時針(或逆時針)方向行駛,能夠成功周遊一圈,則在第 i
'>
i行輸出 tak
'>tak
,否則輸出 nie
'>nie
。
53 11 2
5 20 1
5 4
tak對於全部資料,3≤nnietak
nietak
≤106,
0≤pi
≤2×109,0
≤2×10
9'>3≤n≤106
,0≤pi≤2×109
,0≤n≤10
6,0≤
pi≤2
×109,
0≤2×10
9'>sol:若乙個點是不能環繞一圈的,那麼就是這個點在繞一圈過程中油量的最小值<0,每個點對當前油的貢獻就是pi-di,這樣就可以維護出乙個字首和,(斷環成鏈後長度為2n),i點是否合法就是判斷(s[i]~s[i+n-1]中的最小值-s[i])是否小於0,小於0就不可以,逆時針一模一樣搞一遍,就是pi和di會變一下,隨便處理一下就可以了
#include using
namespace
std;
typedef
long
long
ll;inline ll read()
while
(isdigit(ch))
return (f)?(-s):(s);
}#define r(x) x=read()inline
void
write(ll x)
if(x<10
)
write(x/10
); putchar((x%10)+'0'
);
return;}
inline
void
writeln(ll x)
#define w(x) write(x),putchar(' ')
#define wl(x) writeln(x)
const
int n=1000005
;int n,you[n<<1],dis[n<<1],you1[n<<2],dis1[n<<1],oil[n<<1
];ll sum[n
<<1
];bool ans[n<<1
];struct
data
ddq[n
<<1
];int
main()
head=1; tail=0
;
for(i=1;i<=n+n;i++)
while(head<=tail&&ddq[tail].shuz>sum[i]) tail--;
ddq[++tail]=(data);
}for(i=1;i<=n;i++)
head=1; tail=0
;
for(i=1;i<=n+n;i++)
}while(head<=tail&&ddq[tail].shuz>sum[i]) tail--;
ddq[++tail]=(data);
}for(i=1;i<=n;i++)
return0;
}/*input
53 1
1 25 2
0 15 4
output
taknie
taknie
takinput
104 3
10 5
5 018 0
2 75 7
3 22 9
10 3
6 9output
taktak
taktak
taknie
nienie
taknie
*/view code
一本通 1 1 例 4 加工生產排程
題目傳送門 這道題是johnson雙流水線排程演算法的基礎題。本題是要求乙個加工順序使得總的加工時間最少,而要使加工時間最少,就是讓各車間的空閒時間最少。一旦a車間開始加工,便會不停地進行加工 我們不要去管車間是否能夠一直生產,因為他們有三班,可以24時間不停地運轉 關鍵是b車間在生產的過程中,有可...
C 一本通 1 1 例 4 加工生產排程
一本通題庫 1425 libreoj 10003 vjudge 注意 libreoj和一本通題庫題意相同,但資料範圍不同。以一本通題庫為準。某工廠收到了 n nn 個產品的訂單,這 n nn 個產品分別在 a b a ba b 兩個車間加工,並且必須先在 a aa 車間加工後才可以到 b bb 車間...
一本通1555 例 4 次小生成樹
時間限制 1000 ms 記憶體限制 524288 kb 題目描述 原題來自 beijing 2010 組隊賽 給定一張 n 個點 m 條邊的無向圖,求無向圖的嚴格次小生成樹。設最小生成樹的邊權之和為 sum,嚴格次小生成樹就是指邊權之和大於 sum 的生成樹中最小的乙個。輸入格式 第一行包含兩個整...