训练日记

     上午随手写了一道题,然后继续看了一下博客。

     下午打了比赛,这次签到题就很多了,第一道题,由于看出是一个简单dp,队友在做,我就想想思路跳过了。

     f[i][0/1]表示已经跑了i米,最后一步是跑还是走的方案数。 转移方程   f[i][1]=f[i-k][0],   f[i][0]=f[i-1][0]+f[i-1][1] 。最后答案全加起来就行了。

     随后我看了一道贪心的题目,刚开始写的代码少了每次重置数组了,本来感觉没有影响,后来改了这个过了,看来这些小细节要注意好。这个题每次保证好自己手中有一个物品,然后低价买,高价卖就行了。

     当时就一道规律题,貌似可以做,过了大约10个人了。嗯,最后做出来了,这也是我们做出来的最后一题了。当时推出在没有破坏路的境况下,偶数时,2*n,奇数时,2*n-1,然后,在偶数时,每次破坏一格,车减2,奇数时,在最中间的一行一列需要特殊处理一下,其他地方和偶数一样。但是听了别人思路,感觉我们的思路麻烦了。。

     做完这题时,H题也十多人过了,我们看了一下,1条最长路时经典树形dp,这道题是3条,感觉很蛮烦,退了半天都是错误的,随后看了J题,当时是想的树状数组区间更新的内容大多是计数问题,很难处理这么多种数,线段树也不好处理。

    出题人讲完题,才感觉自己思路太窄,操作太菜,很多题目都需要转化,由不适用于这种算法,转化为适合使用这种算法,这个能力很关键,感觉这方面的训练还不到,主要是自己见过这种题太少了。对dp的理解太差了,会树形dp,也没做出这道题,dp思维太弱,这次题目很多,都是dp题,刚好可以看一下怎么完成的状态和转移,出题人又是怎么转化为容易解决的dp的,多研究一下,希望自己的dp能够更近一步。

    以后做题,先转化题意,转化成容易解决的问题,然后选择适用算法解决问题,一种问题的解决,也可以分阶段,每个解决用不同的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值