日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jzoj C组 2017.1.19 比赛

發(fā)布時間:2025/7/14 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jzoj C组 2017.1.19 比赛 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第一題——小x的游戲

題目描述

Tac游戲在一個4*4的方格上進行。起先可能會在16個方格中出現(xiàn)一個標記‘T’,其余的方格是空著的。游戲有兩個玩家,小x和小o。小x先開始,然后游戲輪流進行。每一步玩家可以將他的標記放入一個空的方格中。小x的標記是‘X’,小o的標記是‘O’。在一個玩家結(jié)束操作后,如果出現(xiàn)一行、一列或者對角線都是該玩家的標記,或者有3個該玩家的標記以及標記‘T’,那么他獲得勝利,游戲結(jié)束,否則游戲繼續(xù),進入另一個玩家的回合。如果所有的方格都被填滿,并且沒人獲得勝利,那么游戲結(jié)束,為平局。給出一個4*4的方格,包括‘X’,‘O’,‘T’和‘.’(‘.’表示空的方格),輸出現(xiàn)在游戲的狀態(tài),游戲的狀態(tài)包括:? “X won”(游戲結(jié)束,小x獲勝)? “O won”(游戲結(jié)束,小o獲勝)? “Draw”(游戲結(jié)束,平局)? “Game has not completed”(游戲還未結(jié)束)如果有空格,并且游戲還未結(jié)束,你應該打印 “Game has not completed”,即使最后的結(jié)果是一定的。

輸入

第一行一個整數(shù)T,表示測試數(shù)據(jù)的組數(shù)。

每組測試數(shù)據(jù)包括4行,每行4個字符,如題所述。每組測試數(shù)據(jù)后會有一行空行。

輸出

對于每組測試數(shù)據(jù),輸出“Case #x: y”,x表示第x組測試數(shù)據(jù)(組號從1開始),y即上述的狀態(tài)之一。注意‘O’不是‘0’。

樣例輸入

6

XXXT

….

OO..

….

XOXT

XXOO

OXOX

XXOO

XOX.

OX..

….

….

OOXX

OXXX

OX.T

O..O

XXXO

..O.

.O..

T…

OXXX

XO..

..O.

…O

樣例輸出

Case #1: X won

Case #2: Draw

Case #3: Game has not completed

Case #4: O won

Case #5: O won

Case #6: O won

數(shù)據(jù)范圍限制

對于50%的數(shù)據(jù):1<=T<=10

對于100%的數(shù)據(jù):1<=T<=110


每行每列每個對角線都搜一次,如果有滿足獲勝的方法,就輸出。如果沒人獲勝,就判斷這里有沒有空格。有就輸出Game has not completed 沒有則輸出Draw。

代碼如下:

var n,i,j,k,l:longint;w:boolean;a:array[1..4,1..4]of char;b:array['A'..'Z']of longint;procedure pdd2(x:longint); var i:longint; beginfor i:=1 to 4 do if a[i,x-i+1]='.' then exit else inc(b[a[i,x-i+1]]);if b['X']=4 then begin l:=1; writeln('X won'); exit; end;if b['O']=4 then begin l:=2; writeln('O won'); exit; end;if (b['X']=3)and(b['T']=1) then begin l:=1; writeln('X won'); exit; end;if (b['O']=3)and(b['T']=1) then begin l:=2; writeln('O won'); exit; end; end;procedure pdd1(x:longint); var i:longint; beginfor i:=1 to 4 do if a[i,x+i-1]='.' then exit else inc(b[a[i,x+i-1]]);if b['X']=4 then begin l:=1; writeln('X won'); exit; end;if b['O']=4 then begin l:=2; writeln('O won'); exit; end;if (b['X']=3)and(b['T']=1) then begin l:=1; writeln('X won'); exit; end;if (b['O']=3)and(b['T']=1) then begin l:=2; writeln('O won'); exit; end; end;procedure pdl(x:longint); var i:longint; beginfor i:=1 to 4 do if a[i,x]='.' then exit else inc(b[a[i,x]]);if b['X']=4 then begin l:=1; writeln('X won'); exit; end;if b['O']=4 then begin l:=2; writeln('O won'); exit; end;if (b['X']=3)and(b['T']=1) then begin l:=1; writeln('X won'); exit; end;if (b['O']=3)and(b['T']=1) then begin l:=2; writeln('O won'); exit; end; end;procedure pdh(x:longint); var i:longint; beginfor i:=1 to 4 do if a[x,i]='.' then exit else inc(b[a[x,i]]);if b['X']=4 then begin l:=1; writeln('X won'); exit; end;if b['O']=4 then begin l:=2; writeln('O won'); exit; end;if (b['X']=3)and(b['T']=1) then begin l:=1; writeln('X won'); exit; end;if (b['O']=3)and(b['T']=1) then begin l:=2; writeln('O won'); exit; end; end;beginassign(input,'game.in');assign(output,'game.out');reset(input);rewrite(output);readln(n);for i:=1 to n dobeginl:=0;w:=false;for j:=1 to 4 dobeginfor k:=1 to 4 dobeginread(a[j,k]);if a[j,k]='.' then w:=true;end;readln;end;readln;write('Case #',i,': ');for j:=1 to 4 dobeginfillchar(b,sizeof(b),#0);pdh(j);if l<>0 then break;end;if l<>0 then continue;for j:=1 to 4 dobeginfillchar(b,sizeof(b),#0);pdl(j);if l<>0 then break;end;if l<>0 then continue;fillchar(b,sizeof(b),#0);pdd1(1);if l<>0 then continue;fillchar(b,sizeof(b),#0);pdd2(4);if l<>0 then continue;fillchar(b,sizeof(b),#0);if w=true then writeln('Game has not completed') else writeln('Draw');end;close(input);close(output); end.

第二題——小x的三角形

題目描述

小x和小o在一起研究各種圖形的性質(zhì)。小x發(fā)明了一個問題:一個完全無向圖有n個頂點,選擇m條邊得到它們,并將剩余的n*(n-1)div 2-m條邊給小o。小x和小o喜歡圖中的三角形,他們想知道他們得到的邊所形成的圖共形成了多少個三角形。圖的頂點從1到n編號。

輸入

第一行包含兩個用空格隔開的整數(shù)n和m,分別表示頂點數(shù)和小x選取的邊數(shù)。接下來m行每行兩個整數(shù)ai,bi,表示小x選取的第i條邊連接頂點ai,bi,數(shù)據(jù)保證小x得到的圖和初始的完全圖無重邊和自環(huán)。

輸出

輸出一行一個整數(shù),小x和小o得到的圖所包含三角形的總數(shù)。

樣例輸入

input1:

5 5

1 2

1 3

2 3

2 4

3 4

input2:

5 3

1 2

2 3

1 3

樣例輸出

output1:

3

output2:

4

數(shù)據(jù)范圍限制

【數(shù)據(jù)范圍】

對于20%的數(shù)據(jù) 1<=n<=20

對于60%的數(shù)據(jù) 1<=n<=100

對于100%的數(shù)據(jù) 1<=n<=20000, 0<=m<=10^6,m<=n(n-1)/2,1<=ai,bi<=n,ai≠bi

提示

【樣例解釋】

第一個樣例,小x得到的圖有兩個三角形:(1,2,3)和(2,3,4),小o有一個三角形(1,4,5),所以總數(shù)是3。

第二個樣例,小x的圖只有一個三角形(1,2,3),小o的圖有3個三角形(1,4,5),(2,4,5)和(3,4,5),所以總數(shù)是4。


公式為:C(3,n)-(每個點與點聯(lián)通和不連通的乘積) div 2


代碼如下:

var t,i,n,j,z,m:longint;x,s:int64; a:array[1..20000]of longint; beginassign(input,'triangles.in');assign(output,'triangles.out');reset(input);rewrite(output);readln(m,n);for j:=1 to n dobeginreadln(x,z);a[x]:=a[x]+1;a[z]:=a[z]+1;end;x:=m*(m-1)*(m-2) div 6;s:=0;for j:=1 to m do inc(s,a[j]*(m-1-a[j]));s:=s div 2;x:=x-s;writeln(x);close(input);close(output); end.

第三題——eko

題目描述

小x最近終于不用干搬磚的活了,他成為了一名光榮的伐木工人。但伐木工人也不好當,他每天必須至少砍下M米的木材。但小x對此感到毫無壓力,因為小y最近給他買了一臺嶄新的伐木機,可以像野火一樣將森林摧毀。但這臺伐木機實在太大了,它一次只能將一整排樹木一起砍倒。伐木機是這樣工作的:小x設計一個參數(shù)H,然后伐木機將一排N個樹木砍倒,然后得到每棵樹高于H的部分。比如,有4棵樹,高度分別為20,15,10,17米,而小x將H設為了15米。這樣,他從第一棵得到了5m的木材,第四棵得到了2m的木材,一共是7m。當然,如果一棵樹的高度不大于H,那么就不會被砍倒,也就不會留下木材。小x是個環(huán)保主義者,他希望H盡可能大,這樣他砍倒的樹木可以盡可能少。當然,前提是小x能至少得到M米木材。

輸入

第一行兩個整數(shù)N,M,代表有N棵樹,小x每天至少砍M米木材。

第二行N個整數(shù)Ai,代表每棵樹的高度。

輸出

一行一個整數(shù),代表所要求的最大高度。

樣例輸入

4 7

20 15 10 17

樣例輸出

15

數(shù)據(jù)范圍限制

對于30%的數(shù)據(jù):1 ≤ N ≤1 000

對于100%的數(shù)據(jù):

1 ≤ N ≤1 000 000

1 ≤ M ≤ 2 000 000 000

1 ≤ Ai ≤ 1 000 000 000


二分答案,求出最高的高度為r,進行二分。


代碼如下:

var i,l,r,k,n,m,x,mid:longint;ans,nmax:int64;a:array[0..1000000] of longint;function max(x,y:longint):longint; beginif x>y then exit(x) else exit(y); end;beginassign(input,'eko.in');assign(output,'eko.out');reset(input);rewrite(output);readln(n,m);for i:=1 to n dobeginread(a[i]);r:=max(a[i],r);end;l:=1;while l<=r dobeginmid:=(r+l) div 2;for i:=1 to n do if a[i]>mid then inc(nmax,a[i]-mid);if nmax>=m thenbeginans:=mid;l:=mid+1;endelse r:=mid-1;nmax:=0;end;writeln(ans);close(input);close(output); end.

第四題——math

題目描述

小x正在做他的數(shù)學作業(yè),可是作業(yè)實在太難了。題目是這樣的:

1.給定一個含有N個數(shù)的數(shù)列V。

2.你可以從數(shù)列中恰好移除K個數(shù),定義移除后的數(shù)列為V’。

3.定義M為V’中任意兩個數(shù)的差的最大值,m為V’中任意兩個數(shù)的差的最小值。

4.請你選擇刪去的K個數(shù),使得M+m最小。

小x的數(shù)學十分之差,于是他只能向你求助了。

輸入

第一行兩個整數(shù)N和K。

第二行N個整數(shù)Vi。

輸出

一行一個整數(shù),為最小的M+m的和。

樣例輸入

5 2

-3 -2 3 8 6

樣例輸出

7

數(shù)據(jù)范圍限制

對于60%的數(shù)據(jù):3 ≤ N ≤ 2 000

對于100%的數(shù)據(jù):

3 ≤ N ≤ 200 000

1 ≤ K ≤ N - 2

-5 000 000 ≤Vi ≤ 5 000 000

提示

【樣例解釋】

刪去-3和-2,得到V’={3,6,8},M=5,m=2,M+m=7。


現(xiàn)將n個數(shù)進行快排,因為只能從前和后面刪數(shù),枚舉前面刪數(shù)的個數(shù),求出刪這幾個數(shù),的差的最小值加差的最大值。


代碼如下:

var n,k,i,z,j,min,max,l:longint;a,b:array[0..200000]of longint;procedure qsort(l,r:longint); var i,j,mid:longint; beginif l>r then exit;i:=l; j:=r; mid:=a[(i+j) div 2];repeatwhile a[i]<mid do inc(i);while a[j]>mid do dec(j);if i<=j thenbegina[0]:=a[i]; a[i]:=a[j]; a[j]:=a[0];inc(i);dec(j);end;until i>j;qsort(l,j);qsort(i,r); end;beginassign(input,'math.in');assign(output,'math.out');reset(input);rewrite(output);readln(n,k);for i:=1 to n do read(a[i]);qsort(1,n);for i:=1 to n-1 do b[i]:=a[i+1]-a[i];min:=maxlongint;for i:=1 to k+1 dobeginz:=n-k+i-1;if l<i thenbeginmax:=maxlongint;for j:=i to z-1 doif b[j]<max thenbeginl:=j;max:=b[j];end;endelseif b[z-1]<b[l] then l:=z-1;if b[l]+a[z]-a[i]<min then min:=b[l]+a[z]-a[i];end;write(min);close(input);close(output); end.

由于今天的題比較水,早AK早寫博客。

轉(zhuǎn)載于:https://www.cnblogs.com/Comfortable/p/8412443.html

總結(jié)

以上是生活随笔為你收集整理的jzoj C组 2017.1.19 比赛的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲综合免费观看高清完整版 | 在线免费看av的网站 | 一个人免费在线观看视频 | 国av在线| 在线观看国产免费av | 九九在线精品视频 | 五月天开心网 | 久久爱综合网 | 69精品久久 | www.亚洲.com| 国产精品 欧美激情 | 久久国产精彩视频 | 国产a视频免费观看 | 白浆导航| 三上悠亚在线一区二区 | 在线精品一区 | 日韩免费精品 | 日韩在线导航 | 国产精品中文字幕在线 | 99久久精品免费看国产免费软件 | 欧美大片在线观看 | 亚洲国产精品影院 | 亚洲综合套图 | 欧美久久久久久久久久 | 韩国激情呻吟揉捏胸视频 | 国产精品久免费的黄网站 | 狠狠网站 | 精品免费国产一区二区三区 | 4438x五月天| 在线视频观看国产 | 成人h动漫精品一区二 | 亚洲伦理在线 | 亚洲av无码片一区二区三区 | 国产二区精品视频 | 亚洲av无码一区二区三区在线播放 | 四虎影院国产精品 | 成人福利网站在线观看 | 黑人玩弄人妻一区二区三区影院 | 成人av手机在线观看 | 国产毛片儿 | 91精品国产闺蜜国产在线闺蜜 | 一区三区在线观看 | jzzijzzij亚洲成熟少妇在线播放 狠狠躁日日躁夜夜躁2022麻豆 | 免费视频91蜜桃 | 国产一卡二卡三卡 | www.白虎 | 一级黄色免费毛片 | 精品中文字幕在线播放 | 91黄免费 | 国产绿帽刺激高潮对白 | 加勒比综合在线 | 日本精品一区二区在线观看 | 精品69 | 99精品在线免费观看 | 国产一区精品在线观看 | 中文字幕第一页av | 爽爽影院免费观看 | 毛片网页 | 欧美91av | 国产精品美女高潮无套 | 人人爽人人澡 | 成人在线观看免费高清 | 婷婷第四色| 亚洲av日韩av不卡在线观看 | 高潮在线视频 | 黄瓜视频91 | 五月婷婷俺也去 | 亚洲xxxxxx | 撕开少妇裙子猛然进入 | 国产11页| 伊人青青久久 | 午夜av导航 | 五月婷婷基地 | 毛片成人 | 国产欧美精品一区二区三区app | av2014天堂 | 国产成人精品视频 | 国产男男gay体育生白袜 | 天天射狠狠干 | 国产精品影音先锋 | 新婚之夜玷污岳丰满少妇在线观看 | 色吊丝一区二区 | 日本久久伊人 | 在线午夜电影 | 性欧美video另类hd尤物 | 国产91av视频 | 色婷婷av一区二区三区软件 | 在线免费观看亚洲视频 | 国产成人中文字幕 | av电影在线播放 | 久艹在线观看 | 极品少妇xxxx精品少妇 | 精品少妇久久久 | 国产制服在线 | 日本网站在线免费观看 | 欧美成人手机在线视频 | 中文在线√天堂 | 18一20岁毛毛片 | 亚洲AV成人午夜无码精品久久 |