码迷,mamicode.com
首页 > 其他好文 > 详细

EOJ Monthly 2020.7 Sponsored by TuSimple E.因数串 数学/ 构造

时间:2020-07-18 11:22:49      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:ons   构造   int   cto   pre   size   ++   接下来   一个   

给定一个n表示a的质因数个数。

接下来n行给出质数及其指数。

按要求输出其因数,满足如下要求: 当前数是前一个数通过乘一个质数或者除以一个质数得到。

 

反正就是构造嘛。对于每一个i,必然要遍历前面的所有情况。其实就是升升降降。

vector<ll> ans;
vector<ll> p(16);
vector<ll> e(16);

int main() {
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%lld %lld", &p[i], &e[i]);
    }
    ans.pb(1);
    ll tmp = 1;
    for (int i = 0; i < e[0]; i++) {
        tmp *= p[0];
        ans.pb(tmp);
    }
    for (int i = 1; i < n; i++) {
        int len = ans.size();
        for (int j = 0; j < e[i]; j++) {
            int k = ans.size();
            for (int _ = 0; _ < len; _++) {
                ans.pb(ans[k - _ - 1] * p[i]);
            }
        }
    }
    for (auto& k : ans) {
        printf("%lld\n", k);
    }
}

 

EOJ Monthly 2020.7 Sponsored by TuSimple E.因数串 数学/ 构造

标签:ons   构造   int   cto   pre   size   ++   接下来   一个   

原文地址:https://www.cnblogs.com/hznumqf/p/13334678.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!