新生总结赛(1)

A-zcf来培训了

签到,过。

B- zcf学到了菲波那切数列

题目:菲波那切数列的第LL项与菲波那切数列的第RR项之间,一共有多少个奇数,多少个偶数吗?
在这里插入图片描述

  • 模拟?
  • 规律就是奇奇偶三个一组。比较好的方法就是计算时,对两个端点分别求其前面有多少个奇数和偶数。很次的(我的),先把两个端点分别调整成3的倍数,然后处理上调整过程失去或者多出来的。此题应引以为戒,做题时应该优先考虑前者。

C-zcf迷上了菲波那切数列

题目:菲波那切数列的第几项是多少。

  • 大数加法
  • 把大数加法变成一个可调用的函数,多次利用就行

F- zcf斐波那契数列大成了

题目:求 i [ L , R ] , F i b [ i ] % 1000007 [ l , r ] i [ L , R ] , F i b [ i ] i\in[L,R],Fib[i]\%1000007\in[l, r]i∈[L,R],Fib[i]%1000007∈[l,r] 的个数。

  • 可暴力
  • 暴力代码
#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个陷阱的道路。破坏最少的陷阱,使每个人都可以到第一个人那里。

  • 最小生成树
  • 每条路上的陷阱破坏一次就够了,所以要利用最小生成树。
发布了47 篇原创文章 · 获赞 4 · 访问量 1290

猜你喜欢

转载自blog.csdn.net/listenhhh/article/details/99649118
今日推荐