牛客2 13題解

2021-10-02 23:43:29 字數 1939 閱讀 3660

題意

給兩字串,每次可以執行以下三種操作,1是將乙個字母變成乙個字母,另乙個就是從後面加乙個字母,再乙個就是從後面刪除乙個字母問最少可以轉換多少次讓這兩個字串相同

思路

這題其實特別簡單,就是先求兩個字串的長度差,這個長度差 肯定是轉換次數的一部分,用23其實都一樣,然後看 他們長度相同的那一段有多少不同的元素,兩部分加起來就行了

**

#include

#include

#include

#include

using

namespace std;

intmain()

題意

有兩個人比賽,一共有n張牌,第乙個人先拿 他可以拿 1到n-1任意數量的牌,第二個人再拿,再拿的時候不能超多上一次人拿的數量可以等於,問誰會獲勝,先手有必勝策略輸出bob 否則輸出alice

思路

這題剛開始這樣覺得 ,首先如果是奇數第乙個人肯定贏了 就 1張一張拿就贏了,偶數有不同的情況,自己手動模擬發現 ,4的話2贏,6的話1贏,8的話2贏,於是便覺得如果是 偶數的話 要是2的奇數bei 一贏,若是偶數bei 二贏了,但是wa 了,就再模擬,發現12 也是1贏,就說明之前的想法錯了,16又是2贏了,就找 2,4,8,16的關係,發現都是2的n次冪,就大膽的寫了 竟然可了

**

#include

using

namespace std;

intmain()

tmp = tmp *2;

}printf

("bob\n");

return0;

}

題意

判斷第i題是否是簽到題,第i題是第9題,給你乙個n (9dao14),和k 乙個是題的個數,乙個是做題的人數,然後給出每個題通過的人數,問你第i題是否是簽到題,滿足簽到題的條件兩個滿足乙個就行,乙個是通過的人數為所有題的前三多,或者是通過的人數佔總人數的百分之80即可

思路

就判斷bai,兩個條件滿足乙個就行。再判斷是否是前三的時候要注意是否有並列第三的情況,就是排完序後 後面的人數可能也與目前排在第三的相等這樣也是滿足的,因為我太重視這點,**wa 了,因為 我忽略了 第一多的人數 或者是第二多的人數是 i題也可以的情況

**

#include

#include

using

namespace std;

struct node

a[20];

bool

cmp(node x,node y)

intmain()

int f1=

0,f2=0;

if((a[9

].sum*10)

/m>=8)

//可能有問題

f1=1;

sort

(a+1

,a+1

+n,cmp);if

(a[2

].key==

9||a[1]

.key==9)

f2=1;

int k=3;

for(

int i=

4;i<=n+

1;i++)if

(a[i]

.sum==a[3]

.sum)

k++;}

if(f1||f2)

cout<<

"yes"

cout<<

"no"

}

牛客50915題解

題目鏈結 可能需要許可權 題目大意 給你n個集合,每個集合中都有不超過32個數,總共詢問m次,每次詢問區間 l,r 中的所有集合,是否都有乙個異或和等於x的子集。n le 5e4,m le 5e4,所有數值域 0,2 322 232 難度 ag 分析 這個題很明顯,要求線性基的交,也就是說假設有a,...

0208牛客題解

題意給乙個m行n列的二維字元陣列,全都有 b r d組成 r 只能往右走,d只能往下走,b往右走往下走都行問 走到 n,m點總共有多少種走法 思路 dfs 超時了,迭代 假設 a i j 是走向 i,j點的放法和 那麼 i 1,j 往下走就到了ij 點 那麼如果這點能往下走 就能把通向i 1,j的步...

牛客網 single number系列題解

給定乙個整型陣列,除乙個元素僅出現一次之外,其餘每個元素都出現兩次 三次 試著找出這個元素。此類題目,若每個元素出現i次,如果將問題的視角放在資料位上來看的話,實際上就是除那個 single number 所在的bits外,每個bit上出現資料的次數 i 0。1.兩次 a.常規思路 class so...