Beautiful Set

Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5321


Mean:

给出一个集合,有两种计算集合的值的方式:
1  对于集合的一种排列方式,求它任意区间的gcd,将所有区间的gcd值加起来,即为该排列方式的值;将集合所有排列方式的值加起来即为集合的值;
2  对于集合,任意取k个数,对于取出k个数,值为k个数的gcd*k;k从1-n(集合总个数),加起来即为集合的值如果集合的值相同,则输出该值,否则输出较大的值。

analyse:

详细分析:http://blog.csdn.net/firstlucker/article/details/47128347

对于方式1,我们计算gcd为i有多少种情况
令F[i]表示gcd为i的倍数的情况总数
则F[i]=∑C(cnt[i],k)*k!*(n-k+1)!
k从1到cnt[i] cnt[i]为集合中i的倍数的数的个数
根据莫比乌斯函数(其中d为n的倍数)

这样就可以先根据公式算出F[i]的值,预处理出莫比乌斯函数的系数,再采用类似素数筛的方式算出f[i],f[i]为gcd为i的情况数,则答案为∑i*f[i] (i从1-集合的最大值).

同理:对于方式2, F[i]=cnt[i]*2^(cnt[i]-1) 同上采用莫比乌斯反演算出f[i],答案即为 ∑i*f[i] (i从1-集合的最大值)

最后比较2个答案,选取较大的值输出即可。

两种形式,用于容斥原理的简化,预处理出系数(nlongn)即可建边算出答案

Time complexity: O(N*logN)

Source code: 

2015 Multi-University Training Contest 3 1006 Beautiful Set的更多相关文章

  1. 2015 Multi-University Training Contest 2 1006 Friends

    Friends Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5305 Mean: n个人,m对朋友关系,每个人的朋友中又分为在线 ...

  2. 2015 Multi-University Training Contest 2 1006 Friends 壮压

    题目链接 题意:t 组測试数据,每组測试数据有 n个人,m条关系 每条关系能够是 "线上关系" 或者 "线下关系". 要求每一个人的线上关系(条数) == 线下 ...

  3. hdu6351 2018 Multi-University Training Contest 5 1002 Beautiful Now

    题意: 给出一个十进制数,数位两两可以交换,给出最多能交换多少次,以及交换后的数不能有前缀0,问能形成最小和最大的数 * * * 尝试的思路 贪心,将字符串先排出最大以及最小的情况,然后按一定顺序将对 ...

  4. HDU 6324.Problem F. Grab The Tree-博弈(思维) (2018 Multi-University Training Contest 3 1006)

    6324.Problem F. Grab The Tree 题目看着好难,但是题解说的很简单,写出来也很简单.能想出来就是简单的,想不出来就难(讲道理,就算是1+1的题目,看不出来就是难的啊). 和后 ...

  5. 2019 Multi-University Training Contest 8 - 1006 - Acesrc and Travel - 树形dp

    http://acm.hdu.edu.cn/showproblem.php?pid=6662 仿照 CC B - TREE 那道题的思路写的,差不多.也是要走路径. 像这两种必须走到叶子的路径感觉是必 ...

  6. 2019 Multi-University Training Contest 7 - 1006 - Snowy Smile - 线段树

    http://acm.hdu.edu.cn/showproblem.php?pid=6638 偷学一波潘哥的二维离散化和线段树维护最大子段和. 思路是枚举上下边界,但是不需要从左到右用最大子段和dp. ...

  7. 2019 Multi-University Training Contest 3 - 1006 - Fansblog - 打表 - 暴力

    http://acm.hdu.edu.cn/showproblem.php?pid=6608 题意:给一个比较大的质数P(1e14以内),求比它小的最大的质数Q(貌似保证存在的样子,反正我没判不存在) ...

  8. 2015 Multi-University Training Contest 8 hdu 5385 The path

    The path Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged on HDU. Original ID: 5 ...

  9. HDU 6351.Beautiful Now-暴力、全排列、思维 (2018 Multi-University Training Contest 5 1002)

    2018 Multi-University Training Contest 5 6351.Beautiful Now 题意就是交换任意两个数字,问你交换k次之后的最小值和最大值. 官方题解: 哇塞, ...

随机推荐

  1. ejs和swig对比问题之二

    上一次用浏览器里面简单的进行了测试,得到的数据是swig是ejs的速度的一倍左右,这次在控制台进行测试,能够得到比较精确的数据,并加入了dot一块儿进行测试. 测试数据是一百万条记录 创建测试数据cr ...

  2. HDU4300-Clairewd’s message(KMP前缀匹配后缀)

    Clairewd's message Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  3. setup factory 打包VB 工程

    setup factory 使用起来很简单你可以如下:1.你把你刚编译出来的exe和相关的资源文件复制到某一空目录下.把exe文件添加到setup factory里之后,在列表里右键,属性里面可以设置 ...

  4. CentOS 6上的redis搭建实战记录(转)

    redis 是一个基于内存的高性能key-value数据库,数据都保存在内存中定期刷新到磁盘,以极高的读写效率而备受关注.他的特点是支持各种数据结构,stirng,hashes, list,set,和 ...

  5. ssh-keygen - 生成、管理和转换认证密钥

    通常使用:[b]ssh-keygen -i -f 公密匙名>> authorized_keys[/b]语法详细介绍[code]ssh-keygen [-q] [-b bits] -t ty ...

  6. C#:数学运算(待补充)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MyCo ...

  7. (Windows Maven项目)Redis数据库的安装和操作实现

              Redis是一个内存数据库,他会把你写入当中的数据缓存到内存中,之后会周期性的往磁盘中写入.这篇文章中介绍的是在Windows环境下利用Maven工具编译运行Java文件实现Red ...

  8. js 根据title从下级往上级查找

    var menuData = [{ name: 'manage', title: '测试1', icon: 'home', }, { title: '测试2', name: 'car-parent', ...

  9. U3D安卓下OnApplicationQuit不执行的解决方法

    安卓下当你按Home键,程序会进入暂停状态.所以只能改成调用OnApplicationPause. Unity论坛上说实现IDispose接口也可以,似乎IOS可以,但安卓测试了,无效.

  10. Atitit.软件gui按钮and面板---os区-----linux windows搜索文件 文件夹

    Atitit.软件gui按钮and面板---os区-----搜索文件 1. Find 1 2. 寻找目录 1 3. 2. Locate// everything 1 4. 3. Whereis (wi ...