[HDU5902]GCD is Funny(xjb搞)

题意:n个数每次选三个数删除,取其中两个数将gcd放回去两次,问最后剩的数可能是多少

分析:考虑最优情况:

        先拿出三个数,留下两个x,x

         再来一个y,(x,x,y)我们可以删去一个x,留下两个gcd(x,y),这两个gcd(x,y)等价于刚才的两个x,x

也就是每次操作我们都可以有一个额外的数让我们删去,并不断扩充gcd

于是答案就是所有子集的gcd

但第一次我们必定删去一个数,它没法加入gcd操作中,所有n个子集的gcd不能作为最终结果

即答案就是2<=size<n的子集的gcd

可以先跑出两两gcd,然后再枚举子集的大小,不断更新gcd

时间: 2024-07-31 07:58:34

[HDU5902]GCD is Funny(xjb搞)的相关文章

hdu_5927_Auxiliary Set(xjb搞)

题目链接:hdu_5927_Auxiliary Set 题意: 给一棵n个节点的树,最开始全部都是重点,现在有q个询问,每次给你一些轻点,并叫你输出整棵树的重点数量, 轻点可能会变为重点,如果这个轻点是两个重点的lca. 题解: 这里 我把有重点的子树叫重子树,一个重点都没有的子树叫轻子树. 一个轻点如果有两个重子树,那么这个轻点就会变为重点,可以画图试试. 然后我们就将轻点从树的最底层开始更新 x为这个点的子树个数,n为这个点的轻子树个数, 如果x-n=0,那么这个点的父亲节点的n就++ 如果

hdu_5805_NanoApe Loves Sequence(xjb搞)

题目链接:hdu_5805_NanoApe Loves Sequence 题意: 给你n个数,现在要删一个数,删每个数的概率是一样的,现在问你删一个值后的相邻数绝对值最大差的期望是多少,因为担心精度误差,让你答案乘n 题解: 先算出不删数的绝对值最大的差ma并记录位置,如果要删的数不是刚才求出来的位置,那么ans+=max(abs(a[i-1]-a[i+1],ma).如果是,那么重新求一下最大值就行了,因为最多重求两次,所以总复杂度还是O(n). 1 #include<cstdio> 2 #i

hdu_5813_Elegant Construction(xjb搞)

题目链接:hdu_5813_Elegant Construction 题意: 给你n个点,每个点要可以到达ai个点,可以直接可以间接,不能有环,问是否可行,如果可行就任选一种方式连接,并输出连接的边数和边 题解: 我们按每个点要能到达的点数从小到大排序,然后枚举每个点i,对前面的j(j<i)连一条边,这样保证能到达ai个点,如果第i个点大于等于i,那么肯定没有方案,此时不能向后面的点连边,如果连了就成环了. 1 #include<bits/stdc++.h> 2 using namesp

BZOJ3669: [Noi2014]魔法森林

传送门 高级数据结构学傻系列 正解似乎是最短路xjb搞,但是用LCT瞎搞搞也是很吼啊. 从贪心开始,按照每条边a的大小随意sort一下. 对于每个边,我们check两点的联通性,如果联通的话取b最大的值,如果大于当前边的b的话就就删除最大边,把这条边加进去. 如果不连通的话直接添加即可. LCT滋次这些操作,所以大力LCT即可. //BZOJ 3669 //by Cydiater //2017.2.16 #include <iostream> #include <queue> #i

acm刷题记录

我感觉毫无目的地刷题没有意义,便记录每周的刷题,以此激励自己! ----------6.6-------- [vijos1055]奶牛浴场                                      最大化               推荐IOI论文<浅谈用极大化思想解决最大子矩形问题> codeforces 679B - Bear and Tower of Cubes      xjb搞 codeforces  680A - Bear and Five Cards       

2014 39th ACM-ICPC 西安赛区 总结

西安,打铁. 出发前听说是大赛区,签到的时候看了秩序册的队伍情况,264支队伍. 在听说是大赛区之前,我觉得我们队应该是银首,运气好+发挥超常的话或许有金,即保银冲金. 听到大赛区之后,觉得可能金区有难度,毕竟金的数量不根据队伍总数改变.当时觉得应该是银,运气差+发挥失常就是铜首. 万万没想到,打铁. 同行的另外还有三支队伍.大二的两支队伍,一支银一支铜.好像我们学院好久没有打铁了 热身赛,纸质很差,纸张黄黄的,字体模糊的,还很薄.共4题. 先是2题水题CD,我跟JM迅速水完后,WJ说B是冒泡的

红书上的几道搜索例题

Holedox Moving poj 1324 题意:贪吃蛇,n*m的网格,蛇长度<=8,给出蛇的每个身体的位置,求到(1,1)点的最短距离 http://www.cnblogs.com/longdouhzt/archive/2011/11/17/2253233.html这个xjb搞,效果还是不错的 分析:状态数一定,目标一定,压缩状态然后bfs,但是每一位都用(x,y)来表示状态太大,那么还要转换状态,蛇头位置显然要表示,那么剩下的身体只要知道上一段身体在哪,就可以知道现在的坐标了,那么,可以

Codeforces Round #367 (Div. 2) D. Vasiliy&#39;s Multiset

题目链接:Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset 题意: 给你一些操作,往一个集合插入和删除一些数,然后?x让你找出与x异或后的最大值 题解: trie树xjb搞就行,每次要贪心,尽量满足高位为1. 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;i++) 3 using namespace std; 4 5 namespace trie 6 {

2016年11月15日noip模拟赛

苟.. 1.谜题 1 /* 2 考虑这题,该怎么xjb搞 3 嗯我说出了题解xjb搞.. 4 由题意 易得 N个 二位数字(一位数加个0) 如果是连续的,那么就成立. 5 反过来做. 6 7 方法2:n<4有解,其他无解 8 */ 9 #include <iostream> 10 #include <cmath> 11 #include <stdio.h> 12 #include <string> 13 #include <string.h>