- 博客(6)
- 资源 (7)
- 收藏
- 关注
原创 2268: SB_cyh and his BST two (treap&&set)
集合(Set)是一种包含已排序对象的关联容器 begin() 返回指向第一个元素的迭代器 clear() 清除所有元素 count() 返回某个值元素的个数 empty() 如果集合为空,返回true end() 返回指向最后一个元素的迭代器
2016-07-27 15:46:28 451
原创 Codeforces Round #362 (Div. 2) C.Lorenzo Von Matterhorn
题目链接:http://codeforces.com/contest/697/problem/C 题意:有1~n的n个点,对于第i个点它的2*i与2*i+1有一条无向的边。现在有两种操最,第一种是将从u到v的最短路径上所有边的 权值加上w。第二种是询问u到v最短路劲上的花费是多少。 解法:我们可以将从1开始将所有的边画出来,不难发现这就是一棵二叉树。他们的最短路径即为他们到公共父亲的距离。然后
2016-07-16 20:25:44 277
原创 UVA - 11732 "strcmp()" Anyone? (字典树的处理)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=28438 1.对于这个题我们可以用字典树来做,我们可以统计前缀相同的字母个数,对于前缀相同的单词每个字母要比较两次(包括‘\0’)。又因为要把任意两个单词相比较。所以相同字母的比较次数为2*val[i[*(val[i]-1).对于不想得的单词,由题意可得这个仅比较一
2016-07-16 19:44:30 238
原创 Codeforces Round #361 (Div. 2) D Friends and Subsequences
题目链接:http://codeforces.com/contest/689/problem/D 题意:给定两个长度相同的数组,a和b。问你在相同的区间中amax=bmin的区间有多少个,数组的范围为200000. 解法:我们可以枚举起始点,然后用二分查到amax和bmin相等的左右端点,然后进行区间累加就可以了。对于最大值最小值的查询我们可以采用线段树和RMQ来优化。线段树的查询复杂度是lo
2016-07-13 19:33:33 335
原创 Codeforces Round #361 (Div. 2) C. Mike and Chocolate Thieves 二分
题目链接:http://codeforces.com/problemset/problem/689/C 题意:有4个小偷去偷Mike家的巧克力,小偷的包最多装n个。四个小偷一个比一个贪心,他们偷的是前一个的k倍(k不知道)。现在已经知道小偷可能出现的情况次数为m(1e15)。问你求出小偷包的最小容量。 解法:设第一个小偷偷了a,则很容易这道小偷包的容量为所有情况中a*k*k*k的最大值。枚举k
2016-07-12 21:13:15 284
原创 UVALA3942(关于字典树)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=22109 解法:我们写出递推方程d[i]=sum[d[i+len(x)],d[i] 表示以i开始的字符粗的分解方案数。对于这个我们以算出他的复杂度n*m,n为单词个数,m为查找的复杂度。当我们把单词存在数组遍历时,复杂度为m(4000*100)。这个会超时的。由于
2016-07-12 20:44:41 214
背包问题九讲2.0
2016-03-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人