zoukankan      html  css  js  c++  java
  • 2257: [Jsoi2009]瓶子和燃料

    题意:给你n个数字,然后让你选出k个,这k个数字进行任意组合,问得到的最小结果是多少?

    数学知识:

    分析:根据题意得出数学公式:

    那么,如何在n个之中选出k个呢?其实不用选,因为直接计算各个因子,然后排序,如果第一个大于等于k就是答案。

    #include<cstdio>
    #include<map>
    #include<cmath>
    using namespace std;
    map<int, int>ss;
    
    void fun(int num){
        for (int i = 1; i <= sqrt(num); ++i){
            if (num%i == 0){
                ss[i]++;
                if (i != num / i)ss[num / i]++;
            }
        }
    }
    
    int main(){
        int n, m, x;
        while (scanf("%d%d", &n, &m) != EOF){
            while (n--){
                scanf("%d", &x);    fun(x);
            }
            map<int, int>::iterator it = ss.end();
            ss[0] = 0;
            for (--it; it != ss.begin(); --it){
            //    printf("%d -- %d
    ", it->first, it->second);
                if (it->second >= m){
                    printf("%d
    ", it->first);  break;
                }
            }
            ss.clear();
        }
    }
  • 相关阅读:
    Matrix
    Color the ball
    Coupons
    密码箱
    Milking Grid
    Substrings
    亲和串
    Jzzhu and Cities
    transition多个属性同时渐变(left/top)
    CSS3提供的transition动画
  • 原文地址:https://www.cnblogs.com/ALINGMAOMAO/p/9936806.html
Copyright © 2011-2022 走看看