21 1 25寒假集訓

2021-10-25 14:20:47 字數 2556 閱讀 5860

小菜雞的第三天(沒錯,第二天咕咕咕了)

昨天的題單是牛客訓練賽74,3道簽到題只做出來2題,討論會的時候也沒有遇到特別有感觸的題就咕咕了,今天的題單是訓練賽73,三道簽到題磕磕碰碰ac了,什麼時候才能突破啊!!!。

題意:n個數判斷是否是等差數列、等比數列、等模數列中的一種

思路:非常常規,從前往後遍歷加三個標記就行

#include

#include

using

namespace std;

typedef

long

long ll;

const

int n =

1e5+10;

int n;

bool fd=

true

,fq=

true

,fm=

true

;ll a[n]

;int

main()

if(!fd&&

!fq&&

!fm) cout<<

"no"

;else cout<<

"yes"

;return0;

}

題意:定義了乙個字串是「牛」的,當且僅當其有乙個子串為「nowcoder」

轉化一下也就是這個字串有「nowcoder」子串。

問乙個字串有多少「牛」串

思路:以給定的字串中的每個「nowcoder」為分界點,上至前乙個分界點,後至末尾,乘積計數就行

#include

#include

#include

using

namespace std;

typedef

long

long ll;

string s;

void

solve()

cout<}int

main()

問題:招生按高考成績和校考成績加權排名,前m個可被錄取,問高考最低可以考多少

思路:算完分數只要考正好第m名的分就可以把第m個人擠下去,公式倒推即可。

要注意結果向上取整,分數最低為0

#include

#include

using

namespace std;

#define max(a, b) ((a) > (b) ? (a) : (b))

typedef

long

long ll;

const

int n =

1e5+10;

int n,m,p;

ll a[n]

;int

main()

sort

(a,a+n)

; cout<<

max(

(a[n-m]

-p*15+84

)/85,

0);return0;

}

問題:在題述約束下a中最多有多少種數

思路:10繫結,記錄有多少對10就行,對於頭尾的不同情況舉例就可以看出來

#include

using

namespace std;

const

int n =

5e5+10;

int a[n]

,ans=

1,n,c,k=1;

intmain()

if(k%

2) cout<<

(k+1)/

2;else cout<(a[0]+

1)%2

;return0;

}

問題:遺憾為集合中最小不包含在集合內的正整數

對於給定的n個數的所有子集,問子集的遺憾之和為多少

思路:實際是乙個排列組合問題

1)假設在n個數中有某個數k不存在,那麼如果集合中前k-1個數都有,不管其他比k大的數是否存在,遺憾總是k

2)對於一組連續的數集,遺憾為k的可能情況為集合中包含小於k的每乙個數,對於大於k的數不做要求

設計:用rest陣列儲存比k大的數

#include

#include

using

namespace std;

typedef

long

long ll;

const

int n =

5e5+10;

const

int mod =

20000311

;int i=

0,c=

1,n,a[n]

,anum[n]

,rest[n]

,t[n]=;

ll ans=0;

voidin(

)void

solve()

if(rest[i]==0

)else

cout<}int

main()

vaqx·青

2021.01.25

寒假集訓 Find Metal Mineral

題目鏈結 題意 給出一顆生成樹,1 n 10000,在某乙個節點有k個機械人 k 10 然後機械人從這裡開始走,要求遍歷完節點,隨便停到什麼地方.求最少的路程總和.題解 樹形dp,關鍵是dp u i i的定義,因為機械人可能從子樹再跑回來,然後為了避免重複討論,應該定義為 在u為根的子樹上停了幾個機...

寒假集訓總結

寒假的訓練以不太順利的結果結束。整個寒假訓練都是兩天一場學長抓的訓練賽,然後補題,由於自己比較菜以及一些莫名的因素,導致訓練賽打得比較差,尤其是後幾場。訓練賽沒能打好的原因可能與狀態關係確實很大,但其中肯定與實力有關吧。總結一下,這些題目,演算法和思維上難倒自己的好像也沒幾道 後來補出來的 但是賽場...

ACM寒假集訓

出自 南昌理工學院acm集訓隊 什麼是dfs?void dfs 狀態 a 1.判斷狀態是否合法。合法繼續執行,否則則回到上次呼叫 2.先下走一層,也就是呼叫dfs a void dfs 引數用來表示狀態 if 越界或者是不合法狀態 return if 特殊狀態 剪枝 return for 擴充套件方...