描述思路:首先由題目分析知道,方案數是 c(n,1)+c(n,2)+…+c(n,n),第一時間想到的是pow(2,n)-1;但是由於n的範圍是(1<=n<=1000000000),所以用pow不但慢而且會溢位。tony最近喜歡上了龍之谷遊戲,所以他想叫上他的好友組建乙個公會來一起享受這款遊戲。
tony一共有n個好友,他可以叫上任意k(1<=k<=n)個好友來組建公會,並且所有好友都會答應他的請求。問tony一共可以有多少種方案組建這個公會?
只要不是完全相同的人組建的方案視為不同方案,並且tony至少要叫上乙個人。
描述
多組輸入,每組一行,輸入乙個正整數n(1<=n<=1000000000)。
輸出
每組輸出一行,輸出方案數。(對1000000007取膜)
樣例輸入
2樣例輸出
3
再一想直接用快速冪的模板就好。
快速冪模板,表示a的b次方對p取模
int fast(int a,int b,int p)
return (int)(t%p);
}
ac**
#include
#include
#include
#include
#include
#include
using
namespace
std;
int fast(int a,int b,int p)
return (int)(t%p);
}int main()
return
0; }
SHUOJ新增好友
tony最近喜歡上了龍之谷遊戲,所以他想叫上他的好友組建乙個公會來一起享受這款遊戲。tony一共有n個好友,他可以叫上任意k 1 k n 個好友來組建公會,並且所有好友都會答應他的請求。問tony一共可以有多少種方案組建這個公會?只要不是完全相同的人組建的方案視為不同方案,並且tony至少要叫上乙個...
快速冪 快速冪取模
快速冪的思想在於快速求解高冪指數的冪運算 複雜度為o log2n 與樸素運算相比有很大的改進 接下來給出 其中有詳解 include include using namespace std typedef long long ll ll pow1 int a,int b 最常規的方法 將冪指數轉化為...
快速冪 快速冪取模
求x m 一般方法是 xm x xm 1,這樣需要做m次乘法,未免過慢。加速方法有兩種。1.基於當m為偶數時,xm x2 m 2 當m為奇數時,xm x xm 1。顯然當m為偶數時m會減半,當m為奇數時,下次就是偶數。m可以很快收斂到0.表示冪 2.將m看成二進位制串mkmk 1 m1m0,那麼xm...