- 博客(9)
- 收藏
- 关注
原创 HDU 3001 三进制状压dp
http://acm.hdu.edu.cn/showproblem.php?pid=3001题意:n个点m条边,每条边有个费用,可以选择任意起点和终点,求最多经过每个点两次,并且遍历每个点的最小费用n个点m条边,每条边有个费用,可以选择任意起点和终点,求最多经过每个点两次,并且遍历每个点的最小费用n个点m条边,每条边有个费用,可以选择任意起点和终点,求最多经过每个点两次,并且遍历每个点的最小费...
2019-04-30 18:00:49 163
原创 POJ 3311 状压DP+floyd
http://poj.org/problem?id=3311题意:n∗n的矩阵,d[i][j]表示点i到点j的距离,求从0出发经过所有点后回到0的最短路n*n的矩阵,d[i][j]表示点i到点j的距离,求从0出发经过所有点后回到0的最短路n∗n的矩阵,d[i][j]表示点i到点j的距离,求从0出发经过所有点后回到0的最短路题解:如果暴力枚举,那么需要n!的复杂度,所以想到用dp。如果暴力枚举,...
2019-04-30 13:02:59 102
原创 poj3254/洛谷P1896 状压dp
http://poj.org/problem?id=3254https://www.luogu.org/problemnew/show/P1896把这两题放在一起,解题思路差不多。以POJ的为例题意:给出n∗mn*mn∗m的010101矩阵, 111表示能放数字,000表示不能放数字,每个数字不能相邻,问方案数。题解:状压DP模板题。预处理出每一行的状态,压缩成十进制数。dp[i][j...
2019-04-29 23:30:40 163
原创 poj1185 炮兵布阵 状压dp
题目链接:http://poj.org/problem?id=1185题意: n∗mn*mn∗m 的矩阵, 字符PPP表示空地(能放炮台), 字符HHH表示山地(不能放炮台),每个炮台的攻击范围是它上下左右两格之内的所有格子(见题图),问最多能摆几个炮台。题解:状压dp。首先分析,炮台的约束条件:上下左右两格内不能有炮台。HHH表示 1,为不能放的点,PPP表示0,能放的点。将每一行的字符...
2019-04-29 22:41:36 116
原创 我的vim配置 (C++)
set nuset clipboard=unnamed,unnamedplusset tabstop=4set shiftwidth=4set softtabstop=4set autochdirset mouse=aset autoindentset smartindentset cindentset foldenableset foldmethod=manualcol...
2019-04-18 18:09:15 96
原创 牛客小白月赛13 小A的柱状图 (线段树求最值及其下标+二分)
https://ac.nowcoder.com/acm/contest/549/H题解:(正解单调栈),但是比赛的时候第一反应线段树二分所以就写了棵线段树维护区间最小值,并且记录最小值下标,然后从1~n开始二分,每次找到最小值后,再找这个最小值左右两边的区间最小值,然后再维护一个区间和就ojbk了,思路很简单#include<iostream>#include&...
2019-04-12 23:11:58 151
原创 最长公共回文子串 (manacher+hash+二分)
求两个字符串(记为s1,s2)的最长公共回文子串解法:先用mnanacher算法O(n)处理出 s1串的最长回文子串长度 L,那么最后的答案肯定是L,L-2,L-4 ~ 0,并且我们已经求出了 p[i] 数组(以i为中心的最长回文半径),用于后面二分答案的判断。这里有个坑点:二分时奇偶回文要分开二分。因为如何有2k+2长度的公共回文。肯定也会有2k长度的公共回文,但是不保证也有...
2019-04-09 00:30:16 778
原创 集合间最短路 (dij+二进制划分集合)
题意:有n个点,m条边,给出k个点,从k个点中选出两个点使得这两点间的距离最小,求这个最小距离。题解:把这k个点分成两个集合,按照该点 第 i 位是否为1进行划分,每次划分都要跑一次dij,这样循环跑logn次就能将所有点集情况都遍历到。#include<iostream>#include<algorithm>#include<cstdio>#incl...
2019-04-09 00:09:01 290
原创 dp之 不同的子序列个数
题目: 给出n个数, a1~an,要求出不同的子序列个数。比如(3 2 4 5 1),其中(3 2) (3 4 5)就是其中的子序列。题解:很容易想到要使用动态规划。设 dp[i] 表示 到 i 为止,不同的子序列个数, dp[i-1] 表示到 i-1 为止,不同的子序列个数那么dp[i] 肯定是由 dp[i-1] 转移得到,那么状态转移方程怎么写呢?试想,对于 a[i...
2019-04-06 10:23:31 1508
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人