51Nod 1420 數袋鼠好有趣 貪心

2021-08-08 01:15:39 字數 1026 閱讀 5492

1420 數袋鼠好有趣

codeforces

基準時間限制:1 秒 空間限制:131072 kb 分值: 40 

難度:4級演算法題

有n只袋鼠。每只袋鼠的大小用乙個整數表示。乙隻小袋鼠能裝進乙隻大袋鼠的條件是,大袋鼠的大小至少是小袋鼠的兩倍。

每只大袋鼠最多可以裝乙隻袋鼠。小袋鼠被裝進大袋鼠之後就不能再裝其它的袋鼠了。

小袋鼠被裝進大袋鼠之後就不能被我們看見了。請找出乙個裝袋鼠的方案,使得被看見的袋鼠最少。

input

單組測試資料。

第一行包含乙個整數n(1≤n≤5*10^5)。

接下來n行,每行乙個整數si,表示第i只袋鼠的大小 (1≤si≤10^5)。

output

輸出乙個整數,即最少能看見的袋鼠數量。
input示例

825

7698

42

output示例

5

題意:有一群袋鼠 只要大袋鼠的大小是小袋鼠的兩倍或以上 就可以裝下這只袋鼠(開始的時候以為是像套娃一樣可以繼續裝 越做越不對)

思路:每只袋鼠只有一次裝或者被裝的機會 所以用兩個下標記錄最大位置的和一半位置的 不斷縮小即可

#include #include #include #include #include #include #include #include #include #define max_ 500100

#define inf 0x3f3f3f3f

#define ll long long

using namespace std;

int n;

int num[max_];

bool vis[max_];

int main(int argc, char const *argv)

else

l--;

} printf("%d\n",n-cnt);

} return 0;

}

51Nod 1420 數袋鼠好有趣

有n只袋鼠。每只袋鼠的大小用乙個整數表示。乙隻小袋鼠能裝進乙隻大袋鼠的條件是,大袋鼠的大小至少是小袋鼠的兩倍。每只大袋鼠最多可以裝乙隻袋鼠。小袋鼠被裝進大袋鼠之後就不能再裝其它的袋鼠了。小袋鼠被裝進大袋鼠之後就不能被我們看見了。請找出乙個裝袋鼠的方案,使得被看見的袋鼠最少。input 單組測試資料。...

51nod 1420 數袋鼠好有趣

1420 數袋鼠好有趣 codeforces 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 有n只袋鼠。每只袋鼠的大小用乙個整數表示。乙隻小袋鼠能裝進乙隻大袋鼠的條件是,大袋鼠的大小至少是小袋鼠的兩倍。每只大袋鼠最多可以裝乙隻袋鼠。小袋鼠被裝進大袋鼠之後就不能再...

51Nod 1420 數袋鼠好有趣

1420 數袋鼠好有趣 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 有n只袋鼠。每只袋鼠的大小用乙個整數表示。乙隻小袋鼠能裝進乙隻大袋鼠的條件是,大袋鼠的大小至少是小袋鼠的兩倍。每只大袋鼠最多可以裝乙隻袋鼠。小袋鼠被裝進大袋鼠之後就不能再裝其它的袋鼠了。小袋鼠...