[阿里筆試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。因為目標是消滅怪獸,而且每個怪獸只能被乙隻弓箭攻擊,所以我們應該在優先考慮消滅的基礎上,選擇最小價值的弓箭。根據這個推理...