Sol.P9825

既然没人来水,我来说一发

签到题


列出斐波那契额数列,不难发现奇偶性为奇奇偶奇奇偶奇奇偶

若想使 \(x\times y\) 为偶,则 \(x\)\(y\) 中必然有一个偶数。

所以不难发现偶数与其后的奇数匹配的情况就是

(n%3)*((n%3)+1)+(n/3)*(n%3)+((n/3)-1)*3*(n/3)/2

经化简后

赛时代码如下(VP):

#include<iostream>
#include<algorithm>
#include<queue>
#define LL long long
#define rep(a,b,c) for(int a=b;a<=c;a++)
using namespace std;
const int Maxn=1e5+5;
inline int read();
int main(){
	LL n=read();
	LL a=n/3,b=n-n/3;
	cout<<a*(a-1)/2+a*b;
	return 0;
}
inline int read(){
	int ans=0,flag=1;
	char c=getchar();
	while(c<'0'||c>'9'){
		flag=(c=='-')?-1:flag;
		c=getchar();
	}
	while(c>='0'&&c<='9')ans=ans*10+c-'0',c=getchar();
	return ans*flag;
}
posted @ 2024-03-24 21:37  JacoAwA  阅读(22)  评论(0)    收藏  举报