- 博客(6)
- 收藏
- 关注
原创 HYSBZ - 1036 树的统计Count 树链剖分入门题
题意:略; 思路: 借用kuangbin大佬一句话:树链剖分就是数据结构在树上的应用 我关于树链剖分的理解:选择树中最长的一条链作为重链(即选择子树较大的孩子结点),依次标号,相当于线段树维护的一个序列中的一个连续区间; 对于一个根结点其他的子结点,新建链, 这样在进行更新操作是单点更新;查询操作时,需要找到两个结点的lca(最近公共祖先),以此为连接点,可以求得两个结点区间内的m...
2018-07-27 10:57:03 147
原创 HDU - 6315 Naive Operations 线段树(多校2-1007)
题意: 给定序列a,b;a初始值为0,b是1-n的排列; 每次对a序列操作: add L R操作是给a序列 区间【L-R】每个值+1; query L R操作是对区间【L-R】对应的 [a[i] / b[i]](向下取整) 求和; 思路: 令ans[i] = a[i] / b[i] (向下取整), 首先可以想到,要使ans[i]加一的话,a[i]需要加 b[i] ,这样每时每刻都会存在...
2018-07-26 09:45:27 144
原创 POJ - 2250 Compromise 最长公共子序列 LCS
题意: 给定两个字符串序列,求最长公共子序列 思路: 方便起见,把字符串映射成两个数列,求最长公共子系列 #include <iostream> #include <cstdio> #include <algorithm> #include <queue> #include <map> #include <stack...
2018-07-24 17:35:13 153
原创 HDU - 6300 Triangle Partition 贪心
题意: 给定3*n个点,构造n个三角形,要求任意两个三角形没有重叠,输出n个三角形的点的标号; 不存在三点共线 思路: 不存在三点共线的话,只要按照x坐标排序后,相邻的三个点一定跟后面点组成的三角形不重叠, 所以不用求凸包; #include <iostream> #include <cstdio> #include <cmath> #...
2018-07-24 17:28:11 151
原创 HDU - 6301 Distinct Values 思路+优先队列
题意: 给定n段区间,要求每段区间内没有重复的数字; 构造这样一个序列,使得序列的字典序最小 思路: 字典序最小的话我们可以想到 对序列从左往右放数,从1开始放数; 然后按n个序列的左值排序,这样我们只需要考虑相邻的两个区间就好,当前区间和上一个区间, 这里分为以下情况: 如果当前区间包含在前一个区间,则不用考虑,continue; 如果当前区间跟前一个区间没有交集,...
2018-07-24 17:23:18 127
原创 Gym - 101775A A - Chat Group 组合数+逆元
由题推出,需要求: C(n,k) + C(n,k+1) +...+ C(n,n); 由于n巨大(1e9),而k 1e5; 可以转化为: 2^k - ( C(n,0) + C(n,1) + ... + C(n,k-1) ) C(n,k) = ( n*(n-1)*..(n-k+1) ) / ( k! ); 恰好O(k)解决 因为涉及到分数取模,所以还要预处理 inv(k!) ,逆元打...
2018-07-22 21:39:44 594
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人