雅礼集训三十天,day4
总结
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;
}