慄醬的異或和

2022-08-23 04:36:09 字數 877 閱讀 3112

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 131072k,其他語言262144k

64bit io format: %lld

多組資料,資料第一行t表示資料組數。

每組資料第一行乙個n,k表示一共有n堆石子,接下來你試圖從第k堆開始取,從第二行開始,每隔乙個空格乙個第i堆石子的數量ai。

n≤105,  ai≤109

輸出「yes」或「no」代表從該堆開始取是否可以必勝(如果足夠聰明)。
示例1

2

3 21 2 3

2 12 1

no

yes

小太陽哥哥說,如果想贏,就試圖把每堆石子數量的異或和變為0,最終便可以獲得勝利,不相信自己證一下。

小資料較多,不要使用memset,可能導致tle。

ac**:

#includeusing

namespace

std;

int a[100005

];int

main()

int num=0

;

if((ans^a[k])++num;

if(num==0

) cout

<<"no"

cout

<<"

yes"

<}

return0;

}

今天也是元氣滿滿的一天!good luck!

慄醬的異或和

多組資料,資料第一行t表示資料組數。每組資料第一行乙個n,k表示一共有n堆石子,接下來你試圖從第k堆開始取,從第二行開始,每隔乙個空格乙個第i堆石子的數量ai。n 105,ai 109輸出 yes 或 no 代表從該堆開始取是否可以必勝 如果足夠聰明 示例1複製 2 3 21 2 3 2 12 1複...

牛客網 慄醬的異或和(博弈論)

博弈論初步。基本上算裸的nim問題。但注意必須從k堆開始取,之後就相當於乙個nim問題。經典博弈論問題,奇異局勢為所有的石子堆數量的異或和為0,在此局勢下先手必敗,反之,如果我們盡量給對手製造奇異局勢,則必勝。由於除了第k堆以外的拿取是自由的,我們先求出它們的異或和,如果這個異或和小於第k堆的數量,...

慄醬的數列

慄醬有乙個長度為n的數列a,乙個長度為m的數列b,現在詢問a中有多少個長度為m的連續子串行a 滿足 a 1 b1 k a 2 b2 k a m bm k。輸入描述 第一行乙個數t,表示有t組資料。對於每組資料,第一行三個整數,n,m,k。第一行輸入n個數,a1,a2,an,表示a數列中的數,第二行輸...