外星人入侵 Standard IO

2021-07-16 19:36:32 字數 2070 閱讀 9829

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...