1.题目描述:点击打开链接
2.解题思路:首先选择一个人当队长,有n种选法;对于每一个队长,剩下的可以有0,1,2,...n-1个人,一共有2^(n-1)种情况。答案就是n*2^(n-1)。
3.代码:
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<algorithm> #include<string> #include<sstream> #include<set> #include<vector> #include<stack> #include<map> #include<queue> #include<deque> #include<cstdlib> #include<cstdio> #include<cstring> #include<cmath> #include<ctime> #include<functional> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> P; typedef pair<long long, long long> PL; #define me(s) memset(s,0,sizeof(s)) #define For(i,n) for(int i=0;i<(n);i++) const int MOD = 1000000007; ll pow_mod(ll a, ll n) { ll res = 1; while (n>0) { if (n & 1)res = res*a%MOD; a = a*a%MOD; n >>= 1; } return res; } int main() { //freopen("t.txt", "r", stdin); int T; scanf("%d", &T); int rnd = 0; while (T--) { int n; scanf("%d", &n); ll ans = pow_mod(2, n - 1); ans = ans*n%MOD; printf("Case #%d: %lld\n", ++rnd, ans); } return 0; }
时间: 2024-12-19 06:57:53