题解:P13964 [VKOSHP 2024] Colony of Bacteria
题目
提供一个
由于题目的增量与秒数的奇偶性有关,我们索性按奇偶分情况讨论。我们只需要求出从
先来看 k 为奇数的情况:
| 第一列表示秒数 第二列表示这一秒对于上一秒的增量。 | 秒数 | 增量 |
|---|---|---|
| 1 | 1 | |
| 3 | 12 | |
| 5 | 24 | |
| 7 | 36 |
不难发现,这一秒的增量就是
我们利用等差数列求和公式很容易就能
再来看 k 为偶数的情况:
| 第一列表示秒数 第二列表示这一秒对于上一秒的增量。 | 秒数 | 增量 |
|---|---|---|
| 2 | 8 | |
| 4 | 24 | |
| 6 | 40 | |
| 8 | 56 |
依旧发现增量是
接下来只需要计算
下面是代码。
#include <bits/stdc++.h>
using namespace std;
int main(){
long long k;
cin>>k;
if(k&1){
long long n=k/2;
long long sum_Odd=1+6*n*(n+1);
long long sum_Even=(k-1)*(k-1)*2;
cout<<sum_Odd+sum_Even;
}else{
long long sum_Even=k*k*2;
long long n=(k-1)/2;
long long sum_Odd=1+6*n*(n+1);
cout<<sum_Odd+sum_Even;
}
return 0;
}