自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AC Challenge (ACM-ICPC 2018南京网络赛)

题目:click题意:给定n个题目,如果要AC第i个,那么需要先AC指定的pj个题目,获得分数为t*a[i]+b[i],问最大获得的分数是多少。状态属性是MAX,但是由牵制条件,n个题目直接可以状态压缩。但是二维的dp显然会T和内存超限,改为一维的数组即可。#include<cmath>#include<iostream>#include<cstdio&gt...

2020-03-31 15:45:00 145

原创 HDU - 3681(bfs+状压dp+二分)

题目:click题意:给定一个n*m的地图,D表示不能走的地方,G补充满能量,问从F点走完所有的Y点最小的能量,走一个消耗一格能量。注意一下题目中所给的范围,Y+G的数量不超过15。在无数条路径中找出一条最佳路径,D是不能走的,所需点的数量顶多16个(加上了F点),其实可以发现本质就是一个TSP的变形问题,所需要的点也就这三个。bfs处理出每两个点的最短距离,建立一个新的图。之后直接状压dp...

2020-03-30 23:49:07 211

原创 HDU - 3001(三进制 状态压缩dp)

题目:click题目:给定m条路,每个点不能走过超过2次,走完n个点最小花费。n的范围很小,走完n个点的路有很多条,可以枚举起点或者终点作为一个状态,由于每个点的次数不超过2,三进制状态压缩。#include<cmath>#include<iostream>#include<cstdio>#include<cstring>#includ...

2020-03-27 12:51:45 374

原创 POJ - 1185 and POJ - 3254(经典状压dp)

题目:click题意:在一个给定的字符串地图里放炮兵,炮兵的攻击范围,上下两格,左右两格,H的地方不能放炮兵,炮兵相互之间攻击不到,问地图最多放多少个炮兵。写了挺久有些细节没注意。。。。首先分析题目,m范围可以进行状态压缩,对单独一个网格进行分析,当是P的时候可以进行放或者不放,放的话我需要考虑上下左右的两个格子都没有被放过炮兵,一开始想以当前格点为右下的顶点最多多少个,状态转移有问题,状态枚...

2020-03-26 12:00:57 103

原创 POJ 2411(轮廓线dp or 状态压缩dp)

题目:click题意:给定一个长,宽为n,m的矩阵,放满1*2的矩形小块问有多少种方法填满。范围很小,轮廓dp可以做。k5k4k3k2k1状态改写为如上k5k4k3k2k1去表示,1表示这个格子已经放了,0表示没放。(代码中的状态表示也是这个顺序)什么是轮廓线?图中的红色线就是边缘线,由此来进行状态转移。我们对每一个格子进行状态的分析,我们从左上...

2020-03-24 16:55:59 481

原创 POJ - 2923(状压dp+背包)

题目:click题意:每次都有两辆车子运货,但每辆车子都有一个运货重量的上限,问最少多少次把所有货运完。n的范围很小,可以考虑状态压缩,一开始并没有想到分两辆车不同的情况而是压缩在一块去对dp,发现复杂度会爆炸,可以先考虑一辆车一次能运多少物资,把可能的状态写出来与另外一辆的所有可能状态组合,得到的状态都是正好只能使用一次,贴合01背包。dp[i]:达到状态i 最小需要的次数。#inclu...

2020-03-20 16:46:13 218

原创 HDU-3237(状压DP)

题目:click题意:给定n个书本的高度,若一个区间有连续的高度相同则示为一个混乱度(只有一个也占一个混乱度),告诉你能拿k本书之后放回去,问最小混乱度。题目中说明了书的高度25-32,加上n和k的大小,可以进行状态压缩dp,再来观察每一本书,当到第i本书的时候我们可以选择拿或者不拿,将25-32压缩状态,由于每次拿第i本书的时候需要考虑到前一本书的状态,再设置一个最后的书本高度,dp[i]...

2020-03-19 00:13:14 243

原创 Codeforces Round #627 (Div. 3) F. Maximum White Subtree E. Sleeping Schedule

题目:click题意:给定一棵树,节点只为黑或者白,问每一个节点的的子树(连通块)中max(白节点个数-黑节点的个数);把白节点的的值定1,黑的为-1,即计算价值最大,树形dp,联系子,父节点的关系,可直接以i为根进行dp,dp1[i]表示以i为父节点向下max(白-黑),先从下至上做一个dp1记录子节点的max;还有节点的父节点这边的最大连通块没有确定,val表示通过当前节点父节点得到的价...

2020-03-13 23:04:18 141

原创 HDU - 1438(状压dp or 递推)

题目:click1.由于需要三种或以上的槽深度,可以0~15的二进制去表示前i个槽的所拥有的状态,还需一个状态判断是否满足相邻的两个数差值是否等于3,直接dp即可。2.通过递推。分析题目,应为状态都比较少可以一个一个分析出来:差值为3的状态只有1和4相邻才能满足。从第i个入手,加入i后变为成功钥匙,加入i后没有变为成功钥匙两种情况。11:如果前i-1个已经构成钥匙,第i个可以为1 2 3...

2020-03-11 16:42:44 161

原创 HDU - 4272(贪心 模拟 or 状态压缩dp)

题目:click题意:一个栈,从上往下,栈顶元素可以和他下面的5个元素联系,若一个元素的值与栈顶相同那么这两个元素消失,问能否清空栈。1.看到n的范围,可以考虑用map模拟一下,可AC。2.用动态规划的思想去做进行状态压缩,会发现我们最多只需要考虑序号为 i 下面9个元素,因为下面4个元素可以被序号 i 上边的的元素消除。可以用2^10,...

2020-03-09 17:12:39 84

原创 HDU - 1561(树形dp+背包问题)

题目:click每个城堡被攻克,必须之前有一个特定的城堡被攻克,才能攻占这个城堡。形成了一种子节点与父节点的关系,联想到树形dp取解决。走子节点必先走其父亲节点,一次建树,若无则父亲节点为0;dp[i][j]:表示以i为节点,取j个城堡宝藏获得的最大值。#include<cmath>#include<iostream>#include<cstdio&gt...

2020-03-01 21:08:38 97

原创 单调队列优化多重背包

#include<bits/stdc++.h>using namespace std;typedef long long ll;ll dp[20010],que[20010],book[20010];int main(){ int n,m; scanf("%d %d",&n,&m); for(int i=0;i<n;i++) { int c...

2020-03-01 11:57:01 125

空空如也

空空如也

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

TA关注的人

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