JZOJ Day 1 普及模擬 PLES

2021-08-03 13:57:55 字數 2356 閱讀 2439

題目描述

在舞會上有n個男孩和n個女孩,每個人都量過了自己的身高。每個男孩只跟女孩跳舞,並且女孩也只跟男孩跳舞。每個人最

多只有乙個舞伴。男孩或者想和比自己高的女孩跳舞,或者想和比自己低的女孩跳舞,同樣的,女孩也是或者想和比自己高的男

孩跳舞,或者想和自己低的男孩跳舞。

你能決定最多有多少對能在一起跳舞麼?

輸入 第一行是乙個正整數n(1<=n<=100000),

表示男女的人數。

第二行包括n個絕對值在1500到2500的整數,每個整數的絕對值表示每個男孩的身高。如果是乙個正整數,表示這個男的喜歡和比他高的女孩跳舞,如果是負整數,就表示這個男的喜歡和比他低的女孩跳舞。第三行包括n個整數,每個整數的絕對值表示相應女孩的身高。同樣的,如果是正整數的話,表示這個女孩喜歡和比她高的男孩跳舞,如果是負整數的話,表示這個女孩喜歡和比她低的男孩跳舞。

輸出只有一行乙個整數,表示最多的可以搭配的對數。

資料範圍限制

提示 程式:

var

n,i,m,tj,bz,w:longint;

a,b:array[0..100000]of longint;

procedure

kp1(l,r:longint);

vari,j,mid:longint;

begin

if l>=r then

exit;

i:=l;j:=r;mid:=a[(l+r) div

2]; repeat

while a[i]>mid do inc(i);

while a[j]do dec(j);

if i<=j then

begin

a[0]:=a[i];a[i]:=a[j];a[j]:=a[0];

inc(i);dec(j);

end;

until i>j;

kp1(l,j);

kp1(i,r);

end;

procedure

kp2(l,r:longint);

vari,j,mid:longint;

begin

if l>=r then

exit;

i:=l;j:=r;mid:=b[(l+r) div

2]; repeat

while b[i]>mid do inc(i);

while b[j]do dec(j);

if i<=j then

begin

b[0]:=b[i];b[i]:=b[j];b[j]:=b[0];

inc(i);dec(j);

end;

until i>j;

kp2(l,j);

kp2(i,r);

end;

begin

readln(n);

for i:=1

to n do

read(a[i]);

readln;

for i:=1

to n do

read(b[i]);

kp1(1,n);

kp2(1,n);

for i:=1

to n do

if b[i]<0

then

begin

w:=i;

break;

end;

m:=n;tj:=0;

for i:=1

to n do

begin

bz:=0;

if bz=0

then

if a[i]<0

then

if b[m]<0

then

begin

m:=w-1;

bz:=1;

end;

if bz=0

then

if a[i]>0

then

if b[m]<0

then

if abs(b[m])>a[i] then

begin

inc(tj);

dec(m);

bz:=1;

end;

if bz=0

then

if a[i]<0

then

if b[m]>0

then

if b[m]then

begin

inc(tj);

dec(m);

bz:=1;

end;

if m=0

then break;

end;

write(tj);

end.

JZOJ Day 2 普及模擬 串

題目描述 給定乙個0 1串,請找到乙個盡可能長的子串,其中包含的0與1的個數相等。輸入乙個字串,只包含01,長度不超過1000000。輸出 一行乙個整數,最長的0與1的個數相等的子串的長度。樣例輸入 1011 樣例輸出 2 資料範圍限制 30 的資料 串的長度 20 程式 var s ansistr...

JZOJ Day 4 普及模擬 遊戲

題目描述 guyu guo和tube lu正在玩乙個遊戲 lu默想乙個1和n 之間的數x,然後guo嘗試猜出這個數。guo能提出m個這樣的問題 未知數是否能被yi整除?遊戲按照如下流程進行 guo先給出他想問的全部m個問題,然後lu對所有問題依次以 是 或 否 作答。得到m個問題的答案之後,guo就...

JZOJ Day 5 普及模擬 num

題目描述 kc邀請他的兩個小弟k和c玩起了數字遊戲。遊戲是k和c輪流操作進行的,k為先手。kc會先給定乙個數字q,每次操作玩家必須寫出當前數字的乙個因數來代替當前數字,但是這個因數不能是1和它本身。例如當前數字為6,那麼可以用2,3來代替,但是1和6就不行。現在規定第乙個沒有數字可以寫出的玩家為勝者...