摘要: 点击打开链接 题意:给n个数,q次询问,(L,R)区间内的逆序数。 思路: 区间dp 代码一: 思路二: dp[i][j], 先求出每个i为起始位置的逆序数, dp[i][j] = dp[i][j-1]; 再移动i,求出任意(L,R)区间内的逆序数。 dp[i][j] = dp[i+1][j]; 代 阅读全文
posted @ 2017-02-21 20:32 _yxg123 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 点击打开链接 题意: 给你n个数,你每次可以选择删除去一个数x,但是等于x+1和等于x-1的数都得删去 你每一次操作可以得x分 思路一: dp[i]表示到i后能够得到的最大分数 dp[i]=max(dp[i-1],dp[i-2]+a[i]*i; 代码: 思路二: 用计数排序统计数字的个数 dp[ i 阅读全文
posted @ 2017-02-21 17:11 _yxg123 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 点击打开链接 思路: 区间dp,类似于石子合并的问题,每次枚举合并的点就好了 代码: 阅读全文
posted @ 2017-02-20 22:29 _yxg123 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 点击打开链接 RE了一辈子... 思路:树上dp,直接dfs找到每个点v的子节点有多少, 那么对答案的贡献是 w*abs((n-size[v])-size[v]); RE代码: 阅读全文
posted @ 2017-02-20 21:41 _yxg123 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 点击打开链接 题意: 有两排数,AB依次拿,每次只能从第一/二排最左边和最右边拿 问你A拿的和是多少,假设两个人都是很聪明的 思路: http://blog.csdn.net/shuangde800/article/details/10277697 出现聪明这个词的时候,这种题不是博弈论就是dp吧 阅读全文
posted @ 2017-02-20 19:55 _yxg123 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 点击打开链接 思路:01背包,跑容量为m-5,物品为n-1件的01背包。贪心:用剩下的5元买最贵的 转移:dp[i][j] = max(dp[i-1][j],dp[i-1][j-c[i]]+c[i],滚动优化一下就好了 代码: 阅读全文
posted @ 2017-02-20 19:13 _yxg123 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 点击打开链接 思路: lis的变形,唯一不同的是条件a[i] - i > a[j] - j + 1,i>j。因为要确保这两个元素之间能插入i - j + 1个元素 阅读全文
posted @ 2017-02-20 18:46 _yxg123 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 点击打开链接 思路:树上dp,每个点的权值为d[i]+G[i].size(),然后选择最小的删除就好 代码: 阅读全文
posted @ 2017-02-20 16:25 _yxg123 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 点击打开链接 题意:给定一张有坏点的网格图,求左上角走到右下角的两条不相交路径的方案数 思路: 考虑如果只有一条路该怎么做 显然 DP 就行了 那么我们定义 Calc ( x 1 , y 1 , x 2 , y 2 ) 为从 ( x 1 , y 1 ) 走到 ( x 2 , y 2 ) 的方案数 如 阅读全文
posted @ 2017-02-20 15:32 _yxg123 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 点击打开链接 题意: 游戏园里有N个区域,有M条边连接这N个区域,有K个要访问的景点。对于每个景点告诉你这个景点所在的区域,要访问这个景点需要等待一定时间,如果没有FastPass,等待时间有Ti,否则等待时间为FTi,接下来的Ni,表示有Ni个区域可以得到这个景点的FastPass,问从区域1出发 阅读全文
posted @ 2017-02-20 14:14 _yxg123 阅读(99) 评论(0) 推荐(0) 编辑