2016年9月19日 总结

9月19日 总结
这两天做了几道比较有价值,值得思考的题,并写了总结。

棋盘型dp
1.过河卒
这道题是棋盘型dp中比较经典的一道题,只要写出动态转移方程,那么问题便迎刃而解。因为马只能向右和向下走,所以每一步状态都是有上面或左面继承过来的。所以方程就写出来了。
2.骑士游历
f[i][j]=f[i-1][j+2]+f[i-2][j+1]+f[i-1][j-1]+f[i-1][j-1];
3.传纸条
sum[i][j][h][k]=max(sum[i-1][j][h-1][k],sum[i][j-1][h][k-1],sum[i-1][j][h][k-1],sum[i][j-1][h-1][k])+a[i][j]+a[h][k];
4.数字三角形
f[i][j]+=max(f[i+1][j],f[i+1][j+1]);
以上四道题类似于过河卒,需要总结的这种题的做法。棋盘型dp是在一个类似于坐标系的平面上进行运算,所以写动态转移方程的时候需要把方程描述成一个类似于坐标系的东西,并且寻找题目的规律或者说是遵循的定律再结合dp的思想,便可以成功。

5.codevs 1198国王游戏
这道题是前几天比赛题的一道延伸题,类似于贪心的思想进行排序,然后求解。这是我所没有接触过的类型,是需要掌握和进行思考的。
思路:首先,假设我们已经确定了某种大臣的站队方案,并假设此方案最优,那么某一个方案中的站队次序是
a1 b1
a2 b2 分数1=a1/b1+(a1+a2)/b2
那么将其两个位置交换,所得方案一定没有之前的方案更优。
a2 b2
a1 b1 分数2=a2/b2+(a1+a2)/b2
所以分数2一定大于分数1,所以两者做差,分数2-分数1>0,然后进行约分合并,a1/b2 < a2/b1,所以a1*b1< a2*b2,由此得出结论,左右手乘积大的排在前面的方案更优,所以以这个规则进行排序,最后进行求解便是最终答案。(此题还要加上高精度)

5.score得分
这是一道比赛题,我一上来便想到了01背包的思路,但很显然并不是正解,那么便用到了上面一道题的贪心思路,对其进行排序。而排序的规则是
x.c+y.c-x.v*x.w-y.v*(x.w+y.w)>x.c+y.c-x.v*(x.w+y.w)-y.v*y.w
然后对其进行01背包便可。证明过程略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值