NOIP2019普及組複賽第4題標程大神們幫幫忙

時間 2022-01-02 00:51:08

1樓:偽娘丶畠

program drawing; var a:array[1..50,1..

50]of integer; map:array[1..1000,1..

1000]of char; x,y,m,n,i,j,k,maxx,maxy,temp,tmp:integer; procedure ready; begin for i:=1 to maxx do for j:

=1 to maxy do map[i,j]:='.'; end; procedure print; begin for x:

=1 to maxx do begin for y:=1 to maxy do write(map[x,y]); writeln; end; end; procedure draw(x,y:integer); begin map[x,y]:

='+';map[x,y+1]:='-';map[x,y+2]:='-';map[x,y+3]:

='-';map[x,y+4]:='+'; dec(x); map[x,y]:='|';map[x,y+1]:

=' ';map[x,y+2]:=' ';map[x,y+3]:=' ';map[x,y+4]:

='|';map[x,y+5]:='/'; dec(x); map[x,y]:='|';map[x,y+1]:

=' ';map[x,y+2]:=' ';map[x,y+3]:=' ';map[x,y+4]:

='|';map[x,y+5]:=' ';map[x,y+6]:='+'; dec(x); map[x,y]:

='+';map[x,y+1]:='-';map[x,y+2]:='-';map[x,y+3]:

='-';map[x,y+4]:='+';map[x,y+5]:=' ';map[x,y+6]:

='|'; dec(x); map[x,y+1]:='/';map[x,y+2]:=' ';map[x,y+3]:

=' ';map[x,y+4]:=' ';map[x,y+5]:='/';map[x,y+6]:

='|'; dec(x); map[x,y+2]:='+';map[x,y+3]:='-';map[x,y+4]:

='-';map[x,y+5]:='-';map[x,y+6]:='+'; end; begin assign(input,'drawing.

in'); assign(output,'drawing.out'); reset(input);rewrite(output); readln(m,n); for i:=1 to m do begin for j:

=1 to n do read(a[i,j]); readln; end; maxy:=4*n+2*m+1; maxx:=0; for i:

=1 to m do begin tmp:=a[i,1]; for j:=1 to n do if a[i,j]>tmp then tmp:

=a[i,j]; tmp:=tmp*3+(m-i+1)*2+1; if tmp>maxx then maxx:=tmp; end; ready; for i:

=1 to m do for j:=1 to n do begin x:=maxx-(m-i)*2; y:

=(j-1)*4+(m-i)*2+1; temp:=x; for k:=1 to a[i,j] do begin draw(x,y); x:

=x-3; end; x:=temp; end; print; close(input);close(output); end....

2樓:麥田裡的少年兒

第一題 program isbn(input,output); var s:string; k:longint; begin assign(input,'isbn.

in');reset(input); assign(output,'isbn.out');rewrite(output); readln(s); k:=(ord(s[1])-48)*1+(ord(s[3])-48)*2+(ord(s[4])-48)*3+(ord(s[5])-48)*4+(ord(s[7])-48)*5+(ord(s[8])-48)*6+(ord(s[9])-48)*7+(ord(s[10])-48)*8+(ord(s[11])-48)*9; if (k mod 11=ord(s[13])-48)or(k mod 11=10)and(s[13]='x') then writeln('right') else begin if k mod 11=10 then writeln(copy(s,1,12),'x') else writeln(copy(s,1,12),k mod 11); end; close(input); close(output); end.

第二題: program seat(input,output); var a,b,c,d:array[1..

10000] of longint; m,n,k,l,z,i,j,x,y,x1,y1:longint; procedure kp1(h,t:longint); var i,j,x,y:

longint; begin x:=a[h]; y:=c[h]; i:

=h; j:=t; while ix) do inc(i); if ih then kp1(h,i-1); if i+1x) do inc(i); if ih then kp2(h,i-1); if i+1

longint; begin x:=c[h]; i:=h; j:

=t; ); if i+1

noip2012普及組複賽第4題文化之旅

3樓:yoki颯

滿分搜尋的話,按理用下面幾個剪枝就可以了.

1、最優性剪枝 (ans < nowdist + mindist)(nowdist當前走過的路程,mindist至少還要走多遠).

2、刪去所有影響終點的城市(不可能走到的……)3、倒搜

說實話給 pj 組的寫 std 時是這麼寫的……ac過了.

雖然怎麼說倒搜似乎有些說不過.

另把倒搜換成下面的剪枝也是可以過的.

設定一個x,從終點向外拓展x層.

每走一個城市看是否這x層中的任意一層被封鎖.

上述的確有些鬱悶,因為x取小作用不大,取大又降低了程式執行速度.

可以考慮將所有拓展層全部求出來.每2、3層跳躍一次.

100個點的圖如果想卡人的話,層數不會太多的,最多10層左右.

不過後面的沒有實現了.std x 取1就可以過.

程式在學校的說……明天中午發過來》_<~

4樓:倩女筠筠

4文化之旅 (culture.cpp/c/pas) 【問題描述】 普及組 有一位使者要遊歷各國他每到一個國家都能學到一種文化但他不願意學習任何一 種文化超過一次即如果他學習了某種文化則他就不能到達其他有這種文化的國家。不 同的國家可能有相同的文化。

不同文化的國家對其他文化的看法不同有些文化會排斥外來 文化即如果他學習了某種文化則他不能到達排斥這種文化的其他國家。 現給定各個國家間的地理關係各個國家的文化每種文化對其他文化的看法以及這 位使者遊歷的起點和終點在起點和終點也會學習當地的文化國家間的道路距離試求 從起點到終點最少需走多少路。 【輸入】 輸入檔案 culture.

in。 第一行為五個整數 nkmst每兩個整數之間用一個空格隔開依次代表國家 個數國家編號為 1 到 n文化種數文化編號為 1 到 k道路的條數以及起點和終點 的編號保證 s 不等於 t 第二行為 n 個整數每兩個整數之間用一個空格隔開其中第 i 個數 ci表示國家 i 的文化為 ci。 接下來的 k 行每行 k 個整數每兩個整數之間用一個空格隔開記第 i 行的第 j 個數 為 aijaij= 1 表示文化 i 排斥外來文化 ji 等於 j 時表示排斥相同文化的外來人aij= 0 表示 不排斥注意 i 排斥 j 並不保證 j 一定也排斥 i。

接下來的 m 行每行三個整數 uvd每兩個整數之間用一個空格隔開表示國家 u 與國家 v 有一條距離為 d 的可雙向通行的道路保證 u 不等於 v兩個國家之間可能有多條 道路。 【輸出】 輸出檔名為 culture.out。

輸出只有一行一個整數表示使者從起點國家到達終點國家最少需要走的距離數如 果無解則輸出-1。 【輸入輸出樣例 1】 culture.in 2 2 1 1 2 1 2 0 1 1 0 1 2 10 【輸入輸出樣例說明】 culture.

out -1 由於到國家 2 必須要經過國家 1而國家 2 的文明卻排斥國家 1 的文明所以不可能到 達國家 2。 【輸入輸出樣例 2】 culture.in 2 2 1 1 2 1 2 0 1 0 0 1 2 10 【輸入輸出樣例說明】 路線為 1 -> 2。

【資料範圍】 對於 20%的資料有 2≤n≤8k≤5 對於 30%的資料有 2≤n≤10k≤5 對於 50%的資料有 2≤n≤20k≤8 對於 70%的資料有 2≤n≤100k≤10 culture.out 10 普及組 對於 100%的資料有 2≤n≤1001≤k≤1001≤m≤n 21≤ki≤k1≤u, v≤n1≤d≤1000 s≠t1 ≤s, t≤n。

NOIP2019普及組第三題標準的01怎麼就是隻能過點呢

a i j 一開始要繼承上一層所有情況 改一下這一段 for i 1 i n i for j t j v i j 改為for i 1 i n i y noip2005普及組複賽第三題採藥,我的 如下,顯示第六行錯了,請問錯在哪?noip2005複賽 普及組答案 你叫我砸說呢?一二題不說。第三題用動態...

今年高二 參加NOIP提高組 求提高方法

我也是oier,今年高三,分享一下經驗。首先,你的基礎語言必須過關,這個沒什麼說的,多練唄,如果有不熟悉的 比如指標 結構等等 推薦譚浩強的 c 程式設計 紅皮的 非常全面,我們人手一冊。其次,就是演算法了。強烈推薦一本書劉汝佳的 演算法競賽入門經典 白皮 是算藝的noip簡化版,演算法個人認為非常...

請問2023年的NOIP初賽中如何提高選擇提計算的速度,允許帶計算器嗎?完善程式,如果根本理解不了

我們這裡初賽是允許使用計算器的 要是想選擇題提高速度 首先基礎知識應該紮實,這樣做選擇題的時候才能得心應手。另外完善程式不會的話可以多看看上下文,找找規律,一般都會有規律可循的,只要你把題意看懂了,把他給的程式看懂了,一般就能填上,因為初賽只有2個小時,他不可能出些什麼難度較大的題讓你做,去分析。不...