好题题目

POJ 1191 棋盘分割 题意:一个8*8的棋盘分割n-1次把它分成n个矩形(每次分割的时候都要保证切下来的和剩下的都是矩形)。每个棋盘格子又一个值。求这n个矩形的总分的方差最小。(这个题得好好的在理解上几遍)

思路:dp+记忆化搜索。每次一刀把一个矩形分成两个横着切竖着切然后选择是保留那一块然后找出最小的平方和最后套到方差公式里。大佬题解

Newcoder 38 B.购物 题意:一共n天糖果店每天产m个糖,一个人在一天之内买K个糖要额外支付K*K块钱这个人想要在这n天中至少每天吃一颗,求最小花费。

思路:dp[i][j]前i天买j个糖果花的最少的钱,只需要将每一天糖果店产的糖果的钱从小到大排序取个前缀和就肯定是当前天能买k个糖果花的最少的钱一天天的递推就行。题解

HDU 5807 Keep In Touch 题意三个人,n个城市并且这n各城市之间有m个单向道连接,给出q此查询每次查询分别给出这三个人的位置,这三个人可以在相同也可以在不同城市要求这三个人时刻都能相互联系(可以相互联系的条件 两个城市之间的电波值之差<=k,k在题目中给出)。

思路:把每一次三个人同时走分解成三个人按顺序走然后就可以通过这三个人走的状态来记录方案数之后一遍预处理打表最后按照询问直接输出。题解(还有几个没看懂看懂了再把它整理上)

 HDU 5623 KK's Number 题意:n个数两个人轮回取每次可以取任意多个数但是得分只有这n个数里最小的数的数值每个人的取值策略均是零自己的分数减去对手的分值最大。求先手在最后所能得到的差值是多少。这个题第一眼看上去有点像博弈论取数,设dp[i]表示剩下i个数的时候先手拿到的最大差值,然而通过把每一种情况列举出来发现一个规律dp[i]=max(a[i]-dp[i-1],dp[i-1]).(我的理解是因为是交替着选所以一个人再选的时候肯定是会选当前最大的一个因为选了多个的话那么肯定会比选一个最大的那个值小那么肯定就不符合最初的那个策略了,假如dp[i]是先手,那么就可以把后手看成dp[i-1]的先手如此交替,而选数是从n个数开始选那么dp[n]肯定就对应题目中的先手了。)

CodeForces 611 C. New Year and Domino 题意:一个由". #"组成的矩阵可以把一根木棍放在连续的两个点上连续横着或竖着的。然后多个查询每次查询给出这个矩形的左上角的端点和右下角的端点,输出这个矩形中一共可以有多少种木棍摆放方法。

思路:两个数组分别记录竖着的棍和横着的棍然后容斥定理dp[i][j]求出每一个(1,1)到(i,j)中的摆放种数最后在查询时把下边的竖着的和右边横着的(因为这两种情况已经超出了界限)删掉。这样就可以O(1)的输出。

HDU 5800 To My Girlfriend 题意给女盆友买礼物求从n个物品中选取总价值为m的物品且包含i,j不包含l,k的方案数。这个思路是真吊根据每个物品一共有四种状态选不选必选比不选,建立四维数组i,j,s1,s2表示前i个物品j价值s1个必选而且题意有两个必选两个必不选这就把后二位限制到了2,状态转移也很巧。跪拜

GYM 101128 E.Wooden Signs 这个题比较考研空间想象力 ,题意:n个木棍每个木棍有一个箭头端和无箭头端给出第一个木棍的坐标然后给出n个箭头端的坐标,要求使得相邻的两个木棍有一个端点重合并且有相交的部分的排法一共有多少。

思路dp[i][j][2];表示第i个木棍的非箭头端在j点0,1表示朝左还是朝右,这样就可以两个循环以i的箭头端为分界更新dp[i][k][2]的值,不过需要注意i和i-1的相对位置因为不只是朝左的可以更新朝左的朝右的也可以更新朝左的同理另一边也是。实在想不通就画画图图出来就很明白。

hdu2639 01背包变形,这个题是求第K重的总重量多加一维就好了但是他的转移方法用了类似排序的思想题解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值