雅礼集训三十天,day4

发布时间 2023-09-20 17:34:14作者: libohan0518

总结

80 + 100 + 10 + 0 = 190分

啊呀,图论专场,刚好我图论贼差,寄了(考的太垃圾)

T1

就是个模拟,但是不加ios会寄掉!(我就是)
时间复杂度和空间复杂度:\(O(b - a)\)\(O(1)\)
code:

#include<bits/stdc++.h>

using namespace std;

#define int long long

int a, b, sum;

signed main(){
    cin >> a >> b;
    for(int i = a; i <= b; i++){
        int p = i, a[10] = {0}, cnt = 0;
        while(p){
            cnt++;
            a[cnt] = p % 10;
            p /= 10;
        } 
        for(int i = cnt; i >= 1; i--){
            sum = sum * 10 + a[i];
            sum %= 9;
        }
    }
    cout << sum;    
    return 0;
}

T2

找规律(也就是发扬人类智慧)
我们先打个暴搜,发现是斐波那契数列,也可以用 \(dp\) 预处理,再 \(O(1)\) 查询即可 AC
时间复杂度和空间复杂度:\(O(N)\)\(O(K)\)
code:

#include<bits/stdc++.h>

using namespace std;

#define int long long

const int N = 1e6 + 5, mod = 12345, K = 1e5 + 5;

int t, ans[N];

signed main(){
    int a = 1, b = 1, c;
    for(int i = 1; i < K; i++){
        c = a + b;
        c %= mod;
        ans[i] = c;
        a = b;
        b = c;
        a %= mod;
        b %= mod;
    }
    ios::sync_with_stdio(0), cin.tie(0);
    cin >> t;
    while(t--){
        int n;
        cin >> n;
        cout << ans[n] << "\n";
    }
    return 0;
}