2015年10月11日

Twenty Questions

摘要: 题意:有n个长度为m的二进制串,每个都是不同的。为了把所有字符串区分开,你可以询问,每次可以问某位上是0还是1。问最少提问次数,可以把所有字符串区分开来。分析:dp[s1][s2]: 表示提问的问题是s1集合,答案是s2时,还需要问几次才可以全部区分开当问题集合为{s1}时, 如果还不能区分所有答案... 阅读全文

posted @ 2015-10-11 22:43 积跬步、至千里 阅读(391) 评论(0) 推荐(0) 编辑

Headmaster's Headache

摘要: 题意:s门课程,现任老师有m个给出工资,和他们能教的课,现在有n个应聘的老师,给出费用和能教的课程标号,求使每门课都至少有两个老师教的最小花费分析:n个老师选或不选有背包的特征,n很小想到用状压,s1表示每门课至少有一个老师教的情况,s2表示每门课至少有2个老师教的情况起始状态是现任老师形成,dp[... 阅读全文

posted @ 2015-10-11 22:32 积跬步、至千里 阅读(347) 评论(0) 推荐(0) 编辑

Perfect Service

摘要: 题意:n个节点树,在一个节点放上一台服务器可以给相邻的其他各点提供服务且一个节点只能接受一台服务器,求使n个节点都被服务放的服务器的最小数量。分析:不算太难,状态想的差不多,但是考虑不全面状态方程写错了,要多练啊!!!状态好想,一个节点服务器放法有3中,放在自身,放在父节点,放在孩子节点 #i... 阅读全文

posted @ 2015-10-11 22:23 积跬步、至千里 阅读(270) 评论(0) 推荐(0) 编辑

Party at Hali-Bula

摘要: 题意:n个人参加party,给出n个人的工作关系树,一个人和他的顶头上司不能同时参加,party达到的最大人数并判断邀请的最大人数名单是否唯一。分析:树状dp入门dp[i][f],以i为根的子树,f=0,i不参加,f=1,i参加能达到的最大人数。i参加i的孩子不能参加,i不参加,其孩子参不惨加都行(... 阅读全文

posted @ 2015-10-11 22:06 积跬步、至千里 阅读(274) 评论(0) 推荐(0) 编辑

Another Crisis

摘要: 题意:给出一个树,当孩子节点为1的数量占孩子总数的T%时父节点变成1,求使根节点变成1需要叶子节点为1的最小数量。分析:简单的树状dp,dp[i]以i为根的子树所需的最小数量,取它所有子树中最小的T%,即可,分析时觉得这个方法会超时,可能题目数据太水。#include #include #inclu... 阅读全文

posted @ 2015-10-11 22:00 积跬步、至千里 阅读(301) 评论(0) 推荐(0) 编辑

Cutting Sticks

摘要: 题意:l长的木棒,给出n个切割点,每切一次的费用为切得木棒的长度,完成切割的最小费用。分析:区间dp入门,区间dp的特点,一个大区间的解可以转换成小区间的解组合起来,每个切割点的标号代表边界。#include #include #include #include #include #include ... 阅读全文

posted @ 2015-10-11 21:49 积跬步、至千里 阅读(155) 评论(0) 推荐(0) 编辑

Lighting System Design

摘要: 题意:从小到大给出额定功率,给出该功率费用,和灯泡的数量和单价,现在灯泡能在比他额定功率大的功率运行,求让所有灯泡正常工作的最小费用分析:问题转化为求用哪几个功率运行灯泡最小费用,dp[i]前i个功率的灯泡正常最小费用dp[i]=min(dp[i],dp[j]+num)(j#include #inc... 阅读全文

posted @ 2015-10-11 21:40 积跬步、至千里 阅读(307) 评论(0) 推荐(0) 编辑

Jin Ge Jin Qu hao

摘要: 题意:n首歌和一首经典歌已知其长度,一首歌开始唱必须唱完,现在已知剩余时间,求最多能唱歌的个数并保证唱歌时间总长最大分析:留最后一个时间唱经典,然后对剩下的时间用背包求出最大个数,并求出总长最大的一个。#include #include #include #include #include #inc... 阅读全文

posted @ 2015-10-11 21:29 积跬步、至千里 阅读(291) 评论(0) 推荐(0) 编辑

Tour

摘要: 题意:给n个点的坐标,求形成的最短的闭合回路。分析:经典问题,dp[i][j]表示有1-i点再由j回到1点的最短距离,i点有两种情况,在去的路径上dp[i][j]=min(dp[i][j],dp[i-1][j]+dis[i][i-1]);在回的路径上dp[i][i-1]=min(dp[i][i-1]... 阅读全文

posted @ 2015-10-11 21:11 积跬步、至千里 阅读(241) 评论(0) 推荐(0) 编辑

A Spy in the Metro

摘要: 题意:n个车站,已知到达相邻车站的时间,有m1辆车从1站出发已知发车时间,有m2辆车从n站出发已知发车时间,求从1到达n所需等车的总时间最小。分析:有三种情况,在原地等,乘左到右的车,乘右到左的车dp[i][j]=min(dp[i][j+1]+1,dp[i-1][j+t[i-1]],dp[i+1][... 阅读全文

posted @ 2015-10-11 20:59 积跬步、至千里 阅读(310) 评论(0) 推荐(0) 编辑

Slalom

摘要: 题意:有n个宽度为w的门,给出门的左端点的水平位置x和高度y,和恒定的垂直速度,现有s个速度,求能通过这n个门的最大速度。分析:二分速度判断#include #include #include #include #include #include #include #include #include... 阅读全文

posted @ 2015-10-11 20:41 积跬步、至千里 阅读(212) 评论(0) 推荐(0) 编辑

Keep the Customer Satisfied

摘要: 题意:n个订单,每个订单有完成需要的天数,和限制的天数,求最多能完成多少订单分析:先按限制日期升序排列,若当前订单不能完成,和上面已选中的订单中需要天数中最大的比较,若比它小,则替换他。#include #include #include #include #include #include #in... 阅读全文

posted @ 2015-10-11 20:31 积跬步、至千里 阅读(209) 评论(0) 推荐(0) 编辑

The Tower of Babylon

摘要: 题意:有n个,长x宽y高z的长方体,把这些长方体摞起来,上面长方体底面的长宽一定要小于下面的,求能摞的最大高度。分析:一个长方体,可以有三种放法,先把所有放的状态存起来,按底面升序排列,dp[i]前i个能构成的最大高度,dp[i]=max(dp[i],dp[j]+h) h为当前长方体高度#inclu... 阅读全文

posted @ 2015-10-11 20:13 积跬步、至千里 阅读(306) 评论(0) 推荐(0) 编辑

Partitioning by Palindromes

摘要: 题意:给定一个字符串,求能分成最小几个回文串分析:简单dp dp[i]前i个字符能分成的最小数量 dp[i]=min(dp[i],dp[j-1]+1) (j-i 是回文串)#include #include #include #include #include #include #include #... 阅读全文

posted @ 2015-10-11 20:01 积跬步、至千里 阅读(235) 评论(0) 推荐(0) 编辑

导航