暑期集訓2期4

2021-10-23 22:16:26 字數 2688 閱讀 9898

把已經買過的遊戲給標記一下,然後從第一款遊戲開始買,如果還可以買並且沒有被標記過那麼買

#include

using

namespace std;

long

long n,ans,num,x;

struct node

a[100010];

inline

intread()

while

(isdigit

(ch)

)res=

(res<<1)

+(res<<3)

+(ch&15)

,ch=

getchar()

;return res*f;

}map<

int,

int>vis;

intmain()

//看看能買幾個

else

if(i+x>num)

break

;

cout<

x=0;

for(

int i=

1;i<=

1e9;i++)if

(!vis[i]

&&i+x<=num)

買哪幾個

我們先用乙個long double 型別的數,存下n的二分之三次的值,然後列舉列舉q的大小,再通過兩個數去算p,分兩種情況,四捨和五入,算出答案,取min

#include

using

namespace std;

long

long n,m,a1,a2;

long

double nf;

double minn=

1000000000.00

;double

abss

(double x)

intmain()

if(t4

} cout<

'/'<

return0;

}

【輸出格式】

所有的組合,每乙個組合佔一行且其中的元素由小到大的順序排列,每個元素佔三個字元的位置,所有的組合也按字典順序。

平淡無奇的爆搜,只是要注意,輸出時候,要有三的場寬

sg函式乙個公平遊戲(impartial game)可以抽象為:在乙個dag上有一枚棋子,兩人輪流移動它,不能移動者輸。

sg函式的定義如下。沒有出度的點的sg值為0,其它點的sg值為它的後繼的sg值的mex。即sg(u)=mex,u→vsg(u)=mex,u→v。

在sg值為0的點上,先手必敗,而在其它點上先手必勝。

資料規模較大時,一般來說,可以通過打表找到sg函式的通項。

其它時候可以遞推求。求mex用trie樹上的跳法。

#include

using

namespace std;

long

long n,m,x;

long

long ans;

int vis[2]

;inline

intmex

(int x,

int y)

inline

intread()

inline

intsg

(int x)

else

return

mex(

sg(x-1)

,sg(x/2))

;}intmain()

if(ans)cout<<

"yjc"

<

else cout<<

"cjy"

<

}return0;

}

暑期集訓2期3

直接列舉 3000到3000也沒關係。列舉最後的x,容易發現x 的取值不會在序列取值之外。不開long long 會掛掉30分。題目大意兩排數,你的目標是將數值相同的放到一起。滾動不消耗代價。提起消耗的代價為數值。你需要最小化提起的數值限制,也就是移動的最大值盡可能小 30分演算法 一旦乙個數值使用...

暑期集訓2期5

小李是希望小學六年級的學生,在一次數學課上,張老師出了一道題,小李很快就答出來了。這個題目是這樣的 給定乙個正整數 n,請求出 2 n之間長度最長的 成等差數列的素數 質數 例如 當 n 的值為 40 時,在 2 40 之間的全部素數有 2 3 5 7 11 13 17 19 23 29 31 37...

暑期集訓2期6

如果二叉樹的左右子樹的結構是對稱的,即兩棵子樹皆為空,或者皆不空,則稱該二叉樹是對稱的。程式設計判斷給定的二叉樹是否對稱。例 如下圖中的二叉樹t1是對稱的,t2是不對稱的。二叉樹用順序結構給出,若讀到 則為空,二叉樹t1 abcde,t2 abcd e,如果二叉樹是對稱的,輸出 yes 反之輸出 n...