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

2021-10-23 01:57:29 字數 1652 閱讀 9544

申明:大概題意是從牛客網討論區嫖的,題目的輸入、輸出以及資料資料範圍也有些不知,大家看看思路就好,這些細節就不管了qaq。有錯歡迎糾正~

3.27

給定字串s1,s2,求從s1變為s2的最小移動次數(要求每一次只能從s1選取任意乙個字元放到s1最後)

思路:貪心。首先如果兩個字串對應的字元數不匹配的話,那麼答案一定是-1。否則的話,我們一定可以構造新的s,使得和t相等。由於s的字元可以移動,而t的字元不能移動。所以該本質是求s的最長不連續子串,使得和t的字首子串匹配。由於是匹配t的字首子串,那麼我們可以貪心的匹配即可,每遇到乙個s的字元和t的當前字元匹配,則t的字元向前移動一位。最終答案就是n-可以匹配 的最多位數。

#include

using

namespace std;

const

int maxn =

100010

;char s[maxn]

,t[maxn]

;int mp1[27]

,mp2[27]

;//統計各個字元數

int n;

intmain()

bool flag =1;

for(

int i =

0;i <

26;i++)}

if(flag ==0)

printf

("-1\n");

else

printf

("%d\n"

,n-j)

;return0;

}

參考

給定n個區間(範圍1~2000),每個區間包含左右範圍(1<=l<=r<=2000),每次從所有區間範圍內選擇乙個整數,求所有選出的數的最小值的期望。

思路:這裡單個值的概率不好求,但是反過來我們可以先求》=p

os

>=pos

>=p

os的概率,繼而用差分即可求出單個值的概率。

#include

using

namespace std;

#define ll long long

const

int maxn =

2010

;int n;

int l[maxn]

,r[maxn]

;double p[maxn]

;int

main()

if(l[i]

<=pos && pos <= r[i]

) tmp *

=1.0

*(r[i]

-pos+1)

/(r[i]

-l[i]+1

);}if

(!flag)

p[pos]

= tmp;

//計算出最小值》=pos的概率

}for

(int i = mn;i < mx;

++i)

ans +

= p[mx]

*mx;

printf

("%.6f\n"

,ans);}

/*21 23 3

*/

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

阿里筆試4.1 給一串二進位制字串如00011001,希望把他改為全為0,如果更改某個字元,那麼他兩邊的字元也要更改,例如把第二位的0換成1,那麼就變成了11111001.求最少翻轉次數。如果無法全0,輸出no。思路 貪心。分兩種情況,第乙個值修改 不修改,之後每個值都會受前面數影響,如果到了最後乙...

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

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

一道阿里校春招筆試題

a,b,c三位同學都是很聰明的同學,面試官給他們背上依次貼上了數字2,4,8,他們都能看見別人的數字但無法看見自己的數字,現在面試官告訴他們這些數字都是自然數並且構成乙個等比數列,讓a b c同學依次迴圈回答是否確定自己的數字是多少,每位同學的回答算作一次,經過 次有同學能準確說出自己的數字。2 3...