寫在開頭。。。
不知道一開始怎麼想的,打了個很奇葩的表。。。。只是看出素數為2。論不會打表的重要性。。。
你如果打了個正確的表會發現,因為n > 2,he[
n]
he[n]
he[n
]結果都是2 的冪,然後可以猜測:如果n的質因子個數為k
kk,那麼he[
n]=2
khe[n] = 2^k
he[n]=
2k。(說的好輕巧)
所以我們要求heh
e[n]
hehe[n]
hehe[n
]的話,就是求1−n
1-n1−
n中每個數的質因子個數之和,然後直接快速冪即可。
至於正解是什麼積性函式。寫的還不錯
a cc
ode:
ac \ code:
accode
:
#include
#include
#include
#include
using
namespace std;
typedef
long
long ll;
const
int n =
1e7;
ll prim[n+10]
;bool vis[n+10]
;int tot ;
void
prime()
for(
int i =
2;i <= n;
++i)
}ll qpow
(ll a,ll b,ll p)
return ans;
}int
main()
// cout<< sum ;continue;
cout<<
qpow(2
,sum,b)
<}}
hdu 5084 HeHe 矩陣乘法 找規律
n的矩陣 然後m次查詢,每次x行乘以y列給ans 從2個查詢開始,x,y進行 i ans n的變換 最後輸出所有查詢ans的和 n3 n4 n5 n2 n3 n4 n1 n2 n3 1 1 的結果是 n3 n3 n2 n4 n1 n5 大家可以看到i j之和為定值,於是就可以預處理啦 include...
HDU2147之打表找規則
題目傳送門 p點 就是p個石子的時候,對方拿可以贏 自己輸的 n點 就是n個石子的時候,自己拿可以贏 現在關於p,n的求解有三個規則 1 最終態都是p 2 按照遊戲規則,到達當前態的前態都是n的話,當前態是p 3 按照遊戲規則,到達當前態的前態至少有乙個p的話,當前態是n 題意 在乙個m n的棋盤內...
hdu2147 bash博弈(打P N表找規律)
input input contains multiple test cases.each line contains two integer n,m 0output if kiki wins the game printf wonderful else what a pity sample inp...