![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
解题报告
文章平均质量分 54
AndyTeen
别在黎明前被冻死了
展开
-
poj1050
解题思路:枚举每一行从i到j的和,共有n*(n-1)/2个区间,每个区间在列的方向上做dp,即转化为一维的最大连续序列和的问题,共计n*(n-1)/2次dp。dp[i]=max(dp[i-1],dp[i-1]+a[i]);取最大的dp值即为答案。#include using namespace std;int n;int afx[100][100];int state[100]原创 2014-12-19 17:40:35 · 466 阅读 · 0 评论 -
一道树形dp的题目:个人赛第二场G题
description 有N个房间,依次标号为1~N号,每个房间中都有一定的金币,现在你需要做的就是到房间里去抢金币。 有些房间是被依次嵌套或包含的,每个房间u都有一个父亲房间f,意思是u直接被f嵌套,而f成为u的父房间,u成为f的子房间,若f为0,表示当前的u为最外层的房间,1号房间一定是最外层的房间。 你具有超能力,能够在任意时刻进入任何一个房间,然后把这个房间的金币一次性拿光(你不拿光的原创 2015-07-17 21:45:37 · 639 阅读 · 0 评论 -
Codeforces Round #323 (Div. 2) D.Once Again...(582B)
1题意2思路3个人注意4代码1题意 给出一个长度为n(1<= n <= 100)的序列,使其重复t(1<= t <= 1e7)次后,求最长不减子序列的长度。2思路 序列重复t次后总长度高达1e9,如果暴力dp,即使是O(n)的算法也不可取。因此需要另辟蹊径。长度为n的最长上升子序列可以容易由dp求得。重复t次可以分解为:一次的增加长度为n的序列,共增加t次。如果我们能够由两个长度为n原创 2015-10-10 20:19:03 · 692 阅读 · 0 评论 -
hdu 5411 2015多校十1006 ~矩阵快速幂
题意: 给定n个碎片的转移关系,问最多使用m个碎片组成的不同的序列个数是多少。 思路: 容易想到dp的方法,以dp[i][j]表示长度为i以j号碎片结尾的不同序列的数量。那么dp[i + 1][k] += dp[i][j](j -> k 可以转移)dp[0][0] = 1;最后的答案即为整个dp[i][j]数组所有元素的和。但是一算复杂度,超时。 于是乎想到矩阵,关系原创 2015-08-30 18:33:48 · 593 阅读 · 0 评论 -
Hdu 5570 概率期望
题意思路个人注意代码题意有n个小球,他们的颜色可能是m种颜色中的一种。给出二维表s,第i个球颜色为第j种颜色的概率为s[i][j]/sum(s[i][k])(0<k<m).若某种颜色的球的个数为x,那么其对答案的贡献为x^2,求答案的期望值。思路概率期望类的问题,问题的关键在于将x^2的贡献转化为颜色相同的小球的对数(注意:(x,y),(y,x)算两对,(x,x)也算一对)。问题转化为求解n原创 2015-12-06 16:18:21 · 536 阅读 · 0 评论 -
poj 2175--指派问题
题意: n幢大楼,m个防空洞,给出每个大楼的人数和防空洞可容纳人数,以及大楼到防空洞费用的计算方式,给定一个方案,问是否总的费用最优(最小),若不是最优,给出一个更优的解。思路: 典型的指派类问题,大楼和防空洞分别做点,并新增源点s,汇点t,s向每幢大楼连一条容量为大楼人数,费用为0的边,每幢大楼向每个防空洞连一条容量为inf ,费用为相应费用的边,每个防空洞向t点连一条容量为防空洞容量,原创 2016-03-29 15:18:03 · 1036 阅读 · 0 评论 -
poj 1112 二分图染色+dp
题意: 给出n个人,和一些关系有向的关系,有向边a->b表示a认识b: 将n个人划分为两组,要求每组组内人必须互相都认识,同时要求两组人数差最小。思路: 可以知道的是必须有a->b,且b->a的关系存在时,a和b才能被分为一组。考虑反向建图,若a,b不能分为一组,则连一条a,b之间的无向边。现在就变成了一系列连通块,对于他们去做二分图奇偶染色,将每个连通块根据奇偶划分为两部分,这两部原创 2016-05-17 22:47:21 · 636 阅读 · 0 评论 -
HDU 5691 --tsp变型
题意: 有n(n<=16)个数字需要排列,其中一些的数字位置是给定的,问最后排列的ans值最大是多少。ans的定义是所有连续两个数字的乘积的和。思路: 完全排列复杂度n!,不可取。ans乘积的和具有最优子结构。按照tsp类似的方法设定状态dp[i][j]表示状态为i的情况下,最后选择第j个数可以得到的最优解。i状态的二进制位中为1的对应的数字排列在序列最前面。 其实这个状态信息量不小原创 2016-06-12 15:38:13 · 335 阅读 · 0 评论 -
HDU 5215 Cycle --- 奇偶环的判定
题意: 给出一个无向图,n<=100000,m <= 300000,判断图中是否有奇圈,是否有偶圈。思路: 对于奇圈的判定,可以利用二分图染色。若此图是二分图,那么其中一定不存在奇圈,若此图不是二分图,那必定存在奇圈。若原图不连通,则对每个连通分量分别做二分图染色 对于偶圈的判定,首先考虑所有圈必然在边双连通分量中(题中要求的圈不一定是简单圈),边双连通分量之间是不存在圈的(因为桥的原创 2016-07-19 21:56:33 · 1249 阅读 · 0 评论 -
hdu2196 树形dp
题意: 给出一颗带权树,求以树上每个点为起点可以到达的最大边权和。 思路: 树形dp的思想,将无根树转化为有根树,对于每个点来说,最长的一条路可能有两种情况,一是向下走,经过其某个子树。另一种情况是向上走,由其父亲延伸而来。 以dp[i][0]表示由i节点向下可以得到的最长边权和,dp[i][0] = max(dp[k][0] + value[k]),k为i的子节点。 一次dfs可以得到原创 2015-07-17 11:00:35 · 488 阅读 · 0 评论 -
Hdu 5119 HappyMatt Friends (2014年北京现场赛H题)
题意: 给定n个数(1<= n<= 40),选择其中的一些(选择的数量可以为0)作异或运算,求运算后的值大于给定的m的方法数。 思路: 对于每种方法,每个数只有选择或者不选择两种状态。因此方法总数为2 ^40。暴力肯定不行。采用类似背包的思想,设计状态dp[i][j] ,含义为在前i个数中选择任意个数后的异或和为j的方法总数。由于异或运算的性质。可知dp[i][j] = dp[i - 1][j原创 2015-07-12 19:34:23 · 570 阅读 · 0 评论 -
poj 1887解题报告
题目要求的是最长下降子序列的长度。长度为n的串的最长子序列长度必定存在最优子结构。证明:若序列{x1,x2x3...xn}的最长下降子序列为{y1,y2,y3,y4...yk},不妨假设yk=xm。则{y1,y2,y3...yk}也一定是序列{x1,x2,x3...xm}的最长子序列。否则,一定存在p>k,使得序列{x1,x,x3...xn}的最优解为p>k。与假设矛盾。因此,可以原创 2014-12-23 20:16:21 · 540 阅读 · 0 评论 -
zoj3865
zoj3865zoj3865解题思路: 首先这道题求的是起点到终点之间的最短到达时间。我们可以维护一个三维的状态(x,y,direct),其中direct是光标指向的方向,可以理解为机器人robot是有方向的。光标所在的方向即为当前位置robot所面对的方向。如此一来,每一秒钟对于robot可以有四种操作:朝着当前面对的方向前进一格,对应于题中按下一个按钮,机器人向对应方向移动原创 2015-04-15 13:49:57 · 734 阅读 · 0 评论 -
poj 1160
题意为给出n个村庄的坐标,问如何设立m个邮局,使得每个村庄离其最近邮局的总路程即总花费最小。思路:若只设立一个邮局,可知邮局设在村庄坐标中位数的位置是最优解。这个问题属于在n个东西中选出m个,求全局最优解的问题。自然想到dp。设立二维数组dp[i][j-1]表示i个邮局放入前j个村庄所需的最小费用。可得dp方程:dp[i][j]=min(dp[i-1][k]+cost[k+1][j]) (原创 2015-01-04 21:01:20 · 527 阅读 · 0 评论 -
poj 1625
poj 1625 题意: 现有一个奇葩的国家。总统不允许任何含有非法单词的句子出现。假定这个国家的句子长度固定为m。现给定大小为n 的字符集,和p个长度为min(m,10)的非法单词。任何包含非法单词的句子都是非法的。求所有合法句子的数目。 为了解决这个问题 我们先假定字符集{‘A’,’G’,’C’,’T’} 非法单词有2个原创 2015-05-12 13:06:57 · 1523 阅读 · 0 评论 -
poj 2778
这道题类似于poj 1625,只不过字符集变得更小,只有’A’,’G’,’C’,’T’四个字符。相应的,序列的长度大幅度的增加至2*10^9。假设序列长度为m,总的trie图节点数为sz,原先的dp方法的复杂度为O(m*sz^2)。若仍采用dp的方法,那么总的操作数达到10^11,肯定不可取。因此需要其他的方法。矩阵可以解决这个问题。求出trie图的邻接矩阵,两点之间的权值为这两点间的边数,矩阵中的原创 2015-05-17 00:01:39 · 537 阅读 · 0 评论 -
hdu2457
hdu 2457 题意: 依旧是DNA序列的问题。给出一些致病的基因片段(仅由’A’,’G’,’C’,’T’组成),和一个DNA序列T,可以在序列T上做修改操作,修改某一个碱基为另一个碱基记作一次修改操作。问你最少修改多少次使得序列T不包含任何已给出的致病基因片段。 思路: 多串匹配,依旧是AC自动机。关于trie图与DNA序列的关系可以参考poj 1625原创 2015-05-18 23:22:02 · 1005 阅读 · 0 评论 -
Hdu 5113 Black and White ---2014北京现场赛B题
题意: 给出一个小矩阵(矩阵小于 5 * 5),要求用给定数量的颜色(颜色数量小于矩阵格子数)去涂。要求相邻的格子颜色不同,给出了每种颜色应当使用的次数。输出任意一种可行的方案。 思路: 暴力地来想,最多的状态总数为25^25。采用搜索的方法,存在一个重要的剪枝。 当用一种颜色来涂一个M个格子的矩阵时,要保证相同颜色不相邻,最多可以涂floor((M + 1)/2)个格子。每次搜的时候,某种原创 2015-07-12 19:47:46 · 540 阅读 · 0 评论 -
Hdu 5115 ---区间dp(2014北京现场赛D题)
题意: 现在有n(2 <= n <=200)个狼排成一排,每个狼有其初始的攻击力。此外,每只狼还对其相邻的两只狼产生攻击力加成的效果。每只狼的当前攻击力等于自己的初始攻击力加上其相邻的狼的加成。 现在要杀狼,但每杀一头狼,都会承受该狼当前的伤害,问杀完这n只狼最少承受的伤害总值是多少? 思路: 由于每个阶段的决策不同,对于杀某一头狼所承受的伤害也可能不同。伤害加成方式类似于炉石传说的火舌图腾。原创 2015-07-12 19:02:08 · 510 阅读 · 0 评论 -
HDU 5726-GCD
题意 给出n(n<=1e5)个数(a[i]<=1e9),q(q <= 1e5)个查询,对于每个查询(l,r),输出a[l]到a[r]之间的数的gcd ansa,以及原数组中gcd等于ansa的区间个数。思路 对于第一种查询,可以使用st表在O(1)的时间内给出答案。对于第二种查询,考虑以i为左端点的区间,其gcd一定随着j的增大而递减。更准确的描述是呈阶梯状下降的。因此可以采用二分的思想,原创 2016-07-20 15:40:39 · 591 阅读 · 0 评论