zoukankan      html  css  js  c++  java
  • 2020ccpc威海 L Clock Master(分组背包)

    比较容易看的出来的是这题求得是最小公倍数的最大值

    然后我们可以发现一定是选不同质数的次幂,因此每个质数的次幂就是一个集合,因此只需要跑一下分组背包就可以了

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int N=5e5+10;
    int prime[N];
    double lg[N];
    int cnt;
    int vis[N];
    double f[N];
    void get(){
        int i,j;
        for(i=2;i<=30000;i++){
            if(!vis[i]){
                prime[++cnt]=i;
            }
            for(int j=1;i*prime[j]<=30000;j++){
                vis[prime[j]*i]=1;
                if(i%prime[j]==0)
                    break;
            }
        }
    }
    void init(){
        int i,j,k;
        lg[1]=0;
        for(i=1;i<=30000;i++){
            lg[i]=log(i);
    
        }
        for(i=1;i<=cnt;i++){
            for(j=30000;j>=prime[i];j--){
                for(k=prime[i];k<30000;k*=prime[i]){
                    if(j>=k){
                        f[j]=max(f[j],f[j-k]+lg[k]);
                    }
                }
            }
        }
    }
    int main(){
        //ios::sync_with_stdio(false);
        int t;
        cin>>t;
        get();
        init();
        while(t--){
            int n;
            scanf("%d",&n);
            printf("%.9f
    ",f[n]);
        }
    }
    View Code
    没有人不辛苦,只有人不喊疼
  • 相关阅读:
    决策树分类
    集群服务器 获取COOKIE错误
    React 自写Loading
    HTB-靶机-Unattended
    HTB-靶机-LaCasaDePapel
    HTB-靶机-FriendZone
    HTB-靶机-CTF
    HTB-靶机-FluJab
    HTB-靶机-Help
    HTB-靶机-Chaos
  • 原文地址:https://www.cnblogs.com/ctyakwf/p/13894896.html
Copyright © 2011-2022 走看看