description
外星人入侵地球。可怕的吃人外星人正在全國各地依次序建立它們的基地。
全國共有n(1≤ n ≤10,000)座城市,城市編號1~n。城市之間有m(0≤ m ≤100,000)條雙向道路相連。外星人計畫建立a(0≤a≤n)個基地。
你只有在距離當前所有外星人基地至少k(1≤k≤100)單位長度的城市才能得到安全。
所以你必須趕快寫乙個程式決定走到**去。
input
第1行:4個整數n, m, a, k
接下來m行,每行3個整數t1, t2(1≤t1
const
maxe=100001;
maxv=400001;
type
arr=record
x,y,w,next:int64;
end;
var n,m,nm,nn,mm,ans:longint;
a:array [0..maxv] of arr;
ls:array [0..maxe] of longint;
list,d,v:array [0..maxe] of int64;
f:array [0..10001] of boolean;
procedure
spfa
(st:longint);
var i,k,h,t:longint;
begin
fillchar(d,sizeof(d),63);
fillchar(v,sizeof(v),0);
fillchar(list,sizeof(list),0);
h:=0; t:=1;
v[st]:=1; list[1]:=st; d[st]:=0;
repeat
h:=h+1;
i:=ls[list[h]];
while i<>0
dobegin
with a[i] do
begin
if d[x]+wthen
begin
d[y]:=d[x]+w;
if v[y]=0
then
begin
t:=t+1;
list[t]:=y;
v[y]:=1;
end;
end;
i:=next;
end;
end;
v[list[h]]:=0;
until h=t;
end;
procedure
init;
var i:longint;
begin
readln(n,m,nn,mm);
for i:=1
to m do
begin
with a[i] do
begin
readln(x,y,w);
next:=ls[x];
ls[x]:=i;
end;
with a[m+i] do
begin
x:=a[i].y; y:=a[i].x;
w:=a[i].w;
next:=ls[x];
ls[x]:=i+m;
end;
end;
m:=m*2;
end;
procedure
print;
var i,j,t:longint;
begin
fillchar(f,sizeof(f),true);
for i:=1
to nn do
begin
readln(t);
spfa(t);
ans:=0;
for j:=1
to n do
if (d[j]>=mm) and f[j] then inc(ans)
else f[j]:=false;
writeln(ans);
end;
end;
begin
init;
print;
end.
外星人入侵
今天是乙個週末,宿舍的人全部都出去玩了,而我因為太懶乙個人留在了宿舍,連床都不起,吃飯靠的是點外賣。不過,為了好玩,我跟著書本學習打了乙個2d小遊戲,並加入了一點自己的東西。一 遊戲頁面 剛開始我把所有的遊戲螢幕設定都放在了下面 裡,這使得 看起來非常長,和雜亂,所以為了使遊戲方便擴充套件和整個 邏...
Pygame 外星人入侵(7)外星人壓境
二 更加合理地移動 三 小結 在之前的博文中,實現了在螢幕上繪製一大群外星人,現在我們想讓這群外星人動起來,它們的移動遵循著一定的規律。我們首先要實現的是,如何讓一群外星人一起向螢幕右側移動。遊戲引數性質的變數統一存放在 設定模組中的設定類中 6 外星人的屬性 6。1 外星人移動的速度 self.a...
外星人入侵 二
思路 當按下特定的方向鍵後,飛船向指定的方向移動,可以允許不斷移動,為實現不斷移動,需要設定乙個移動標誌,預設為false,當按下時,則為true,實現其方向鍵的移動,除此之外,還要限制飛船的活動範圍,防止飛出邊界,為此需要更改 ship.py完整 如下 import pygame class sh...