牛客 | C 选择颜色

牛客IOI赛制测试赛

2019-12-04 18:00:00 至 2019-12-04 21:30:00

C 选择颜色

题目描述

 链接:https://ac.nowcoder.com/acm/contest/3211/C
 来源:牛客网

n个人排成一个环形,每个人要从c种颜色中选择一个。
牛牛希望相邻的人选择的颜色是不同的
问有多少种方案。
输出方案数对10007取模的结果。
人是有顺序的,环旋转同构算不同的方案。

输入描述

输入只有一行,包含用空格分开的两个整数,表示n和c。

输出描述

输出一行一个整数,表示答案。

示例1

输入
  4 3
输出
  18

示例2

输入
  1000000000 100
输出
  726
说明
  对10007取模。

备注

  对于所有数据: 3 <= n <= 1000000000, 3 <= c <= 100
  20分: c <= 3
  40分: c <= 4
  70分: n <= 10000

解题思路

Alt

AC代码
#include<bits/stdc++.h>
#define mod 10007
using namespace std;
long long power(long long a,long long b)
{
    long long ans=1;
    while(b)
    {
        if(b&1)
            ans=ans*a%mod;
        a=a*a%mod;
        b>>=1;
    }
    return ans;
}
int main()
{
    long long n,m,ans;
    scanf("%lld%lld",&n,&m);
    m--;
    ans=power(m,n);
    if(n&1)
        ans-=m;
    else
        ans+=m;
    ans=(ans+mod)%mod;
    printf("%lld\n",ans);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_30445397/article/details/103394124
今日推荐