ALGORITHM NOTE / ARCHIVE
2024杭电多校3——1001深度自同构
一开始和队友想出来的式子,是的因子数组 一个的dp显然是过不了的 然后想到了对每个数枚举倍数预处理因子的话计算的话,时间复杂度是,因为是约等于 发现还是TLE,STL常数太大了,队友突然想到可以直接算 设当前数字是,枚举倍数,, 已经算过了,可以进行转移,另外特殊处理因子是本身的情况,即可
一开始和队友想出来的式子,是的因子数组
一个的dp显然是过不了的
然后想到了对每个数枚举倍数预处理因子的话计算的话,时间复杂度是,因为是约等于
发现还是TLE,STL常数太大了,队友突然想到可以直接算
设当前数字是,枚举倍数,, 已经算过了,可以进行转移,另外特殊处理因子是本身的情况,即可
#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
int n;
long long ans[1000100];
int main() {
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n;
for(int i = 1;i<=1e6;++i){
ans[i]+=1;
for(int j = 1;j<=1e6/(i+1);++j){
ans[(i+1)*j]=(ans[(i+1)*j]+ans[i])%mod;
}
}
for(int i = 1;i<=n;++i) cout<<ans[i]%mod<<" ";
return 0;
}
太菜啦QAQ,少用STL