- 博客(10)
- 收藏
- 关注
原创 POJ 1170 0-1背包变形
0-1背包变形题意: 有n个物品,每一种物品的属性是:唯一的数字代号,数量,价格。现在有s种优惠,意味着不同的物品搭配会比原来省钱,现在要问最少花多少钱把所有的物品买下。思路: 把物品当做0-1背包来考虑,即使是优惠组合也是0-1背包,那么可以直接暴力写了。#include <iostream>#include <cstdio>#include <cstring>#include
2017-09-25 19:29:16 329
原创 HDU 4055 计数dp + 排列组合
计数dp + 排列组合题意: 有一列数字,当第i数字比前一个数字大的时候就可以生成一个字符I,否则就是D,现在给出字符串,求出数列有多少种排列方式,注意字符串?代表比前一个数字大小都可以。思路: 此类题可以从当前第i数字是哪一个考虑。 定义:dp[i][j]dp[i][j] 表示第i个数字是j的组合数。那么当第i个字符串是‘I’,dp[i][j]=sum(dp[i−1][1]+..
2017-09-22 15:21:10 368
原创 zoj 3747 排列组合dp
排列组合dp题意: 现在要挑选n个士兵成为一个排列,从三个不同的军团之中,第一个军团最少u个人连续站在一起,第二个军团最多有v个士兵站在一起,问有多少种不同的挑选方式。思路: 对于最多和最少问问题尽量转化为最多的问题,比如第一个军团的限制条件,那么在求的时候转化为最多有i个人。 排列组合计数问题很容易从前一个状态推到当前的状态,定义:dp[i][0]dp[i][0] 表示第i个人是
2017-09-21 13:20:53 443
原创 CF B. Working out dp 递推
CF dp 递推题意: 给出nxm个数字矩阵,求出从左上角到右下角的最大权值和,权值就是数字,求出从左下到右上的最大权值和,当然两条路只能交叉一个位置,并且此位置上的权值不能算入和。求出两条路的最大权值和。思路:注意边界不能作为交叉位置。终极思想是枚举相叉位置,知道位置之后只需求出每一条路是怎么走的就行,很容易得出只有两种走法,别想太多,试试就知道。那么四种走法dp求出既可。#includ
2017-09-20 21:27:23 301
原创 51Nod 1304 字符串的相似度
1304 字符串的相似度题目来源:基准时间限制:1 秒 空间限制:131072 KB 分值: 320 给出一个字符串S,计算S同他所有后缀的相似度之和。例如:S = “ababaa”,所有后缀为:ababaa 6babaa 0abaa 3baa 0aa 1a 1S同所有后缀的相似度的和 = 6 + 0 + 3 + 0 + 1 + 1 = 11Input输入一个字符串S(1 <= L <= 10000
2017-09-13 22:29:56 336
原创 HDU 6205 贪心
贪心题意: 题意:给你若干堆牌,所有牌默认向下,每次从第一堆开始,将固定个数的牌翻上,然后下一堆继续,直到没有足够的牌翻上,然后你可以获得当前操作过的堆的所有牌。一开始你可以调整堆的顺序,把第一堆放到最后一堆,你可以重复这个操作,问你要重复多少次这个操作,才能获得最多的牌。思路: 拿牌的开始一定是a[i]>b[i]a[i] > b[i] ,那么就从这里开始拿,每次拿都会计算出一个结果,那
2017-09-11 21:49:10 294
原创 POJ 2135 网络流MCMF入门题
网络流MCMF入门题题意: n个点,m条边,现在要从1到n走两次,边只能经过一次,问最短的距离是多少。思路: 转化为网络流问题,对没一条边的最大流量为1,那么用次一次就是0,自然只能走一次。直接可以对f做出限制,相当于模板题,不过要注意的是sol.f和N,M的使用。#include <iostream>#include <stdio.h>#include <cstring>#inc
2017-09-09 21:11:22 306
原创 知道前序序列和后序序列求二叉树的个数+大数
知道前序序列和后序序列求二叉树的个数+大数题意: 给出一个二叉树的前序遍历和后序遍历,问有多少个满足这样结构的二叉树?思路: 直接画一个最简单的二叉树,比如根节点恰好只有一个儿子,那么写出前序遍历和后序遍历会发现,根据两个遍历结构无法判断二叉树根节点的儿子是左儿子还是右儿子,那么其实只要找出这样的结构有多少个就行了,那么答案就是2的多少次方。#include <iostream>#in
2017-09-09 09:16:28 1445
原创 HDU 5985 概率问题
概率问题题意: 有n种硬币,现在有一个方法可以得出一个或者一种lucky硬币,所有硬币抛下然后去掉背面朝上的,继续抛直到只剩一种硬币或者没有硬币为止。问每一种硬币成为lucky的概率是多少。思路: 若想知道在某一步只剩下第i种硬币的话,需要知道其它硬币已经没有的概率。定义:die[i][j]表示第i种硬币在第j次抛全部被去掉的概率,很容易得出(1−pk)cntdie[i][j] 表示第i
2017-09-07 22:06:53 555
原创 POJ 2411 状态压缩DP
状态压缩DP题意: 有n乘m 的棋盘,现在有1乘2的方块和2乘1大小的方块,问有多少种不同的组合方式。思路: 这道题有很多种方法可以做,轮廓线dp和插头dp、状态压缩都行,先讲一下状态压缩方法。大神的题解:http://blog.csdn.net/u013480600/article/details/19569291两种方块方的方式有横竖两种方式可以放置,状态压缩一般压缩到二进制中用01
2017-09-06 22:23:10 404
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人