2019 01 24 NOIP提高組 模擬 B 組

2021-09-10 04:14:00 字數 2838 閱讀 7597

jzoj 3903 艱難的選擇

jzoj 3914 人品問題

後續求∑i=

1yxm

od

y\sum_^yx \mod y

∑i=1y​

xmod

y 那麼這道題其實高仿餘數求和的題目,my 題解

那麼首先這個式子可以改寫成xy−

∑i=1

y⌊xi

⌋×

ixy-\sum_^y\lfloor\frac\rfloor\times i

xy−i=1

∑y​⌊

ix​⌋

×i那麼這個⌊xi

⌋\lfloor\frac\rfloor

⌊ix​

⌋是有一定的頻率的,那麼中間的部分就可以省略掉了,所以說只要確定它的區間那麼就可以用等差數列求解。

舉個例子:x=12

,y=12

x=12,y=12

x=12,y

=12那麼區間分別為[1∼

1],[

2∼2]

,[3∼

3],[

4∼4]

,[5∼

6],[

7∼12]

[1\sim 1],[2\sim 2],[3\sim 3],[4\sim 4],[5\sim 6],[7\sim 12]

[1∼1],

[2∼2

],[3

∼3],

[4∼4

],[5

∼6],

[7∼1

2]答案分別為12,12

,12,12

,22(⌊

125⌋(

5+6)

×(6−

5+1)

÷2),

57(⌊12

7⌋(7

+12)×

(12−7

+1)÷

2)

12,12,12,12,22(\lfloor\frac\rfloor(5+6)\times (6-5+1)\div2),57(\lfloor\frac\rfloor(7+12)\times (12-7+1)\div2)

12,12,

12,1

2,22

(⌊51

2​⌋(

5+6)

×(6−

5+1)

÷2),

57(⌊

712​

⌋(7+

12)×

(12−

7+1)

÷2)

#include

#define rr register

using

namespace std;

typedef

unsigned

long

long ull;

ull x,y,ans;

signed

main()

return

!printf

("%llu"

,ans)

;}

找到乙個最長的區間,使區間內0和1的個數相同

首先今天打了乙個二分,結果錯漏百出,用自己做的資料測來測去都是錯的,於是我無奈打了乙個暴力,結果ac了,不過非正解,所以比賽結束後按照wyc的思路,也就是建立乙個差分陣列,再用乙個桶記錄最遠且差分值相同的起點,再用終點減去起點即可

#include

#include

#define rr register

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

using

namespace std;

int n,ans,v[

200001];

signed

main()

return

!printf

("%d"

,ans)

;}

在樹上選擇k

kk個點,要求這k

kk個點的父親包含在k

kk個點中,根節點可以算作包含k

kk個點中,並使k

kk個點的點權和最大

設f [x

][t]

f[x][t]

f[x][t

]表示節點為x

xx,在該子樹選擇t

tt個點的最大點權,那麼f[x

][i′

+j′+

1]=m

ax

f[x][i'+j'+1]=max\

f[x][i

′+j′

+1]=

max

#include

#include

#include

#define rr register

using

namespace std;

int n,k,f[

101]

[101

],a[

101]

,l[101

],r[

101]

,len[

101]

;inline

signed

iut(

)inline

signed

max(

int a,

int b)

inline

void

dfs(

int x,

int dep)

len[x]

=len[l[x]

]+len[r[x]]+

1;}signed

main()

話說今天洛谷是大兇

NOIP提高組 矩陣

在麥克雷的面前出現了乙個有n m個格仔的矩陣,每個格仔用 或 表示,表示這個格仔可以放東西,則表示這個格仔不能放東西。現在他拿著一條1 2大小的木棒,好奇的他想知道對於一些子矩陣,有多少種放木棒的方案。因為棍子是1 2的,所以很容易就能發現,兩個被分割的塊,除了跨越兩個塊擺放木棍的方案數會對答案有影...

NOIP提高組2005 過河

過河 river 問題描述 在河上有一座獨木橋,乙隻青蛙想沿著獨木橋從河的一側跳到另一側。在橋上有一些石子,青蛙很討厭踩在這些石子上。由於橋的長度和青蛙一次跳過的距離都是正整數,我們可以把獨木橋上青蛙可能到達的點看成數軸上的一串整點 0,1,l 其中l是橋的長度 座標為0的點表示橋的起點,座標為l的...

NOIP提高組 20151029模擬

其實這套題目並不算太難,但是還是發揮不了100 水平。第一題直接線性篩法,求出質數,然後就可以判斷乙個數是否為質數了。這道題還可以用miller rabin去求,後者的速度較快,如果資料再大些,就要使用後者了。第二題,比賽時發現了,當n 7時,答案會每四個一迴圈,但是就沒有繼續往下想,其實想下去會想...