tyvj 衡水中學60周年賽 解題報告

2021-06-01 08:07:25 字數 3845 閱讀 5314

刷漆運動開始……

莘元館有m+1行,n+1列的座椅,編號分別為0~m,0~n,第0行的座椅已經刷成了紅色,第0列的座椅(除位置為(0,0)的刷成了紅色)已經刷成了綠色,其他座椅均為白色,現在,oi小組需要粉刷所有那些白色的座椅。

校長的要求是,對於每乙個座椅(i,j),它必須與(i-1,j)座椅或(i,j-1)座椅同色。

魂之輓歌想知道,將每乙個座椅全都粉刷,一共有多少種方案?

輸入 一行,兩個正整數m,n(0 < m,n<=2000)

輸出 僅乙個正整數,表示方案數(由於答案較大,只需輸出它mod 20110926的值即可)

樣例輸入

1 1

樣例輸出

2

提示 就乙個座椅,不是紅的就是綠的(紅配綠……)

思路:略。

得分:100

ac程式:

var a:array[0..2000,0..2000] of longint;

n,m,i,j,k,sum:longint;

begin

readln(n,m);

for i:=1 to n do

a[i,0]:=1;

for i:=1 to m do

a[0,i]:=1;

a[0,0]:=1;

for i:=1 to n do

for j:=1 to m do

a[i,j]:=(a[i-1,j]+a[i,j-1]) mod 20110926;

writeln(a[n,m]);

end.

衡水中學馬上就要60周年校慶了,衡中的oi小組都很高興

於是,他們想出一道水題給大家送分

衡中oi小組想讓你計算一下,從y年m月d日到衡水中學的k周年校慶有多少天?

注:衡水中學建校於1951-9-26,1周年校慶是在1952-9-26 輸入 第一行三個整數y,m,d(1951<=y<=2011,1<=m<=12,1<=d<=31,保證日期合法)

第二行乙個整數k(0輸出 乙個正整數,表示還有多少天。(如果k周年校慶在y年m月d日已經過了,那麼就輸出impossible)

樣例輸入 2011 6 18 60

樣例輸出 100

思路:直接模擬

得分:100分

ac程式:

const dx:array[1..12] of longint=((31),(28),(31),(30),(31),(30),

(31),(31),(30),(31),(30),(31));

var y,m,d,i,j,k,l,now,sum,day:longint;

****:int64;

function run(x:longint):boolean;

begin

if ((x mod 4=0) and (x mod 100<>0)) or (x mod 400=0) then

exit(true)

else exit(false);

end;

procedure print(i,j,l:longint);

begin

if (i=(1951+k)) and (j=9) and (l=26) then

begin writeln(sum);

close(input); close(output); halt;

end;

end;

begin

readln(y,m,d); readln(k);

for i:=y to 1951+k do

begin

for j:=m to 12 do

begin

day:=dx[j];

if run(i) and (j=2) then day:=day+1;

for l:=d to day do

begin

print(i,j,l); inc(sum);

end;

d:=1;

end;

m:=1;

end;

writeln('impossible');

end.

為了校慶的新面貌,校長大人決定把學校的大甬路鋪上瀝青(原來是石板的……)。

這條路被分為n個區域,每次,校長會對工人們發出命令:

(1)把l區域到r區域的路鋪好(如果中間某區域已經鋪好,就不再鋪了)

(2)由於可能有豬仙那樣的同學把鞋粘在上面,校長老遠一看也不知道是哪個區域,於是就會讓工人把l區域到r區域的路全部拆掉(如果中間某區域還沒鋪好,就不拆了)

在一開始,整條路都還沒鋪上瀝青。

校長在發出了m條命令之後,想知道有多少個區域的路是鋪好了的。 輸入 第一行,兩個數n,m

接下來m行,每行三個數k,l,r,k=1或2,k=1表示把l區域到r區域的路鋪上,k=2則表示把l區域到r區域的路拆掉 輸出 乙個數,即有多少個區域的路是鋪好了的

樣例輸入 5 3 1 1 31 3 52 2 4

樣例輸出 2

思路:線段樹(表示不會)

得分:模擬得30分

ac程式:無

maxingc是不會讓魂之輓歌赴湯蹈火的……

衡中和滏陽同在乙個平面座標系上,所有的路都是與座標軸平行的。

在這個座標系上,有n個路口,在這些路口上(且僅在這些路口上)可以拐彎,即由平行於乙個座標軸走到平行於另乙個座標軸走。

現在maxingc想讓魂之輓歌算一下,從衡中到滏陽,至少要拐幾個彎? 輸入 第一行,乙個數n(n<=100000)

接下來有n+2行,每行有一對座標,第一行是衡中的座標,最後一行是滏陽的座標,中間n行是各個路口的座標

保證所有座標絕對值<=2*10^9 輸出 乙個數,即至少拐多少個彎(如果不能到達,就輸出no)

樣例輸入 2 0 01 01 1-1 1

樣例輸出 2

思路:bfs

得分:70分(修改後90分,最後一點tle)

90分程式:

var x,y,dx,dy,ans:array[0..100000] of longint;

v:array[0..100000] of boolean;

n,i,j,k,nowx,nowy,ex,ey,sum:longint;

procedure f;

var t,w,i,tx,ty:longint;

begin

t:=0; w:=1;

dx[1]:=nowx; dy[1]:=nowy;

while ttx) or (y[i]<>ty) then

if (x[i]=tx) or (y[i]=ty) then

begin

inc(w); dx[w]:=x[i]; dy[w]:=y[i];

ans[w]:=ans[t]+1;

v[i]:=true;

if (dx[w]=ex) or (dy[w]=ey) then

begin sum:=ans[w]; exit; end;

end;

end;

end;

begin

readln(n);

readln(nowx,nowy);

for i:=1 to n do

readln(x[i],y[i]);

readln(ex,ey);

if (nowx=ex) or (nowy=ey) then writeln(0)

else

begin

f; if sum=0 then writeln('no') else writeln(sum);

end;

end.

60周年國慶快樂

最近的生活只能用兩個字來形容,那就是愜意。還記得前段時間鬱悶得不行,現在好不容易到了國慶長假,回到了家裡,泡一杯咖啡,回想起今年發生的事情,真是感慨萬千。2009年7月份,是非常黑暗的乙個月。在這段時間裡,我覺得用水滸裡形容好漢林沖被困的詞能夠非常好的表達我當時的心境 悶似蛟龍離海島,愁如猛虎困荒田...

紀念人工智慧(AI)奠基60周年 續

紀念人工智慧 ai 奠基60周年 續 回顧上世紀五十年代,世界上還沒有現代意義上的計算機,計算機技術處於 萌芽 狀態。在那時,人們根本不敢想象今天的網際網路與雲計算的巨大威力。但是,就在這種歷史侷限條件之下,約翰.麥卡錫天才地預見到人工智慧 ai 的巨大潛力。在過去60年漫長的歷史歲月裡,無數科學天...

馮諾依曼辭世60周年紀念

馮諾依曼辭世60周年紀念,導讀 今天是馮 諾依曼逝世 60 周年的日子。馮 諾依曼在數學 理論物理和邏輯領域貢獻良多,也影響 改變了許多人,比如圖靈 納什。今天我們熱烈討論的 alphago 人工智慧,與馮 諾依曼同樣分不開。馮 諾依曼生於 1903 年 12 月 28 日,逝於 1957 年 2 ...