上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 53 下一页
摘要: dp 字符串dp不太会啊。。。 这种序列和子串的匹配一般设两个状态,dp[i][j]表示当前s匹配到i,t匹配到j的...,g[i][j]表示当前s匹配到i,t匹配到j,i,j必须匹配的...,noip2015的子串也是这个套路,这道题是设最远能匹配到哪里,贪心显然,转移具体看代码,注意一定要把条件 阅读全文
posted @ 2017-11-02 07:50 19992147 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 二分+lca 我们把向中间缩看成向上爬,向两边走看成向下爬,那么就相当于找出两个状态的lca,如果相邻的差是(a,b),a<b,那么向中间走就是(a,b-a)或(b-a,a),这个东西很像更相减损术,那么我们直接用(b-1)/a算出来要走的步数,然后继续递归求lca,直到走不了为止。先爬inf步判断 阅读全文
posted @ 2017-11-02 07:46 19992147 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 贪心 n%3==1 分出一个4,其余用3,n%3==2,分出一个2,其余用3,然后高精度就行了 #include<bits/stdc++.h> using namespace std; const int N = 5005; struct BigInt { int len; int a[N]; Bi 阅读全文
posted @ 2017-11-02 07:40 19992147 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 主席树+dfs序 b在a上方时可以O(1)算出来,子树中就用主席树查询区间和,权值线段树的下标是深度,值是子树size-1,每次查询就行了。。。线段树合并挂了 #include<bits/stdc++.h> using namespace std; typedef long long ll; con 阅读全文
posted @ 2017-10-31 20:16 19992147 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 树形dp+笛卡尔树+单调栈 这道题跟树形dp有什么关系? 事实上,我们对矩形建立笛卡尔树,先找出最矮的矩形,向两边区间最矮的矩形连边,这样就构成了一棵二叉树,因为只有一个矮的区间会对高的区间造成影响,而且儿子之间不会互相影响,并且这样一层一层保证了每段矩形都会被覆盖到,其实就是单调栈,所以这样连是对 阅读全文
posted @ 2017-10-31 11:09 19992147 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 贪心 题目看错了。。。还以为是从操作序列中选5个。。。然后半个小时没了。。。 我们把每位分别用0和1带入,看看返回值是什么,然后分类讨论。千万不用特判!!!之前忘了删了就fst。。。 #include<bits/stdc++.h> using namespace std; const int N = 阅读全文
posted @ 2017-10-27 20:50 19992147 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 二分概率+矩乘+dp 也是二分概率,然后dp[i][j][k]表示当前到了i,有j条命,下一次的收益是k,然后矩乘转移,但是我自己的似乎wa了,抄了liu_runda的才行,具体不知道为什么 注释的是我自己写的,谁能告诉我哪里错了? #include<bits/stdc++.h> using nam 阅读全文
posted @ 2017-10-27 20:47 19992147 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 奇怪的dp 思路清奇 dp[i][j]表示当前做完了i个任务,1机器花了j秒,2机器花费的最少时间,然后转移就行了。 #include<bits/stdc++.h> using namespace std; const int N = 6005; struct data { int a, b, c; 阅读全文
posted @ 2017-10-27 20:44 19992147 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 单调栈+前缀和 max很明显用单调栈搞,但是异或和呢?异或和我们拆位,对于每段区间的异或和[l[i]-i],[i,r[i]]答案就是0->1,1->0的乘积,但是统计的时候事实上是[l[i]-2,i-1],因为异或和本身是前缀和,所以要-1,单调栈又是一个前缀和,也要-1,所以就是-2 #inclu 阅读全文
posted @ 2017-10-27 20:43 19992147 阅读(185) 评论(0) 推荐(0) 编辑
摘要: dp 搬题解~~:http://blog.csdn.net/aarongzk/article/details/44871391 #include<cstdio> using namespace std; const int N = 5010; int n, p, pre; int f[2][N]; 阅读全文
posted @ 2017-10-25 16:38 19992147 阅读(109) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 53 下一页