考试总结-3

考试总结-3

又炸了。。(其实我考好时不发总结。。。咳咳)

题目链接?

pdf有着更好的阅读效果。。。?

T1(最近数学题好多啊)

一个小结论题,其实讲过之后还是蛮简单的。

题解:我们会发现一个事情,$B^i\%​(B-1)=1$  。然后从​$ 0 $到$ (B-1) $​每个数都至少出现$ 1 $​次。我们求的和就是$ \sum a[i]*i*B^i $​,然后因为上面那条,所以只要满足$ \sum a[i]*i $​是$(B-1)$​的倍数就行。为了使最后的数最大,我们尽量删去尽可能少的数。所以删去的数就是$\sum a[i]*i$%​ $(B-1)$。然后找的时候直接二分就好了。。

反思:1.考试时想到了第一步,但没能继续思考剩下的如何处理。对于数学题还是一贯的蒙圈。。。

2.好多人因为没开​$ long\  long $导致丢了好多分,要注意看数据范围。

T2(暴力没拿满。。。)

理论上还是个水题。可我就是个。。(算了,不侮辱蒟蒻这个词了。。)

题解:50% 瞎搞可过。

100% 考虑DP。

​$ m=1 $​时,$ f[i][j] $​表示到取到第​$ i $块,一共咬了$ j $​口时能吃到的最大权值和。

转移:不选:$ f[i][j]=max(f[i][j],f[i-1][j]) $

选:​$ f[i][j]=max(f[i][j],f[k][j-1]+s[i]-s[k-1])\  1\le k\le i-1 $

(​$ s[i] $为前缀和数组)

​$ m=2 $时,​$ f[i][j][l] $表示第一列吃到第$ i $​块,第二列吃到第​$ j $块,一共咬了$ l $​口时能吃到的最大权值和。

转移: 当什么都不做时:$ f[i][j][l]=max(f[i][j][l],f[i][j-1][l],f[i-1][j][l]) $

当仅从第一行取一段区间时:

​$ f[i][j][l]=max(f[i][j][l],f[k][j][l-1]+s[i][1]-s[k][1]) \ 1<=k<=i-1 $

当仅从第二行取一段区间时:

​$ f[i][j][l]=max(f[i][j][l],f[i][k][l-1]+s[j][2]-s[k][2]) \  1<=k<=j-1 $   

当$i=j$​时,可以竖着转移:

​$ f[i][j][l]=max(f[i][j][l],f[k][k][l-1]+s[i][1]+s[j][2]-s[k][1]-s[k][2]) \  1<=k<=i-1 $

最后所有情况取​即可。

反思:1.白送的50没拿到……对自己无语ing。在前缀和序列里查询时要从$ 0 $​开始,要不然会自动忽略​$ a[1] $......(55555....)

2.对于DP的掌握程度不够,不敢写正解,怕暴力错。。

T3 (难度还(hao?)行(da?))

据JZYshuraK介绍,这题死难死难的。。。然后。。342和Ysy20021208都切了。。本蒟蒻都没怎么想。。。

题解:还以为是一眼逆序对,(woc...逆序对差点写不出来了。。),后来惊讶的发现,差了点东西。。

实际上是在逆序对的基础上做的一道题。我们用$ pos[i] $​记录每个数的位置。

我们可以从小到大枚举,假设该数最大,使它成为序列的一个结尾,显然最小的数产生的逆序对数量等于​$ pos[i]-1 $,它成为最大值之后会增加$ n-pos[i] $​个新的逆序对,所以我们可以先求出原先序列的逆序对, 然后从小到大枚举数为最大数, 修改逆序对的数量, 然后取$min$。

反思:没有好好读题。。。没有合理分配时间。

转载于:https://www.cnblogs.com/0724-zcsblog/p/9851040.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值