题解 AT_cpsco2019_s1_d Dessert Planning

思路

这道题暴力肯定是过不去的,所以我们要进行优化。虽然蒟蒻不会什么矩阵快速幂,但是会找规律。

根据样例,当 n=1n=122 时,方案数分别为 884040。接着我们可以写一些简陋的枚举代码计算 n3n\ge3 时的方案数,然后你就会得到下面的结果:

  • n=1n=1 时,有 88 种方案。

  • n=2n=2 时,有 4040 种方案。

  • n=3n=3 时,有 200200 种方案。

  • n=4n=4 时,有 10001000 种方案。

  • n=5n=5 时,有 50005000 种方案。

  • \ldots

所以我们得到,如果有 nn 天的话,就有 8×5n18\times5^{n-1} 种方案。

但是这样还是不能 AC 的呢,因为你要写快速幂。这道题可以评黄。

AC 代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=1e9+7;

inline int fpow(int a,int b,int mod){
int res = 1;
while(b){
if(b & 1)
res = res*a%mod;
a = a*a%mod;
b >>= 1;
}
return res;
}

signed main(){
int n;
cin >> n;
cout << (8*fpow(5,n-1,mod))%mod;
return 0;
}

AC 记录


题解 AT_cpsco2019_s1_d Dessert Planning
https://sunnyli.咕咕咕.eu.org/solution-at-cpsco2019-s1-d/
作者
SunnyLi
发布于
2023年6月15日
许可协议