- 博客(11)
- 收藏
- 关注
原创 ZOJ 3940
一个很暴力的递归拆分过程改成priority_queue就过了,醉了 #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef long long LL; const int mod = 1e9 + 7; co
2016-04-28 09:18:22 564
原创 HDU - 5673(catalan数的应用)
分析: 记路径长度为nn,那么机器人最多向右走\lfloor \frac{n}{2} \rfloor⌊2n⌋步并向左走\lfloor \frac{n}{2} \rfloor⌊2n⌋步。 Ans(n) = \sum_{i=0}^{\lfloor \frac{n}{2} \rfloor} C_n^{2i} \ Catalan(i)Ans(n)=∑i=0
2016-04-25 16:01:10 555
原创 HDU 4876(就是暴)
题意: 给定n(n 思路: 怎么想都会超时,就用最暴力的方法了,剪纸 + 减少枚举, 首先可以先将C(n,k)中可选的数的组合枚举出来,我们发现不需要枚举出所有的这k个数的排列依次判断,因为是环状 , 可以从K!降到(K -1)! 然后跟据当前获取的最大值做可行性剪枝。 #include #include #include #include using na
2016-04-15 10:35:29 427
原创 uva 1618(枚举技巧)
直接说解法: 我们只考虑1 Ns > Np > Nr 的这种情况,先枚举 p , q 的位置 , 那么先选s的位置,s的位置越靠后越好,这样会留下更大的空间选r 又知道所有数不同,离散化位1 到 n , 那么假设p , q 位置确定 ,以pos数组记录每个1 -- n 每个离散化后的数对应的数组位置, 那么 s的最佳位置为 pos数组 上 Np + 1 --> Nq - 1 这个
2016-04-11 20:30:41 916
原创 uva 10884(经典序列)
先存下用规划找出个数的代码 #include #include #include #include #include #include using namespace std; typedef long long ll; typedef pair pii; #define rep(i,n) for(int i =0;i<(int)n;i++) #define rep1(i,x,y)
2016-04-10 13:03:00 698
原创 hdu 5661
考虑从高位到低位贪心,对于每一位,如果x,y只有唯一的取法,那么只能这么取;否则贪心地必须使答案的这一位等于1。如果x,y都是0,1都能取,则设这是从右向左数第len位,因为x,y能取的值一定都是连续的一段,因此x,y的后len位都能取0111...1(len-1个1)和1000...0(len-1个0)(否则做不到从右向左数第len位都能取0,1)。也就是说,后len位的贡献一定能达到可能的上界
2016-04-10 09:45:24 620
原创 hdu 5662
一个很简单的问题,暴力枚举k,然后每次的复杂度位O(n/k);这样很明显的nlog(n); 至于每次在数组A 上求一个L , R 使得sum(L , R) * MIN(L ,R) 最大,只需维护每个点的最大延伸区间,可以用栈边走变维护,或者直接保留成数组递推。 #include #include #include #include #include using namespace s
2016-04-10 09:43:25 427
原创 (AC自动机 + 矩阵加速)
题意: 给定最多十个最长不超过10的病毒dna串,求长度为m(m 分析: 用自动机建立状态转移图,然后建立转移矩阵 定义初始状态为[1 , 0 , 0 , 0 ....]代表当前长度为0可转移到各个状态的方案数目,然后乘上m次转移矩阵即答案。 #include #include #include #include #include using names
2016-04-08 09:50:00 404
原创 CodeForces 570D(dfs序 or 离线dfs)
题目意思: 给定一颗root为1的树,节点最多5e5个,每个节点有一个英文字母,要求在指定子树根节点x,和指定深度y,求该子树y深度所有节点的字母能不能组成回文串。 解法1: 利用dfs序,为所有点标上进出两个标记,既可以代表一个区间(dfs序很重要的一个应用),顺便将每个深度下所有的单个字母出现的标号统计到相应的vector中后, 在计算答案时进行26次二分上下界求
2016-04-06 14:24:11 485
原创 HDU 4123(RMQ(o1)模板 , 树直径)
题目的意思: 给出N(n 先求出每个点的最远到达距离,树直径简单求解方法。 RMQ处理得到的最远距离数组,线性扫描求每个值 #include #include #include #include #include using namespace std; typedef long long ll; #define lson l,m,rt<<1 #define rson m+1,r
2016-04-05 20:51:31 338
原创 FZU 2082(树链剖分模板题)
一颗树边上的权在变动,动态求两点之间的和。 #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long #define pi acos(-1.0) //#pragma comment(linke
2016-04-05 20:06:27 329
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人