原題鏈接:https://www.luogu.org/problemnew/show/P4936
Agent1
題目背景
2018年11月17日,中國香港將會迎來一場XM
大戰,是世界各地的ENLIGHTENED
與RESISTANCE
開戰的地點,某地 的ENLIGHTENED
總部也想派Agent
去參加這次的XM
大戰,與世界其他地方的ENLIGHTENED
並肩作戰。
題目描述
某地的ENLIGHTENED
總部總部有個Agent
,每個Agent
的能力值互不相同,現在ENLIGHTENED
行動指揮想要派出兩隊Agent
去參加XM
大戰。但是參加大戰的兩個隊伍要滿足兩個要求:
隊中能力最大的Agent
的能力值要小於隊能力最弱的Agent
的能力值。
兩隊都要有人蔘戰。
並不一定所有的Agent
都要去參加XM
大戰的,心急的ENLIGHTENED
行動指揮想知道有多少種安排Agent
參加大戰的方案。由於答案可能很大,所以只需要你求出答案模的值就可以了。
輸入輸出格式
輸入格式:
輸入僅一行,爲一個整數。
輸出格式:
輸出答案模的值。
輸入輸出樣例
輸入樣例#1:
3
輸出樣例#1:
5
輸入樣例#2:
6
輸出樣例#2:
129
說明
對於的數據
對於的數據
對於的數據
對於的數據
題解
大概是從個人裏面先選出個及以上的人,然後從中間選一個點斷開,我們就把人分成了兩組,式子如下:
然後就變成了快速冪板子題。
代碼
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int mod=1e9+7;
int n;
ll power(ll x,ll p){ll r=1;for(;p;p>>=1,x=x*x%mod)if(p&1)r=r*x%mod;return r;}
void in(){scanf("%d",&n);}
void ac(){printf("%lld",((n-2)*power(2,n-1)%mod+1)%mod);}
int main(){in(),ac();}