- 博客(4)
- 收藏
- 关注
原创 Codeforces Round #296 (Div. 1) (A B)
A Glass Carving 第一眼看上去感觉不会做。。其实仔细想想,只要维护每次切割以后横向最长的段和纵向最长的段就可以了,结果就是它们相乘。答案必出在横向最长段和纵向最长段,因为每次切割都是切到底的。维护方法是利用set,map什么的去存被切过的位置和每一段长度。 #include using namespace std; set heng; set zo
2015-03-19 11:52:50 548
原创 Codeforces Round #295 (Div. 1) (A B)
A DNA Alignment 为ACGT四种字符计数,假设最多的有MAX个,然后看有多少种字符的数量达到MAX,假设为cnt。那么答案就是cnt^n,快速幂算出。原因很简单,只需要固定s,循环移动t考虑,假设t的第一位准备填'A',那么它的贡献肯定就是s中A的个数,所以肯定选贡献最大(出现最多)的字符。 #include using namespace std;
2015-03-02 19:43:11 454
原创 poj 1330 Nearest Common Ancestors
给一棵树,和两个点,求这两个点的最近公共祖先(LCA)。刚学完在线算法,再来学个离线的。。但是这个题的查询只有一次,感觉有点浪费了,不管怎么样写法还是一样的:tarjan。 tarjan其实就是一次dfs。利用并查集,在每个节点访问完的时候,把它的祖先置为它的父节点(也就是访问完一棵子树时,树上所有点都在一个集合),然后集中处理与这个节点有关的询问,如果另外一个点已经被访问过了,
2015-03-01 23:11:50 416
原创 Codeforces Round #294 (Div. 2) (C D E)
C A and B and Team Training 给出大神和菜鸟的人数,必须1:2或者2:1组队,问最多组几队。如果n的2倍小于等于m,答案就是n,反过来也一样。否则答案是它们的和除以3,忽略余数。 #include #include #include #include #include #include #
2015-03-01 14:45:54 629
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人