自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(313)
  • 收藏
  • 关注

转载 hdu 3507 Print Article(dp+斜率优化)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3507题解:显然这题的递推很容易得到dp[i]=dp[j]+(sum[i]-sum[j])^2+m显然这样的要两个for肯定超时。这里就要用到斜率优化。不妨设k<j<i;显然这里j是最优解所以dp[j]+m+(sum[i]-sum[j])^2<dp[...

2017-11-02 15:36:00 210

转载 hdu 1007 Quoit Design(分治)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1007题意:给出n个点求最短的两点间距离除以2。题解:简单的分治。其实分治就和二分很像二分的写dfs然后复杂度就是log(n*log(n)*log(n))#include <iostream>#include <cstring>#...

2017-10-31 19:56:00 198

转载 codeforces 633F The Chocolate Spree (树形dp)

题目链接:http://codeforces.com/problemset/problem/633/F题解:看起来很像是树形dp其实就是单纯的树上递归,就是挺难想到的。显然要求最优解肯定是取最大的两条链不妨设dp[i][3],dp[i][1]表示以i为根节点的子树val最大的子链,dp[i][2]表示以i为根节点的子树val最大的两条子链。显然dp[i][2]=max(...

2017-10-30 13:40:00 267

转载 hihocoder #1617 : 方格取数(dp)

题目链接:http://hihocoder.com/problemset/problem/1617题解:一道递推的dp题。这题显然可以考虑两个人同时从起点出发这样就不会重复了设dp[step][i][j]表示走了step步,第一个人在第i行第二个人在第j行第几列就用step减去就行然后就是简单的递推注意第一个人一定是在第二个人上面的这样才确保不会重复。#includ...

2017-10-29 14:52:00 172

转载 hihocoder #1616 : 是二叉搜索树吗?(模拟题)

题目链接:http://hihocoder.com/problemset/problem/1616题解:就是简单的模拟一下至于如何判断是不是二叉搜索树可以通过中序遍历将每个点存下来看是不是递增的如果是递增的就是反之不是#include <iostream>#include <cstring>#include <cstdio>...

2017-10-29 14:46:00 102

转载 hdu 5977 Garden of Eden(点分治+状压)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5977题解:这题一看就知道是状压dp然后看了一下很像是点分治(有点明显)然后就是简单的点分治+状压dp,这里只要稍微改一下模版就行了。还有注意一下这里的cau状态枚举然后就没什么了#include <iostream>#include <cstring&...

2017-10-27 22:08:00 114

转载 poj 1741 Tree(点分治)

题目链接:http://poj.org/problem?id=1741题解:一道点分治的模版题,直线上的分治就没什么好说了简单的这是一道树上的分治模版题其实分治就是和二分差不多,树上的分治也就是不断的找树的重心然后再找经过重心的有几条路是满足条件的。树上的分治有具体的解析可以去看看理解一下挺简单的,然后差不多树上的分治都可以利用这个模版然后稍微改一下就好。#incl...

2017-10-27 22:04:00 95

转载 codeforces 879 D. Teams Formation(思维)

题目链接:http://codeforces.com/contest/879/problem/D题意:这题题意我反正是看了很久,可能是我的理解能力有点差,就是将一个数组倍增m倍然后将连续的相同的k个删除删到不能再删为止。题解:这里m有点大肯定不能暴力所以可以考虑两个两个之间相互抵消比如(1231) (1231) (1231) (1231) (1231)第一部分...

2017-10-27 13:24:00 117

转载 codeforces 877 E. Danil and a Part-time Job(线段树(dfs序))

题目链接:http://codeforces.com/contest/877/problem/E题解:显然一看就感觉要么树链剖分要么线段树+dfs序,题目要求的操作显然用线段树+dfs序就可以实现。然后就敲一下线段树+dfs序就行挺简单的只要dfs一遍记录当前节点的下表然后再加一个leng数组来存子树最多到达几然后更新或者求值的时候只要查询(pos[x],leng[x])即可。...

2017-10-24 02:43:00 93

转载 hdu 5887 Herbs Gathering (dfs+剪枝 or 超大01背包)

题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5887题解:这题一看像是背包但是显然背包容量太大了所以可以考虑用dfs+剪枝,贪心得到的不一定是正确答案。当然这题还可以用背包来写,其实这就用到了dp的一些优化就是存状态,递推过程中有些状态是多余的没必要计算这样就可以大大减少空间的利用和时间的浪费第一份是dfs+剪枝...

2017-10-19 22:01:00 118

转载 codeforces 389 D. Fox and Minimal path(构造+思维)

题目链接:https://vjudge.net/contest/175446#problem/J题解:显然要用最多n个点构成的图要使的得到的最短路条数有1e9次个,显然要有几个数相乘容易想到2的几进制显然所有数都可以又2的几次方凑的于是利用一下别人的图这就是构造方法我的稍稍有些不同我是先构造直线再构造交叉的我感觉这样简单一点#include <iostre...

2017-10-19 17:39:00 205

转载 hdu 5037 Frog(贪心)

题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5037题解:为了让放的石头有意义肯定是没l+1的距离放2个也就是说假设现在位置为pos那么在pos+1放一个在pos+l+1放一个这样就需要跳两次。于是这题要考虑的就是当前位置和前一个石头放的位置因为如果前一个石头的位置到a[i]的距离小于等于l那么当前位置就不能被走到。...

2017-10-18 21:56:00 131

转载 hdu 5534 Partial Tree(完全背包)

题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5534题解:这题一看有点像树形dp但是树形dp显然没什么思路。然后由于这里的约束几乎没有就是一颗树然后是任意组合,但是有一点总的度数是2*n-2这是不变的,然后就是选择度数为1,2,3....n-1的点的组合,这么说说是不是有点像背包,然后可以想一下一开始所有点的度数都为...

2017-10-18 18:12:00 83

转载 lightoj 1173 - The Vindictive Coach(dp)

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1173题解:像这种题目显然可以想到n为几时一共有几种排列可以递推出来。然后就是对m的考虑如果m只能在第一位那么显然需要的组合是先下降后上升的如果m不在第一位那么需要的组合是先上升后下降的。于是便可以想到设dp_in[i][j]表示i个数第j个数放在第一个而且是...

2017-10-17 20:35:00 184

转载 codeforces 876 F. High Cry(思维)

题目链接:http://codeforces.com/contest/876/problem/F题解:一道简单的思维题,知道最多一共有n*(n+1)/2种组合,不用直接找答案直接用总的组合数减去不符合的也行。找不符合的就简单了。找到一个位置i,他的最左边的位置就是a[i]在二进制下是0的最靠近i的位置,所以可以先用pos[j]记录第j位是0的位置。然后最右边的也是同理。这里还处...

2017-10-17 09:55:00 151

转载 codeforces 876 D. Sorting the Coins(线段树(不用线段树写也行线段树写比较装逼))...

题目链接:http://codeforces.com/contest/876/problem/D题解:一道简单的类似模拟的题目。其实就是看右边连出来有多少连续不需要换的假设位置为pos只要找pos-1左边一共有多少x就行(x是什么看一下样例)第一个是正常解法第二个是用线段树写的,其实正常写就是模拟一下就好#include<cstdio>#inc...

2017-10-16 20:15:00 110

转载 codeforces 872 D. Something with XOR Queries(思维)

题目链接:http://codeforces.com/contest/872/problem/D题意:给你一个排列p和对应的位置b也就是说p[b[i]]=i,然后给你最多询问2*n次找出所有的p排列,然后任意输出一个。题解:其实是一道水题要知道一共n个数询问2*n次也就是说能够询问p[0]^b[i](0<=i<n)和p[i]^b[0](0<=i&lt...

2017-10-16 16:38:00 135

转载 hihocoder #1609 : 数组分拆II(思维)

题目链接:http://hihocoder.com/problemset/problem/1609题解:就先拿一个数组最多分成两部分来说吧81 2 3 4 5 1 2 3显然 输出时2 3可以这样分(1 2 3( 4 5 )1 2 3)显然分要分在(^4^5^)“^”这3个地方也就是说如果设pre[i]表示i位置最前面能到哪个位置,dp[i]表示i这个位置最少能...

2017-10-16 15:34:00 114

转载 hihocoder #1608 : Jerry的奶酪(状压dp)

题目链接:http://hihocoder.com/problemset/problem/1608题解:就是一道简单的状压dp由于dfs过程中只需要几个点之间的转移所以只要预处理一下几个点就行。#include <iostream>#include <cstring>#include <cstdio>#include &l...

2017-10-15 15:22:00 129

转载 lightoj 1126 - Building Twin Towers(dp,递推)

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1126题解:一道基础的dp就是简单的递推可以设dp[height_left][height_right],但是这样显然回boom内存,所以不妨直接考虑两座塔之间的差于是便有了dp[i][j]表示考虑到第几个时两座塔差值是多少,然后就是递推了,要么加积木嫁到高的...

2017-10-14 21:13:00 142

转载 codeforces 873 D. Merge Sort(分治)

题目链接:http://codeforces.com/contest/873/problem/D题解:这题挺简单的,除了一开始算作是调用到一次,然后每次执行操作时都会调用2次,所以最多调用几次就很好算了,而且只有奇数调用次数才合理。然后就是类似分治的思想,每次dfs二分过去,发现调用次数不够就交换mid和mid-1那么就会再被调用2次。#include <iost...

2017-10-14 08:44:00 126

转载 lightoj 1158 - Anagram Division(记忆化搜索+状压)

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1158题解:这题看起来就像是记忆搜索,由于s很少最多就10位所以可以考虑用状压。然后就简单了。#include <iostream>#include <cstring>#include <cstdio>u...

2017-10-12 20:44:00 175

转载 lightoj 1226 - One Unit Machine(dp+大组合数去摸)

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1226题解:由于这些任务完成是有先后的所以最后一个完成的肯定是最后一个任务的子任务,不妨设dp[i]表示第几个任务完成后总共有几种方案,这里要逆着来至于为什么想想也是挺好理解的。于是有这么一个方程式dp[i]=dp[i + 1]*C(sum-1,k[i]-1)...

2017-10-12 16:11:00 163

转载 lightoj 1382 - The Queue(树形dp)

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1382题解:简单的树形dp加上组合数学。#include <iostream>#include <cstring>#include <cstdio>#include <vector>#de...

2017-10-12 14:59:00 144

转载 lightoj 1283 - Shelving Books(记忆化搜索+区间dp)

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1283题解:这题很显然一看就像是区间dp,但是单纯的区间dp好像解决不了问题可以稍微利用一下区间dp的思想。其实这题就是单纯的往左右放那么很容易会想到用记忆化搜索。设dp[now][l][r],now表示处理到哪一位,l表示左边数最靠右的数是哪个。r表示右边最...

2017-10-11 21:59:00 349

转载 hdu 5445 Food Problem (多重背包)

题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5445题解:一看就像多重背包就是怎么看都不好做。但是这里有点明显的就是有两个背包,一个是糖果一个是箱子,于是不妨就试试两个多重背包,先考虑用这些糖果能否满足条件设dp[i]表示构成能量为i的糖果最小需要多少体积,然后将所需要的体积保存下来那么只要找到一些箱子总共能容纳的体...

2017-10-11 20:10:00 117

转载 light 1205 - Palindromic Numbers(数位dp)

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1205题解:这题作为一个数位dp,是需要咚咚脑子想想的。这个数位dp方程可能不是很好想到,由于回文串的性质肯定要考虑到对称方面,那么不妨设dp[len][sta][flag]表示len到sta这些字符串是否能构成回文。这里的数位dp有些特殊由于要考虑到回文...

2017-10-11 19:54:00 78

转载 codeforces 869 E. The Untended Antiquity(树状数组)

题目链接:http://codeforces.com/contest/869/problem/E题解:这题是挺好想到solution的但是不太好写,由于题目的特殊要求每个矩形不会重贴所以只要这两个点最内抱着他们的是同一个矩形就行了。就是最近抱汉她们的矩形是同一个就行了。有一种方法挺好的主要是数据是大多数随机的,所以可以考虑hash一下rand一下每个点的赋值然后求前缀和相同就是...

2017-10-10 21:40:00 126

转载 codeforces 864 E. Fire(背包+思维)

题目链接:http://codeforces.com/contest/864/problem/E题解:这题一看就很像背包但是这有3维限制也就是说背包取得先后也会对结果有影响。所以可以考虑sort来降低维度(这是常用的方法)然后就是简单的有限背包至于这题还要求存下娶了哪些东西可以用vector来存。#include <iostream>#include...

2017-09-28 10:36:00 157

转载 codeforces E. Mahmoud and Ehab and the function(二分+思维)

题目链接:http://codeforces.com/contest/862/problem/E题解:水题显然利用前缀和考虑一下然后就是二分b的和与-ans_a最近的数(ans_a表示a的前缀和(奇加偶减))#include <iostream>#include <cstring>#include <cstdio>#inc...

2017-09-25 16:07:00 163

转载 codeforces D. Mahmoud and Ehab and the binary string(二分)

题目链接:http://codeforces.com/contest/862/submission/30696399题解:这题一看操作数就知道是二分答案了。然后就是怎么个二分法,有两种思路第一种是找两遍第一遍找1第二遍找0但是这样肯定超时所以还不如直接找相邻的01串或者10串具体查找方法是先将所有串赋值为0这样就能得到1的总个数,然后将所要求的区间全赋值为1其他赋值为0。设nu...

2017-09-25 16:02:00 129

转载 codeforces 862 C. Mahmoud and Ehab and the xor(构造)

题目链接:http://codeforces.com/contest/862/problem/C题解:一道简单的构造题,一般构造题差不多都考自己脑补,脑洞一开就过了由于数据x只有1e5,但是要求是1e6,而且我们知道3个数可以组合成任意数也就是说n-3的数从1~1e5直接任意找然后使得其总xor为sum当sum=x时(定义Max=1<<17 > 1e5...

2017-09-20 15:31:00 93

转载 hdu 6215 Brute Force Sorting(模拟)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6215题解:类似双链表的模拟。#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int M = 1e5 + 10;...

2017-09-19 10:37:00 76

转载 codeforces 842 D. Vitya and Strange Lesson(01字典树+思维+贪心)

题目链接:http://codeforces.com/contest/842/problem/D题解:像这种求一段异或什么的都可以考虑用字典树而且mex显然可以利用贪心+01字典树,和线段树差不多就是比较节点总数和有的数字数比较有限向左边转移。然后这个异或其实可以利用一个数num与一个一个的x异或然后求异或的mex也是容易的只要判断当前二进制位是1那么左右节点拥有的数字数互...

2017-09-13 10:52:00 138

转载 hdu 4825 Xor Sum(01字典树模版题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4825题解:一到01字典树的模版题,01字典树就是就是将一些树用二进制放到一个树上这样可以方便对整体异或处理。#include <iostream>#include <cstring>#include <cstdio>us...

2017-09-12 16:59:00 89

转载 poj 2778 DNA Sequence(ac自动机+矩阵快速幂)

题目链接:http://poj.org/problem?id=2778题解:像这种能够找到长度为m的不包含子串的串有几种可以考虑用邻接矩阵,就是考虑从每一点出发走一次能够到达的位置,那么走两次能到达的位置就是矩阵的2次幂以此类推。于是可以利用自动机来得到矩阵然后就是矩阵快速幂。#include <iostream>#include <cstring...

2017-08-11 11:43:00 84

转载 codeforces 626 G. Raffles(线段树+思维+贪心)

题目链接:http://codeforces.com/contest/626/problem/G题解:这题很明显买彩票肯定要买贡献最大的也就是说买p[i]*(num[i]+1)/(num[i]+a[i]+1)-p[i]*num[i]/(num[i]+a[i])的最大值,当然这个最大值时随时改变的所以要用线段树来维护,先不考虑加彩票减彩票,可以先一开始for一遍全部的彩票先买好,...

2017-08-09 14:58:00 103

转载 hdu 2615 Division(暴力)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2615题解:挺简单的暴力枚举,小小的分治主要是看没人写题解就稍微写一下#include <iostream>#include <cstring>#include <cstdio>#include <algorithm&gt...

2017-08-08 23:22:00 104

转载 hdu 6092 Rikka with Subset(多重背包)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6092#include <cstdio>#include <iostream>#include <cstring>using namespace std;const int maxn = 1e4 + 5;int b[maxn...

2017-08-08 18:59:00 77

转载 codeforces 688 E. The Values You Can Make(01背包+思维)

题目链接:http://codeforces.com/contest/688/problem/E题解:设dp[s1][s2]表示s1状态下出现s2是否合理。那么s1显然可以更具01背包来得到状态。首先看一下转移方程if(dp[i-a[k]][j]) => (1)dp[i][j]=dp[i-a[k]][j], (2)dp[i][j+a[k]]=dp[i-a[k]][j]解...

2017-08-03 23:34:00 117

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除