牛客演算法入門一(17)

2021-10-06 07:33:51 字數 2908 閱讀 1485

標記始末狀態

#include

using

namespace std;

typedef

long

long ll;

int vis[

10005];

intmain()

int cnt=l+1;

for(

int i=

0; i<=l; i++)if

(vis[i]

) cnt--

; cout

}

排序,去重(把不重複元素前移)

#include

using

namespace std;

typedef

long

long ll;

int a[

110]

;int

main()

自定義字典序的string排序

#include

using

namespace std;

typedef

long

long ll;

string a[25]

;bool

cmp(string a, string b)

intmain()

貪心(用標記了,直接比較指標就好)

#include

using

namespace std;

typedef

long

long ll;

int a[

30010];

bool vis[

30010];

intmain()

cnt++;}

else

break;}

cout

}

(沒考慮穩定性提高的。。)貪心

先考慮穩定性增加的,按a公升序

a10若m-a1<0,則m-a2<0, m-a3+b3-a1(或a2)<0

再考慮穩定性減少的,按b降序

b1>b2

若m-a1+b1-a2<0,則m-a2+b2-a1<0

#include

using

namespace std;

typedef

long

long ll;

typedef

struct

stone;

stone p[

500010];

bool

cmpa

(stone x, stone y)

bool

cmpb

(stone x, stone y)

bool

cmp(stone x, stone y)

intmain()

sort

(p,p+n,cmp)

;int flag=n;

for(

int i=

0; i(p[i]

.a-p[i]

.b>0)

sort

(p,p+flag,cmpa)

;sort

(p+flag,p+n,cmpb)

;int tmp=1;

for(

int i=

0; i) sum-

=p[i]

.b;}

if(tmp) cout<<

"yes"

"no"

<}return0;

}

樹那題方法,cin/cout 超時

std::ios::sync_with_stdio(false);

同步緩衝,資料大時輸入輸出慢

差分若l與r之間每個數加一,while迴圈中記錄相鄰兩數的差

當連續的差的和為零時(每次加一減一必會到零),連續座標都被標記

#include

using

namespace std;

typedef

long

long ll;

int vis[

100000010];

intmain()

int ans=0;

for(

int i=

1; i<=l; i++

)printf

("%d\n"

,ans+

!vis[0]

);return0;

}

倒查

#include

using

namespace std;

typedef

long

long ll;

int p[

10010

],q[

10010

],r[

10010

],s[

10010];

int main (

)int x,y;

scanf

("%d%d"

,&x,

&y);

int flag=0;

for(

int i=n; i>=

1; i--)if

(p[i]

<=x&&q[i]

<=y&&r[i]

>=x&&s[i]

>=y)if(

!flag)

printf

("-1\n");

return0;

}

演算法題 17 紙牌遊戲 牛客網 騰訊筆試題

牛牛和羊羊正在玩乙個紙牌遊戲。這個遊戲一共有n張紙牌,第i張紙牌上寫著數字ai。牛牛和羊羊輪流抽牌,牛牛先抽,每次抽牌他們可以從紙牌堆中任意選擇一張抽出,直到紙牌被抽完。他們的得分等於他們抽到的紙牌數字總和。現在假設牛牛和羊羊都採用最優策略,請你計算出遊戲結束後牛牛得分減去羊羊得分等於多少。輸入描述...

牛客演算法競賽入門班筆記整理 01

一些零碎的知識 2n n nn 108 超過了可能會tle 231 1 2147483647 long long 263 1 unsigned 232 1 計算變數所佔的空間 8位二進位制 1個位元組 1024位元組 1kb 1024kb 1mb 1024mb 1gb 比賽時題目的空間限制位為512...

牛客 動態規劃入門

這似乎是乙個老生常談的題目 在古老的年代,天地間誕生了乙個會自己增長的數列。大地賜予它生命,告訴它1為萬物之始。天空則傳授了它數列增長之道,告訴它永遠以前一刻的自己為基石,方可不斷超越自我,實現數列之永恆。於是這個數列就這樣開始了它艱辛的增長之路,1,1,2,3,5,8,13,21,34 功夫不負有...