阿里春招筆試2020 4 1 貪心 優隊

2021-10-04 17:29:24 字數 1292 閱讀 4345

[阿里筆試4.1]給一串二進位制字串如00011001,希望把他改為全為0,如果更改某個字元,那麼他兩邊的字元也要更改,例如把第二位的0換成1,那麼就變成了11111001. 求最少翻轉次數。如果無法全0,輸出no。

思路:貪心。分兩種情況,第乙個值修改/不修改,之後每個值都會受前面數影響,如果到了最後乙個位置為1,說明當前處理無解。兩者取最小值即可。

#include

using

namespace std;

#define ll long long

const

int maxn =

100010

;char s[maxn]

,s2[maxn]

;int n;

voidf(

char

&c)int

cal(

char s)

}if(s[n-1]

=='1'

)return-1

;return res;

}int

main()

strcpy

(s2,s)

;int res =

cal(s2);if

(n >2)

}if(res ==-1

)puts

("no");

else

printf

("%d\n"

,res)

;}

有n個怪獸,m個弓箭,每個怪獸有生命值,每個弓箭有殺傷力和價值,每個怪獸只能用一支弓箭攻擊,弓箭殺傷》=怪獸生命時可消滅怪獸,求使用弓箭的最小價值。如無法消滅,返回-1。

思路:優隊,維護最小堆。

#include

using

namespace std;

#define ll long long

const

int maxn =

100010

;const

int maxm =

100010

;int n,m;

int monster[maxn]

;struct node

}arrow[maxm]

;int

main()

if(q.

empty()

) ans +

= q.

top();

q.pop();

}printf

("%lld\n"

,ans)

;}

阿里春招筆試2020 3 27 貪心 差分 概率

申明 大概題意是從牛客網討論區嫖的,題目的輸入 輸出以及資料資料範圍也有些不知,大家看看思路就好,這些細節就不管了qaq。有錯歡迎糾正 3.27 給定字串s1,s2,求從s1變為s2的最小移動次數 要求每一次只能從s1選取任意乙個字元放到s1最後 思路 貪心。首先如果兩個字串對應的字元數不匹配的話,...

阿里筆試題20春招筆試題彙總 python版本

有一疊撲克牌,每張牌介於1和10之間 有四種出牌方法 單出1張 出2張對子 出五張順子,如12345 出三連對子,如112233 給10個數,表示1 10每種牌有幾張,問最少要多少次能出完 描述 給乙個數字n 1 n 1e9 代表集合中有n個人,現在每次選若干個人出來,然後把這若干個人裡面其中乙個置...

阿里2020 4 1實習筆試題 攻擊怪獸

有n nn個怪獸,m mm個弓箭,每個怪獸有生命值,每個弓箭有殺傷力和價值,每個怪獸只能用一支弓箭攻擊,弓箭殺傷 怪獸生命時可消滅怪獸,求使用弓箭的最小價值。如無法消滅,返回 1。因為目標是消滅怪獸,而且每個怪獸只能被乙隻弓箭攻擊,所以我們應該在優先考慮消滅的基礎上,選擇最小價值的弓箭。根據這個推理...