牛客題集 練習賽76

2022-07-07 04:54:10 字數 3344 閱讀 5518

前段時間發現牛客這些比賽質量挺高的,打算寒假期間補一補

a直接列舉每個小組對遊戲的了解程度,然後每個人從前到後連著組隊,如果當前隊伍了解程度剛好等於列舉的了解值,說明能夠組成一隊,後面的人再自行一一組隊,否則,當前列舉值不符合條件。

#include #define debug freopen("r.txt","r",stdin)

#define mp make_pair

#define ri register int

#define pb push_back

using

namespace

std;

typedef

long

long

ll;typedef unsigned

long

long

ull;

typedef

double

lf;typedef pair

pii;

const

int maxn = 1e6+10

;const

int n = 1500+10

;const

int inf = 0x3f3f3f3f

;const

int mod = 1e9+7

;const

int hash_num = 131

;const

double eps=1e-6

;const

double pi=acos(-1.0

);inline ll read()

while(ch>='

0'&&ch<='

9') s=s*10+ch-'

0',ch=getchar();

return s*w;}

ll qpow(ll p,ll q)

intn,a[maxn],cur,i,cnt,j,sum,ans;

char

s[maxn];

intmain()

else

if (cur>i)

}if (cnt>1

) ans=max(ans,cnt);

}cout

return0;

}

view code

c每個位置,都有m種選擇,假設當前取 j,則對於前一位來說有 j-1個比它小,m-j 個比它大。 所以貢獻為( j − 1 ) + 2 ∗ ( m − j ) 。

又因為每個位置貢獻只取決於第i位和第i-1位,所有每個位置都需要乘

最後統計第2~n位置的貢獻之和,即可得到式子

#include #define debug freopen("r.txt","r",stdin)

#define mp make_pair

#define ri register int

#define pb push_back

using

namespace

std;

typedef

long

long

ll;typedef unsigned

long

long

ull;

typedef

double

lf;typedef pair

pii;

const

int maxn = 1e3+10

;const

int n = 1500+10

;const

int inf = 0x3f3f3f3f

;const

int mod = 1e9+7

;const

int hash_num = 131

;const

double eps=1e-6

;const

double pi=acos(-1.0

);inline ll read()

while(ch>='

0'&&ch<='

9') s=s*10+ch-'

0',ch=getchar();

return s*w;}

ll qpow(ll p,ll q)

ll t,n,m;

intmain()

return0;

}

view code

e線性基+二分

線性基找第x小,這個x就由二分列舉得到,我們最終找到的x值是第乙個大於k的值,答案容斥一下即可得到

#include #define debug freopen("r.txt","r",stdin)

#define mp make_pair

#define ri register int

#define pb push_back

using

namespace

std;

typedef

long

long

ll;typedef unsigned

long

long

ull;

typedef

double

lf;typedef pair

pii;

const

int maxn = 1e6+10

;const

int n = 1500+10

;const

int inf = 0x3f3f3f3f

;const

int mod = 1e9+7

;const

int hash_num = 131

;const

double eps=1e-6

;const

double pi=acos(-1.0

);inline ll read()

while(ch>='

0'&&ch<='

9') s=s*10+ch-'

0',ch=getchar();

return s*w;}

ll qpow(ll p,ll q)

struct

basis

void push(ll x)

else failpush=1

; }

ll top()

ll kth(ll k)

return

ans;

}}b;int

n,i;

ll x,k;

intmain()

ll l=1,r=(1ll<1

;

while (l

cout

<

return0;

}

view code

牛客練習賽76

是乙個博弈遊戲 注意到 m 1 n 5000 那麼我們是可以直接考慮爆搜的 總共n個回合,那麼兩個人就是2 n次操作 定義f a b 代表當 zzugzx 選了a的數,kurisu選了b的數,zzugzx贏的概率 a和b分別是n位m 1進製的數,代表n回合他抽到1 m的數放在1 n哪個位置 incl...

牛客練習賽76題解 A,C

思路 爆搜,列舉物件 乙個小組內所有人對遊戲的了解程度之和。之後判斷每個方案,在可行前提下的組數,取min即可 注 在m m 1 m m 1 m m 1 處除以2也可以,就不用逆元了 include include include include include include include in...

牛客練習賽76 A 校園活動

題目鏈結 牛牛中學為了給本校的oier放鬆心情,決定舉報一場校園活動。現在學校的共有 個oier,學校想把他們分為一些小組進行乙個團隊遊戲。學校先了解了一下每個同學對這個團隊遊戲的了解程度。為了遊戲的公平,學校需要使分組後的每乙個小組內所有人對遊戲的了解程度之和相等,但同學們並不希望完全由學校來給他...