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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JZOJ__Day 1:【普及模拟】PLES

發布時間:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JZOJ__Day 1:【普及模拟】PLES 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

? ?在舞會上有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); var i,j,mid:longint; beginif l>=r then exit;i:=l;j:=r;mid:=a[(l+r) 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;kp1(l,j);kp1(i,r); end; procedure kp2(l,r:longint); var i,j,mid:longint; beginif l>=r then exit;i:=l;j:=r;mid:=b[(l+r) div 2];repeatwhile b[i]>mid do inc(i);while b[j]<mid do dec(j);if i<=j thenbeginb[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; beginreadln(n);for i:=1 to n doread(a[i]);readln;for i:=1 to n doread(b[i]);kp1(1,n);kp2(1,n);for i:=1 to n doif b[i]<0 thenbeginw:=i;break;end;m:=n;tj:=0;for i:=1 to n dobeginbz:=0;if bz=0 thenif a[i]<0 thenif b[m]<0 thenbeginm:=w-1;bz:=1;end;if bz=0 thenif a[i]>0 thenif b[m]<0 thenif abs(b[m])>a[i] thenbegininc(tj);dec(m);bz:=1;end;if bz=0 thenif a[i]<0 thenif b[m]>0 thenif b[m]<abs(a[i]) thenbegininc(tj);dec(m);bz:=1;end;if m=0 then break;end;write(tj); end.

轉載于:https://www.cnblogs.com/YYC-0304/p/9500095.html

總結

以上是生活随笔為你收集整理的JZOJ__Day 1:【普及模拟】PLES的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。