A-zcf来培训了
签到,过。
B- zcf学到了菲波那切数列
题目:菲波那切数列的第LL项与菲波那切数列的第RR项之间,一共有多少个奇数,多少个偶数吗?
- 模拟?
- 规律就是奇奇偶三个一组。比较好的方法就是计算时,对两个端点分别求其前面有多少个奇数和偶数。很次的(我的),先把两个端点分别调整成3的倍数,然后处理上调整过程失去或者多出来的。此题应引以为戒,做题时应该优先考虑前者。
C-zcf迷上了菲波那切数列
题目:菲波那切数列的第几项是多少。
- 大数加法
- 把大数加法变成一个可调用的函数,多次利用就行
F- zcf斐波那契数列大成了
题目:求 的个数。
- 可暴力
- 暴力代码
#include <bits/stdc++.h>
using namespace std;
const int mx = 100000;
int f[mx];
int main()
{
int t,L,R,l,r;
f[1]=1; f[2]=1;
for(int i=3; i<=mx; i++)
f[i] = (f[i-1] + f[i-2])%1000007;
scanf("%d", &t);
while(t--)
{
scanf("%d%d%d%d", &L, &R, &l, &r);
int ans(0);
for(int i=L; i<=R; i++)
if(f[i]>=l&&f[i]<=r)
ans++;
printf("%d\n", ans);
}
return 0;
}
I- 围攻zcf
题目:有n个人,m条道路(m行),每行三个整数(u,v,num),分别代表第u个人和第v个人之间有一条被zcf设置了num个陷阱的道路。破坏最少的陷阱,使每个人都可以到第一个人那里。
- 最小生成树
- 每条路上的陷阱破坏一次就够了,所以要利用最小生成树。