牛客演算法周周練6 game

2021-10-06 03:24:34 字數 1086 閱讀 4510

每次操作可以將集合中的乙個數字分解為它的任意兩個非1的因數, 集合中的數字個數+1。

因為 質因數 是無法再被分解的,所以最後集合中的數全為 n 的質因數。因此只需要看題目給定的 n 有多少個質因數。假設 n 有 p 個質因數,那麼這場遊戲將進行 p-1 次操作(每次操作後集合中的數字個數+1),如果 p-1 為奇數那麼後手便無法再進行操作,如果 p-1 為偶數則先手再無法進行操作。

注意:n==1 的情況要特殊處理一下.

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

#define mem(a, b) memset(a, b, sizeof(a))

#define pi acos(-1)

#define debug(a) cout << (a) << endl

typedef long long ll;

int dir8[8]

[2]=

, , , , , , , };

int dir4[4]

[2]=

;const int inf = 0x3f3f3f3fll;

const long long llf = 0x3f3f3f3f3f3f3f3fll;

const int maxn = 95718 + 15;

const int mod = 20010905;

int s[maxn]

;int main(

) for(int i=2;i<=n;i++)

} if(cnt%2==0) //判奇偶

printf(

"johnson\n");

else printf(

"nancy\n");

return 0;

}

牛客演算法周周練6 C Game C

時間限制 c c 1秒,其他語言2秒 空間限制 c c 131072k,其他語言262144k 64bit io format lld 第一行 乙個整數n。資料滿足 1 n 95718共一行 乙個字串,表示最後誰 johnson或者nancy 無法進行操作。示例1 johnson 因為每一次操作都會...

牛客演算法周周練6 青蛙過河

其實這就是一道數學規律題,我們不難發現。當只有荷葉的時候,我們最多只能由 m 1 個青蛙可以過河 m 個青蛙先分別排類在荷葉上,然後再最後乙個青蛙跳到目標石墩。當存在乙個石墩時,我們可以先讓 m 1 個青蛙跳到上面,去,然後我們還能再荷葉上放 m 個青蛙,最後在目標點上能放乙隻青蛙,這裡就得到 m ...

牛客演算法周周練2

a 題意 求乙個數的順序和逆序之和。題解 其實就是個閹割版的高精度加法嘛。其實逆序數忽略前導零這個條件是沒有用的,因為順序數不可能有前導零,自然結果也不會有,然後注意下首位進製不取餘。include using namespace std int a 10 b 10 intmain for k j ...