hdu_5927_Auxiliary Set(xjb搞)】的更多相关文章

题目链接:hdu_5927_Auxiliary Set 题意: 给一棵n个节点的树,最开始全部都是重点,现在有q个询问,每次给你一些轻点,并叫你输出整棵树的重点数量, 轻点可能会变为重点,如果这个轻点是两个重点的lca. 题解: 这里 我把有重点的子树叫重子树,一个重点都没有的子树叫轻子树. 一个轻点如果有两个重子树,那么这个轻点就会变为重点,可以画图试试. 然后我们就将轻点从树的最底层开始更新 x为这个点的子树个数,n为这个点的轻子树个数, 如果x-n=0,那么这个点的父亲节点的n就++ 如果…
题目链接:hdu_5873_Football Games 题意: 有n个队,每个队都会给其他队打一场,赢一场得2分,平局得一分,输了不得分,然后给你全部比赛结束后的得分,问你是否有假分 题解: 可以知道每打一场分数总和会加2,然后奇数得分的个数是偶数个,0得分的个数最多一个,因为不可能两个队全部都是输,然后就这样xjb水过去了 #include<bits/stdc++.h> #define F(i,a,b) for(int i=a;i<=b;++i) using namespace st…
题意: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 可以先跑…
题目链接:hdu_5813_Elegant Construction 题意: 给你n个点,每个点要可以到达ai个点,可以直接可以间接,不能有环,问是否可行,如果可行就任选一种方式连接,并输出连接的边数和边 题解: 我们按每个点要能到达的点数从小到大排序,然后枚举每个点i,对前面的j(j<i)连一条边,这样保证能到达ai个点,如果第i个点大于等于i,那么肯定没有方案,此时不能向后面的点连边,如果连了就成环了. #include<bits/stdc++.h> using namespace…
题目链接:hdu_5805_NanoApe Loves Sequence 题意: 给你n个数,现在要删一个数,删每个数的概率是一样的,现在问你删一个值后的相邻数绝对值最大差的期望是多少,因为担心精度误差,让你答案乘n 题解: 先算出不删数的绝对值最大的差ma并记录位置,如果要删的数不是刚才求出来的位置,那么ans+=max(abs(a[i-1]-a[i+1],ma).如果是,那么重新求一下最大值就行了,因为最多重求两次,所以总复杂度还是O(n). #include<cstdio> #inclu…
题目链接:hdu_5752_Sqrt Bo 题意: 给你一个数,问你最少要开多少次方才能为1 题解: 我们发现如果给的数大于232 那么肯定在5次以内是开不出来的,所以直接输出TAT,然后小于的就模拟一下,注意1和0的特判就行 #include <cstdio> #include <cstring> #include <cmath> typedef long long ll; << ) - ; ] ="; ]; int len; void fail…
day0 下午到了北京,雾霾还是那么大.. 到宾馆报个到,和哥哥吃了一波饭,去不起西郊...只能去五道口了... 晚上和wyz队长见面,wyz队长好帅啊...没带手机拍照真是个错误TAT day1 今天是开营...大客是很高级啊...见到了YZM菊苣,感觉好神啊... 雾..开营仪式时候听吴文虎教授传授人生经验 HP ++,感觉吴文虎教授好厉害啊,身为学术大师,还是体育健将,怪不得这么长寿 听着吴教授的话,感觉中国人确实很厉害..劲啊 吴教授:少说多做.这句话说得很对蛤.. 后来cxm讲人生经历…
问题 A: 木棒根数 解法:把所有的情况保存下来,加一下就好 #include<bits/stdc++.h> using namespace std; map<char,int>q; class P { public: int cmd(string s) { ; ;i<s.length();i++) { sum+=q[s[i]]; } return sum; } }; int main() { string s; P solve; q[; q[; q[; q[; q[; q[…
C. Drazil and Park 题目连接: http://codeforces.com/contest/516/problem/C Description Drazil is a monkey. He lives in a circular park. There are n trees around the park. The distance between the i-th tree and (i + 1)-st trees is di, the distance between t…
题目链接:Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset 题意: 给你一些操作,往一个集合插入和删除一些数,然后?x让你找出与x异或后的最大值 题解: trie树xjb搞就行,每次要贪心,尽量满足高位为1. #include<bits/stdc++.h> #define F(i,a,b) for(int i=a;i<=b;i++) using namespace std; namespace trie { )*; ],ed=-,c…