Codevs P3641 上帝選人

2021-07-06 01:15:21 字數 1766 閱讀 2273

世界上的人都有智商iq和情商eq。我們用兩個數字來表示人的智商和情商,數字大就代表其相應智商或情商高。現在你面前有n個人,這n個人的智商和情商均已知,請你選擇出盡量多的人,要求選出的人中不存在任意兩人i和j,i的智商大於j的智商但i的情商小於j的情商。

—第一行乙個正整數n,表示人的數量。 —第二行至第n+1行,每行兩個正整數,分別表示每個人的智商和情商。

僅一行,為最多選出的人的個數。

3 100 100 120 90 110 80

2 —n<=1000;

因為要求去除的人數最少為多少,那麼只要保證在隊形中的人數最多即可。求得從前向後的最長上公升子串行長度,和從後向前的最長上公升子串行長度,然後列舉最高點即可,那麼隊形中的人數即為f[i]+g[i]-1 減去的1為最高點,在左右上公升中計算兩次了。

program p1058;

var n,i,j,ans:longint;

f,g,num:array[1..100] of longint;

function

max(a,b:longint):longint;

begin

if a>b then

exit(a);

exit(b);

end;

begin

readln(n);

for i:=1

to n do

read(num[i]);

f[1]:=1;

for i:=2

to n do

begin

for j:=1

to i-1

doif num[j]then f[i]:=max(f[i],f[j]);

f[i]:=f[i]+1;

end;

g[n]:=1;

for i:=n-1

downto1do

begin

for j:=i+1

to n do

begin

if num[j]then g[i]:=max(g[i],g[j]);

end;

g[i]:=g[i]+1;

end;

ans:=-maxlongint;

for i:=1

to n do ans:=max(ans,f[i]+g[i]-1);

write(n-ans);

end.

測試點#chorus1.in 結果:ac 記憶體使用量: 256kb 時間使用量: 1ms

測試點#chorus10.in 結果:ac 記憶體使用量: 256kb 時間使用量: 1ms

測試點#chorus2.in 結果:ac 記憶體使用量: 256kb 時間使用量: 1ms

測試點#chorus3.in 結果:ac 記憶體使用量: 256kb 時間使用量: 1ms

測試點#chorus4.in 結果:ac 記憶體使用量: 128kb 時間使用量: 1ms

測試點#chorus5.in 結果:ac 記憶體使用量: 256kb 時間使用量: 1ms

測試點#chorus6.in 結果:ac 記憶體使用量: 128kb 時間使用量: 1ms

測試點#chorus7.in 結果:ac 記憶體使用量: 256kb 時間使用量: 1ms

測試點#chorus8.in 結果:ac 記憶體使用量: 256kb 時間使用量: 1ms

測試點#chorus9.in 結果:ac 記憶體使用量: 256kb 時間使用量: 1ms

好想離開生命。

專案36 4 血型統計

任務和 黑貓警長在犯罪現場發現了一些血跡,現已經委託檢驗機構確定了血型,需要統計各種血型的樣本數目。輸入 血型序列 a b o c,c代表ab型血,輸入以x結束 輸出 各種血型的數量 輸入樣例 abcaocoaoobx 輸出樣例 a 3 b 2 o 4 ab 2 檔名 main.c 完成日期 201...

nyoj364田忌賽馬

題意 和古代的田忌賽馬一樣,只是可以有多匹馬 大體思路用貪心,主要 盡量多贏幾場 這就有兩點 1.贏的時候盡量贏差不多的對手 2.實在贏不了,就去消耗對方高手 include include using namespace std int t 10000 int k 10000 int main v...

NYOJ 364 田忌賽馬

題意 田忌和齊王各有n匹馬,判斷怎樣比賽,使田忌淨勝場數最多。我感覺這題的精髓就是,不管怎麼比賽,都要讓田忌的馬發揮最大價值。當然,馬的第一要務是用來贏得比賽,而且要最大效益的贏,也就是要贏對方僅次於自己的馬。當他不能完成這個任務的時候就要去輸,並拉對方最快的馬下水,給自己後面的隊友創造更大的勝利機...