- 博客(5)
- 资源 (1)
- 收藏
- 关注
原创 Codeforces Round #296 (Div. 1)
A. Glass Carving 题意: 给定一个w*h的矩形, 每次水平或者竖直地切, 问每次切完之后矩形之中最大的块的面积是多少。 思路: 分开考虑竖直方向和水平方向, 因为每次切完之后都是取两个方向的块的最大值。 对于竖直方向, 如果逆序地考虑操作, 那么每次操作之后相当于是把两块分开的块连起来, 那么如果更新最大值的话,只需要把最大值和这两块的长度对比就行。 然后记录块的大小的
2015-03-18 22:39:33 463
原创 hdu 5044 Tree 树链剖分
贴下模板,,,,, #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define mxn 100020 #define mxe 200020 #define N
2015-03-11 21:25:42 435
原创 hdu 4408 Minimum Spanning Tree 最小生成树计数
题意: 给定一个无向带权图,要求求出这个图最小生成树的个数。 思路: 如果不连通的话就输出0。 如果是无权图,直接用矩阵树定理就可以。 对于带全图, 先把所有边排序, 然后从小到大考虑边权, 对于一组边权相同的边, 根据kruskal, 加入了这些边之后, 图的连通性是确定的, 也就是哪些点跟哪些点是不是连通是确定的, 但是选边的方案是不一样的, 于是对选了这组边之后在同一个联通块的边
2015-03-11 20:31:57 520
原创 Codeforces Round #295 (Div. 1)
A. DNA Alignment 题意: 给定一个字符串s。 ……&(&(%……*&……)&*(&(*&%…………*%#%¥@¥*(%() 思路: 假设s和t中AGCT的出现次数为a,b,c,d和w,x,y,z次, 则h(s,t) = n * (a * w + b * x + c * y + d * z)。 所以, 如果n和abcd都是一定的话, 那么t中的字符一定要取出现次数最大的那个字符
2015-03-02 21:28:16 467
原创 Codeforces Round #294 (Div. 2)
D. A and B and Interesting Substrings 题意:给定26个小写字母的权值和一个字符串, 求出该字符串有多少个连续的子串,首尾相同, 并且除了首尾权值和为0。 思路:权值和为0说明子串的两个端点的前缀和相同, 先预处理出前缀和, 然后因为首尾要相同, 所以开26个map记录一个某个字符的前缀和的出现次数。 #include #include #includ
2015-03-01 09:37:02 419
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人