滑完雪之後,ことり突然想吃點心啦!於是她去了甜品店。
日本的冬天經常下雪。不幸的是,今天也是這樣,每秒鐘雪的厚度會增加q公釐。
秋葉原共有n個地點,編號從1到n。每個地點在開始的時候的積雪高度為hi。
有m條雙向道路連線這些地點,它們的長度分別為wi公尺。
雪太大,公共運輸系統已經停擺了,所以ことり得走路回家。她走路的速度是1m/s。
為了方便地圖的繪製,秋葉原的道路規劃使得每條道路嚴格地連線兩個不同的地點,並且不會有兩條道路連線的地點相同。
每個地點都有乙個極限雪高li,單位是公釐,如果到達這個地點的時候,這裡的雪的高度高於li則會被困在這個點走不出去,無法成功地走到ことり家。
點心店這個地點的編號是s,ことり家的編號是t。
不考慮點心店和ことり家的雪。
ことり想在g秒內回到家吃點心,越快越好。如果在g秒之內,ことり無法到家,或者她被困在路上了,那麼ことり會把wtnap變成她的點心( ・ 8 ・ )
spfa統計降雪量,超過的不能走,特判重點。
#include
using
namespace
std;
#define ll long long
const
int maxn=6e5+5;
const ll inf=1e18+7;
struct edgee[maxn<<1];
ll head[maxn],cnt=0;
inline
void add(ll u,ll v,ll w),head[u]=cnt;}
queue
que;
ll dis[maxn],n,m,s,t,d,q,hi,li,xz[maxn];
bool vis[maxn];
void spfa(ll x)}}
// cout<}
}int main()
for(ll i=1;i<=m;i++)
for(ll i=1;i<=n;i++)dis[i]=inf;
spfa(s);
if(dis[t]<=d)printf("%lld\n",dis[t]);
else
printf("wtnap wa kotori no oyatsu desu!\n");
return
0;}
飛揚的小鳥
顯然的思路,用網路流做。對每個洞拆點,i.j表示第i個洞被通過這個洞的倒數第j隻鳥通過。然後連邊跑費用流。然而邊數太多直接 怎麼辦?注意到i.j沒被流i.j 1就絕不可能被流。因此動態加邊,初始只連所有到x.1的。目前連到x.y,流成功一次加上所有到x.y 1的邊。然後莫名很慢,所以這裡本辣雞加上了...
憤怒的小鳥
對於每兩隻豬,只要他們的橫座標不一樣,就會有一條經過原點的二次函式y ax2 bx同時經過這兩隻豬,那麼這時就是解二元一次方程的時候了,設第一只豬的座標為 x1,y1 第二隻豬的座標為 x2,y2 y1 ax1 2 bx 1 y2 ax2 2 bx 2 化為 b y 1 ax 12x1 y2 ax2...
飛翔的小鳥
但是轉移時需要先轉移上公升然後下落。還有就是管內也要轉移 否則跳k步可以跳上去的不能上去 include include include using namespace std struct nodea 11000 struct nodeb 11000 int inf 99999999 int n,...