MnZn 求助 WA on test 4
查看原帖
MnZn 求助 WA on test 4
414386
Isshiki·Iroha楼主2022/7/26 22:09
const ll Mod=1e9+7;
const int maxn=1e5+10;
int a[maxn],n;
vector<int>factor;
ll dp[2][maxn];
inline void fac(int id){
    factor.clear();
    for(int i(1),up(sqrt(a[id]));i<=up;++i){
        if(a[id]%i==0){
            factor.emplace_back(i);
            int temp=a[id]/i;
            if(temp!=i)factor.emplace_back(temp);
        }
    }
    sort(factor.begin(),factor.end());
}

int main() {
    read(n);
    for(int i(1);i<=n;++i){
        read(a[i]);
    }
    int now=0,lst=1;
    for(int i(1);i<=n;++i){
        dp[lst][0]=1;
        memset(dp[now],0,sizeof dp[now]);
        fac(i);
        for(auto k:factor){
            dp[now][k]=(dp[now][k]+dp[lst][k-1])%Mod;
        }
        for(int j(1);j<=i;++j){
            dp[now][j]=(dp[now][j]+dp[lst][j])%Mod;
        }
        swap(now,lst);
    }
    ll ans=0;
    for(int i(1);i<=n;++i){
        ans=(ans+dp[lst][i])%Mod;
    }
    write(ans);
2022/7/26 22:09
加载中...