日常水題 Micro World

2021-10-10 10:28:42 字數 830 閱讀 4958

傳送門

題意:當a[i]>a[j]並且a[i]<=a[j]+k時,可以將a[j]刪除。求最終數列可能的最小長度。

思路:(貪心)將序列進行排序,從前往後遍歷,滿足這個條件即可刪除。

證:因為對於ai-1,ai,ai+1三個排序好的數,如果ai能夠把ai-1刪除,則ai+1也能夠把ai-1刪除,換句話來說就是如果ai無法將ai-1刪除的話,ai+1也無法將ai-1刪除,只能留著。所以只要從前往後遍歷兩個數即可求得答案。

tips:有乙個細節就是存在相同的數,我用map記錄下所有數的出現次數,同時進行去重即可。

#include

#include

#include

using

namespace std;

const

int n=

1e6+10;

// 42 53 54 55 101 101 102

// 41 52 53 54 100 100 101

//

int a[n]

;map<

int,

int>b;

intmain()

sort

(a+1

,a+1

+n);

int len=

unique

(a+1

,a+1

+n)-

(a+1);

//去重

int ans=n;

for(

int i=

1;i<=len;i++

) cout

}

Problem D GJJ的日常之暴富夢(水題)

time limit 1 sec memory limit 128 mb submit 693 solved 120 submit web board gjj有個暴富夢。他夢想著有一天,他突然有了很多很多錢,他夢想著等他有錢了,要在自己的家裡挖兩個游泳池,乙個用來洗臉,乙個用來洗腳。他夢想著等他有錢...

codevs 5438 zbd之難題 水題日常)

時間限制 1 s 空間限制 1000 kb 題目等級 silver 題目描述 description zbd想要乙個計算器,請你編乙個計算器。輸入描述 input description 輸入只有一行,是乙個完整的計算表示式,表示式中無空格等分隔符。表示式中,用操作符 來分隔兩個非負整數。請輸出運算...

vijos 1034 家族(水題日常)

若某個家族人員過於龐大,要判斷兩個是否是親戚,確實還很不容易,現在給出某個親戚關係圖,求任意給出的兩個人是否具有親戚關係。規定 x和y是親戚,y和z是親戚,那麼x和z也是親戚。如果x,y是親戚,那麼x的親戚都是y的親戚,y的親戚也都是x的親戚。第一行 三個整數n,m,p,n 5000,m 5000,...