自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 POJ-3621: Sightseeing Cows【最优比率生成环】

Sightseeing CowsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 10276 Accepted: 3510DescriptionFarmer John has decided to reward his cows for their hard

2017-05-23 19:33:04 569

原创 SWJTU oj 2387 Magic Maze(DAG 求最长路)

这个题是给出一个有向无环图。那么就考虑一个DP,dp[i]表示 i 结尾的路径最大值。因为图是有向无环图,那么至少存在一个起点和终点。对于起点 u 来说:dp[u]=0;那么就倒着推,对于一个普通点 u ,可以又 u 的前驱点转移而来,一步步推到起点。那么就记忆化搜索来写,很简单。#include#include#include#include#include#i

2017-05-16 10:20:48 529

原创 BZOJ 3679 数字之积 (数位DP)

一个数x各个数位上的数之积记为f(x) 求[L,R)中满足0还是老套路,这里加一维表示前POS位的数字乘积为sum.然后就是注意前导0的问题,可以多开一位纪录前导0 ,也可以在记忆化的时候判断一下,感觉还是有很多细节没有想到。还有一点就是:乘积要离散化,用map来离散化。#include#include#include#include#include#

2017-05-11 11:03:32 482

原创 十四届浙江省赛 E题(数位DP)

题意不说了,已经讨论过了。如果知道数位DP的话,那么这个题就是数位DP的裸题,而且还属于比较简单那种......dp[i][j],表示i位,前i 位的权值和为 j这个题有一点要注意的就是前导0也有算花费。我在DFS中,只有在搜索到最后一位时,才维护了前导的权值和。因为要保证整个DFS 的有效性,返回的是第pos位,权值和为sum的总花费。#include#incl

2017-05-10 20:19:41 366

原创 HDOJ 4507 吉哥系列故事——恨7不成妻(数位DP)

题意: 在一定区间内和7无关的数字的平方和。如果一个整数符合下面3个条件之一,那么我们就说这个整数和7有关——1、整数中某一位是7;2、整数的每一位加起来的和是7的整数倍;3、这个整数是7的整数倍;

2017-05-10 18:32:35 370

原创 POJ 3252 Round Numbers (数位DP入门)

题意:求【l,r】 区间内多少个Round Numbers,Round Numbers指的是这个数的二进制数中0的个数大于等于1 的个数.那么数位DP就很好搞了。但是有一个细节,在前面的做的题中前导0其实是没有什么影响的,但是对于有些题,比如这个题,前导0就有影响。因为要纪录0/1的个数,那么对于一个数的二进制数,首位肯定不能为0,那么就必须从第一个非0 的二进制位才能开始计数。那

2017-05-09 19:57:56 294

原创 CF 55D Beautiful numbers (数位DP入门)

题意是:求 [l,r] 区间内完美数的个数,完美数的定义:这个数能是所有位数的倍数,比如42,42是4的倍数,也是2的倍数。考虑数位DP,LL dfs(int pos,int now,int lc,int limit) 表示pos为,这个数为now,所有位数的LCM为lc,上限为limit。那么边界的情况就是 now%lc ==0才返回1注意数据的输入和输出要用long long

2017-05-09 19:02:42 435

原创 HDOJ 3652 B-number(数位DP入门)

题目求: n以内的是13的倍数,且含有13子串的数的个数。思考一下这个题:首先考虑是否含有13,那么就在DP上加一位sta,表示出现过13这个子串。再来考虑是13的倍数这个条件:那么就再开一维,表示前 i 个数对13的余数:如果多加了一位数 j ,那么余数就为 (i*10+j)%1,枚举到边界,当只有一位数是,余数为0 ,那么就是13的倍数。那么在边界时要满足两个条件:出现13

2017-05-09 16:31:50 359

原创 HDOJ 2089 不要62(数位DP入门)

题意:求【l,r】区间内有多个数满足不含62和4.这个题暴力也可以做因为范围比较小。但是如果数的上限开到1e9或者更大就GG了。所以学习一种新的DP----数位DP。也没学得怎么样。我的理解是:数位DP是按照构造数的方式,然后对数的每一位进行DP;举一个简单的DP;dp[i][j]:表示的是第 i 位,前一位为 j 的满足题意的条件.这里为什么跟前一位相关,因为不能

2017-05-09 16:22:22 361

原创 BZOJ 1417: Pku3156 Interconnect (期望DP)

Description给出无向图G(V, E). 每次操作任意加一条非自环的边(u, v), 每条边的选择是等概率的. 问使得G连通的期望操作次数. (|V| Input第一行两个整数N,M 1Output输出一个小数,表示新修道路条数的期望值,保留六位小数.中文题面善解人意。先用并查集处理一下联通块的问题。就按照期望来求:设 v 为

2017-05-01 16:18:00 347

原创 POJ-2976:Dropping tests【01分数规划】

Dropping testsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 12059 Accepted: 4212DescriptionIn a certain course, you take n tests. If you get ai out of

2017-04-27 20:08:34 352

原创 POJ-3757: Simple Distributed storage system【简单01分数规划(二分)】

Simple Distributed storage systemTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 2144 Accepted: 392DescriptionJack helps his mentor build a simple distr

2017-04-26 16:51:32 388

原创 十一届院赛 I题 我要10个G

题目给出n个点,只有n-1条边,而且都是连通的,那么就可以得出是一棵树。那就变成了裸的树剖。套模板,完事。#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define maxn 300050struct edg

2017-04-26 10:11:20 296

原创 十一届院赛 J题 寻找大黄

最暴力的做法比赛的时候都已经写出来了,但是还是超时了。下来说要矩阵快速幂优化。那么推一推就出来了,也是很简单。#include using namespace std;#define ll long long#define INF 0x3f3f3f3fstruct Matrix{ double m[205][205];}M;int n,sum[205];Matr

2017-04-25 11:05:59 383

原创 十一届院赛 K题 志愿者好萌哇

题意就不说了.直接考虑dpdp[i][j][k]表示前 i 种物品,选取 j 个使用 k 张优惠券的最小花费。想一想转移方程就很明显了:dp[i][j][k]=min(dp[i-1][j][k],min(dp[i-1][j-1][k]+p[i],dp[i-1][j-1][k-1]+c[i]));但是要过这个题还要加一个优化。如何 k>=m,也就是优惠券大于需要的买的东西数,

2017-04-24 21:17:46 428

原创 HDOJ 2859 Phalanx (基础DP)

题意:给出一个 n*n 矩阵,求出最大长度的矩阵使矩阵内部关于反对角线对称。比如:3abxcybzca答案就是 3,以斜对角线对称。思路:一看就是一个DP,那么考虑状态,如何标记一举行,(i,j,len),表示起点在 i ,j,长度为len 的矩形,对于一个矩形来说,可以由两个长度小 1 的子矩形合成来,令dp[i][j][len]为起点在 i

2017-04-21 18:53:52 308

原创 POJ-3463: Sightseeing 【最短路次短路及条数】

SightseeingTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 9247 Accepted: 3242DescriptionTour operator Your Personal Holiday organises guided bus trips

2017-04-19 20:56:51 453

原创 POJ 1661 Help Jimmy (DP)

"Help Jimmy" 是在下图所示的场景上完成的游戏。 场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。 Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开始继续下落。Jimmy每次下落的高度不能超

2017-04-19 20:39:34 327

原创 HDOJ 1074 Doing Homework (状压DP)

题意:给出 n 种作业,然后给出每种作业交作业的截至日期,和完成这项任务需要的时间。如果在截至日期后交作业,那么每晚一天就要扣一分。求出扣分最少为多少,并且打印最小扣分完成作业的方案,n 看一下 n,很小只有15,最开始想的就是暴力打印完成这 15 项作业的所有方案,那么就是 15! ,就明显T了。那么考虑一下DP,开一个数组,dp[i] ,表示完成 i 种课程的最小扣分,但是还是

2017-04-17 21:22:05 282

原创 POJ-3013: Big Christmas Tree(dij,spfa)

最短路

2017-04-17 20:03:20 449

原创 Intersecting Lines (计算几何)

题意:给你四个点叫组成两条直线判断这两条直线的关系模板:#include #include #include #include #include using namespace std;struct point{ int x,y;};int gcd(int a,int b){ if(b==0) return a; return gcd(b,a%b

2017-04-17 16:46:46 335

原创 POJ 3186 Treats for the Cows (区间DP)

题意:给你  n 个数字,类似于双端队列,每次只能取首尾的数字,对于第 i 次取得的数字的价值为 i*a[k] ,求取完这 n 个数字最多能得到多少价值。很有意思的一个题,先考虑贪心,因为每次选择的时候只能取头尾的数字,而且要使最后价值和最大,那么对于先取的数,肯定是值越小越好,那么就按照先取小的贪心来做。啪啪啪敲好,错了,脸有点痛。考虑区间DP。对于 区间 l ,r 的价

2017-04-16 16:22:12 311

原创 poj 2318(计算几何) 叉乘

题目链接: 点击打开链接题意:给你一个矩形,然后矩形中有许多分割线,把矩形分割成许多区域,给你一些点,问你分别在每个区域里面有多少个点这个题的重点是叉乘可以判断点在直线的左边直线的右边还是在直线上,ul叉乘pl结果大于零则p点在直线ul的左边,等于零在直线上,小于零在直线的右边。代码:#include #include #include using namespace s

2017-04-16 15:44:21 390

原创 hdu 1007(计算几何)

题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1007题意:在平面上给你很多点,任意两点之间的最短距离。分析: 一眼看到这个题想到暴力,二重循环,然后一看数据范围果断放弃,然后在网上查了一下就有一个方法可以在nlog(n)的方法求出,分治的思想,我现在听过分治就只在分治排序的那里听过。这个算法的原理是我们先对点进行按x大小进行排序,然后找

2017-04-15 20:59:13 364

原创 light oj 1422 Halloween Costumes (区间DP)

题意:这里有 n 个变装晚会,有一个人要穿这着衣服去参加晚会,已知,这个人在这 n 个舞会中要穿几号衣服,求这个人在参加完这个舞会,最少需要多少套衣服。但是一件衣服如果脱了,就不能再使用,如果还需要这个编号的衣服,就只有使用一套新衣服。这个人在参加舞会的时候,只需要最外面那件衣服是该编号就可以,里面可以穿很多衣服。区间DP:令 dp[i][j], 是完成i 到 j 区间的最

2017-04-15 14:23:26 337

原创 Just another Robbery LightOJ - 1079

题意:有n个银行要去抢劫,每个银行有两个值,一个是银行的钱,第二个是抢这个银行被抓住的概率,现在给出抢银行时的最大忍受的被抓住的概率,求最多能抢多少钱,银行之间被抓住是独立事件。最开始因为每个概率是两位小数,那么就扩大100倍,按照概率来做背包,但是在推转移的时候发现,这并不是线性关系,这里扩大100倍就会出现问题,所以不能用概率来做背包。那么就只有换一种思路。对于银行,还有一个值就是

2017-04-11 20:33:51 331

原创 2017川大校赛A题

题意就不说了,我们也错了那么多次,这个题有两个问,其实比较难的是第一个问,但是刚好第一个问我在上一周曾经问过龙哥,那么第一个问就秒出答案,对于第一个问的精度问题,当暴力算时n是小于10的,答案要求保留前6位小数,没问题。然后第二个问就是一个比较简单的概率DP。题目求抽m次刚好抽到n张卡的概率,那么对于第m-1次,其实只有n-1张卡,这是一个关键的问题。令一个dp[i][j] 表示抽 i 次

2017-04-11 10:12:34 565

原创 HDOJ 3853 LOOPS(DP期望入门)

题意:r*c 的方格地图,起点在 (1,1),终点在(r , c),方向只有三种:呆在原地,向右走,向下走,每走一步花费为 2 。 给出每个点三种方向走的概率,求出从起点到终点走的期望花费。 既然求期望,那么就倒着走。 设dp[i][j]是当在(i , j)点时,到达终点的期望步数,因为期望的线性关系,期望可以由若干个子期望求出,那么对于(i,j) 点的三种方向,下一步可能走到点为:   (i

2017-04-01 11:02:00 608

原创 Codeforces  148D Bag of mice(概率DP入门)

题目很简单:公主和龙在玩游戏,一个袋子里有 w 只白老鼠和 b 只黑老鼠,公主先从袋子中取一只老鼠,然后龙再取,然后会有一只老鼠等概率的跳出来,然后再由公主取,谁先取到白老鼠谁就获胜,取老鼠也是等概率的,如果取到最后都没有人取到白老鼠,则龙赢,求公主赢的概率。PS:公主先取。 概率正在求,期望倒着求。 那么就正在推下: 设dp[i][j],是公主在面对这个袋子里有 i 只白老鼠,j 只黑老鼠的

2017-04-01 10:39:30 534

空空如也

空空如也

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

TA关注的人

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