题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=3092
 
题目大意:
给一个数n,求一个划分a1,a2,...ak 使得ans=lcm(a1,a2,..,ak)最大,输出ans%m。
解题思路:
对于一个划分肯定是任意的i,j gcd(ai,aj)=1最优。如果gcd(ai,aj)>1 则最小公倍数肯定小些。
预处理所有的质数,转为话一个完全背包问题。
由于lcm很大,所以取对数处理。
代码:
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<algorit
 
                   
                   
                   
                   该博客探讨了如何解决HDU 3092题目,即寻找一个数n的最优划分,使得这些划分的最小公倍数最大化,并输出其模m的结果。博主指出,最优情况是每个划分部分的最大公约数为1,并将问题转化为完全背包问题。通过预处理质数和使用对数处理大数,来优化解题策略。
该博客探讨了如何解决HDU 3092题目,即寻找一个数n的最优划分,使得这些划分的最小公倍数最大化,并输出其模m的结果。博主指出,最优情况是每个划分部分的最大公约数为1,并将问题转化为完全背包问题。通过预处理质数和使用对数处理大数,来优化解题策略。
           最低0.47元/天 解锁文章
最低0.47元/天 解锁文章
                           
                       
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   7万+
					7万+
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            