摘要: 因为是与运算,所以我们可以贪心地每次找最高位的,将他们加入到新的序列中,然后每一次在这个新的序列继续找下一个位。然后最后序列中任意两个的与运算的值都是一样的且是最大的。#include #include #include #include #include #include #include #in... 阅读全文
posted @ 2014-11-03 18:04 iwtwiioi 阅读(670) 评论(0) 推荐(0) 编辑
摘要: vijos某次模拟赛原题。。。处理出每个圆的一级祖先就行了。。。其实没有那么麻烦,贪心即可出解。我们将每个圆转换成线段后按左端点小右端点大的方法排序然后维护一个栈:对于每一个圆i如果栈顶右端点比圆i的右端点小,则出栈,直到栈空否则i的一级祖先就是栈顶,并且加入i到栈。证明:因为左端点排序,所以问题转... 阅读全文
posted @ 2014-11-03 17:29 iwtwiioi 阅读(618) 评论(1) 推荐(0) 编辑
摘要: 好神的一题。。一开始没想多久就看题解了QAQ。。首先我们发现,这棵树任意两个点的边一定是最小的(即所有其它这两个点的路径都比这条边大,才有可能出解)然后生成树后再算距离判断即可。。注意特判n=1.。。。。。。。。。。。。。。。。。还有出题人一点都不良心。。。说好的0#include #include... 阅读全文
posted @ 2014-11-03 13:49 iwtwiioi 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 这题直接模拟。可是我挂在了最后两个点上QAQ。唯一注意的是注意精度啊。。。用来double后边转成整数就忘记用longlong。。。sad#include #include #include #include #include #include #include #include #include ... 阅读全文
posted @ 2014-11-03 12:10 iwtwiioi 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 好神的一题。。。首先我们只需要枚举这个gcd即可。。从大到小,然后问题转换为判定问题。。。即判定是否有k个数有gcd这个约数。。orz这样做的复杂度最坏是O(n+n/2+n/3+…+n/n)=O(nlnn)的,证明自行Google“调和级数求和”。#include #include #include... 阅读全文
posted @ 2014-11-03 06:21 iwtwiioi 阅读(706) 评论(0) 推荐(0) 编辑