随笔分类 - ---动态规划---
摘要:题目链接:poj 1991 Turning in Homework 题意: Bessie要交作业,现在知道每个教师的位置,假设都位于X轴上,每份作业都有一个最早交的时间,知道公交车站位于坐标B的对面,假设他每走一个单位耗费时间是1,求他交完作业到达公交车站那最少的时间是什么? 题解: 思想比较好,下
阅读全文
摘要:题目链接:hdu 5117 Fluorescent 题意: 有n个灯,m个开关,每个开关能控制一些灯的状态,即关闭的打开,打开的关闭。一开始灯全部是关闭的。 现在有个人去操作这些开关,显然会有2^m次组合。 现在问这个人操作完这些开关后,亮着的灯的期望E(x) 但是题目要求输出的是E(x^3)*2^
阅读全文
摘要:题目链接:hdu 5115 Dire Wolf 题意: 有n只狼,每个狼有一个攻击力ai,每只狼能给相邻的狼增加攻击力bi,如果这只狼死了就不能给周围的狼增加攻击力了。 问如何打狼,使得受到的伤害最小。 题解: 考虑区间dp,dp[i][j]表示打死i~j之间的狼的最小伤害。 然后转移方程看代码。
阅读全文
摘要:题目链接:hdu 4055 Number String 题意: 给你一个长度为n的指定的升降序列,问有多少种排列,符合这样的序列。 题解: 训练赛的时候没想出来,大概这种排列的dp需要转换一下思维吧。 考虑dp[i][j]表示前i个数只用1~i,结尾为j。 然后就有 如果s[i - 1]是' I '
阅读全文
摘要:题目链接:Codeforces Round #433 (Div. 1) D. Michael and Charging Stations 题意: 一个人每天要加油,1种为1000,1种为2000,如果付全额,会得到10%的回扣放在卡上。 如果卡上有剩余的回扣,可以拿来抵现金。问n天最少需要花多少钱。
阅读全文
摘要:题目链接:Educational Codeforces Round 26 D. Round Subset 题意: 给你n个数,让你选其中的k个数,使得这k个数的乘积的末尾的0的个数最大。 题解: 显然,末尾乘积0的个数和因子2和因子5的个数有关。 然后考虑dp[i][j]表示选i个数,当前因子5的个
阅读全文
摘要:题目链接:hdu 6149 Valley Numer II 题意: 给你N个点,有k个为高点,其他为低点,现在这N个点有m条边,问你最多能组成多少个两个高点一个低点,低点和两个高点都有边相连这样的状态。 每个点只能出现在一个状态里面。 题解: 考虑将高点进行状态压缩一下。那么枚举每一个低点,看看能对
阅读全文
摘要:题目链接:hdu 6156 Palindrome Function 题意: 给你一个L,R,l,r,问你在[L,R]内在[l,r]进制下有多少数是回文数,然后算一算贡献。 题解: 由于答案和该回文数的最高位有关(因为前导0不算)。 考虑dp[i][j][k],表示在i进制下,当前考虑到第j位,该数字
阅读全文
摘要:题目链接:hdu 6125 Free from square 题意: 从不大于n的所有正整数中选出至少1个且至多k个使得乘积不包含平方因子。 题解: 很容易想到,选出来的数所包含的每个质因子只能有一个。 那么我们对所有的质因子进行状压dp,500以内大概有100个质因子。 那么就成了2100,显然不
阅读全文
摘要:题目链接:hdu 6086 Rikka with String 题意: 给你n个只含01的串,和一个长度L,现在让你构造出满足s[i]≠s[|s|−i+1] for all i∈[1,|s|] ,长度为2L,并且包含给出的n个串,问能有多少种这样的串。 题解: 建立两个AC自动机,一个用来放正串,一
阅读全文
摘要:题目链接:hdu 6092 Rikka with Subset 题意: 给你n和m,让你找一个字典序最小的含有n个数的A序列,使得A序列的和为m, 然后给你m+1个数,是A序列所有的集合的和的个数,然后让你找出这个A序列。 题解: 和题解一样的思想。 1 #include<bits/stdc++.h
阅读全文
摘要:题目链接:hdu 6078 Wavel Sequence 题意: 给你a,b两个序列,让你在a,b中找出公共子序列p,满足p1<p2>p3<p4...,问有多少种方案。 题解: 考虑dp[i][j][2],表示a序列选择第i个数,b序列选择第j个数,该数和上一个数的关系是:0为小于,1为大于,的方案
阅读全文
摘要:题目链接: Codeforces Round #426 (Div. 2) D. The Bakery 题意: 给你n个数,划分为k段,每段的价值为这一段不同的数的个数,问如何划分,使得价值最大。 题解: 考虑dp[i][j]表示划分为前j个数划分为i段的最大价值,那么这就是一个n*n*k的dp, 考
阅读全文
摘要:题目链接:hdu 5745 La Vie en rose 题意: 给两个字符串 a 和 b ,b可以进行变换,规则是可以任意交换相邻两个字符的位置,但是不可以有交叉(例如3和4交换,5和6交换 互不影响,但是2和3,3和4就不可以)。求a中每一个位置能不能匹配b或b变换得到的子串。 题解: 考虑dp
阅读全文
摘要:题目链接:hdu 4758 Walk Through Squares 题意: 给你一个n*m的网格,现在你要从(1,1)走到(n,m),每次只能向右走或者向下走,走完后会形成一个包含R,D的序列,这个序列必须要包含题目给出的两个字符串,问有多少种方案。 题解: 由于要从(1,1)走到(n,m),所以
阅读全文
摘要:题目链接:hdu 4057 Rescue the Rabbit 题意: 给出一些模式串,每个串有一定的价值,现在构造一个长度为M的串,问最大的价值为多少,每个模式串最多统计一次。 题解: 由于每个模式串最多统计一次,所以我们要考虑记录是否已经存在该串。 考虑dp[i][j][k]表示当前考虑到i的长
阅读全文
摘要:题目链接:hdu 6035 Colorful Tree 题意: 给你一棵树,每个节点有一种颜色,现在让你求所有点对的路径上不同的颜色数量的总和。 题解: 下面是官方题解: 单独考虑每一种颜色,答案就是对于每种颜色至少经过一次这种的路径条数之和。反过来思考只需要求有多少条路径没有经过这种颜色即可。直接
阅读全文
摘要:题目链接:hdu 5816 Hearthstone 题意: 牌堆里有 N张 A类卡,M张 B类卡 A类卡能让你从牌堆里抽两张卡 第 i张 B类卡能让你对对手造成 x_i点伤害 刚开始从牌堆抽 1张牌,并且对手有 P点生命值 问一回合内打倒对手的概率是多少 题解: 利用枚举子集的状态转移,求出手上能拿
阅读全文
摘要:题目链接:hdu 5758 Explorer Bo 题意: 给一棵n个点的树,每次任选两个点,然后覆盖两点间的所有边,要求以最少的次数覆盖所有的边,在保证次数最少的情况下要求覆盖边的总次数最小 题解: 详细题解传送门 1 #include<bits/stdc++.h> 2 #define F(i,a
阅读全文
摘要:题目链接:Codeforces Round #424 (Div. 2) D. Office Keys 题意: 在一条轴上有n个人,和m个钥匙,门在s位置。 现在每个人走单位距离需要单位时间。 每个钥匙只能被一个人拿。 求全部的人拿到钥匙并且走到门的最短时间。 题解: 显然没有交叉的情况,因为如果交叉
阅读全文

浙公网安备 33010602011771号