打卡信奥刷题(1445)用C++实现信奥 P4936 Agent1

P4936 Agent1

题目背景

2018年11月17日,中国香港将会迎来一场XM大战,是世界各地的ENLIGHTENEDRESISTANCE开战的地点,某地 的ENLIGHTENED总部也想派Agent去参加这次的XM大战,与世界其他地方的ENLIGHTENED并肩作战。

题目描述

某地的ENLIGHTENED总部总部有 N N NAgent,每个Agent的能力值互不相同,现在ENLIGHTENED行动指挥想要派出 A , B A,B A,B两队Agent去参加XM大战。但是参加大战的两个队伍要满足两个要求:

  1. A A A队中能力最大的Agent的能力值要小于 B B B队能力最弱的Agent的能力值。
  2. A , B A,B A,B两队都要有人参战。

并不一定所有的Agent都要去参加XM大战的,心急的ENLIGHTENED行动指挥想知道有多少种安排Agent参加大战的方案。由于答案可能很大,所以只需要你求出答案模 ( 10 9 + 7 ) (10^9+7) (109+7)的值就可以了。

输入格式

输入仅一行,为一个整数 N N N

输出格式

输出答案模 ( 10 9 + 7 ) (10^9+7) (109+7)的值。

输入输出样例 #1

输入 #1

3

输出 #1

5

输入输出样例 #2

输入 #2

6

输出 #2

129

说明/提示

对于 20 % 20\% 20%的数据 N ≤ 10 N \leq 10 N10

对于 40 % 40\% 40%的数据 N ≤ 10 3 N \leq 10^3 N103

对于 60 % 60\% 60%的数据 N ≤ 10 5 N \leq 10^5 N105

对于 100 % 100\% 100%的数据 N ≤ 10 9 N \leq 10^9 N109

C++实现

#include<bits/stdc++.h>
#define LL long long
#define Mod 1000000007
LL Pow(LL a,LL k){
	if(k==0)
		return 1;
	if(k&1)
		return Pow(a*a%Mod,k/2)*a%Mod;
	return Pow(a*a%Mod,k/2)%Mod;
}
using namespace std;
LL n;
int main (){
	scanf("%lld",&n);
	printf("%lld\n",1ll*(n-2)*Pow(2,n-1)%Mod+1);
	return 0;
}

在这里插入图片描述

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值