2020.04.18【NOIP提高组】比赛反思总结

这次比赛得了168.2分,No.7,还不错

T1 Fine Dining

赛时

T 1 T1 T1 一眼看过去就知道是最短路,但是想了半天都没有想到有什么方法,最多只能想到暴力,等做完 T 2 、 T 3 T2 、T3 T2T3 再回来做。但仍然没有办法。无奈之下只能打了这个 O ( n m k ) O(nmk) O(nmk) 的方法:先从 n n n 跑最短路,然后暴力枚举每一个点和每一个稻草堆,然后跑最短路再比较一下。得分: 50 50 50

赛后

果然,正解是最短路。
首先跑一遍最短路是毋庸置疑的。
接着, 新建一个源点 n + 1 n+1 n+1 ,然后从从这个源点建一条边连向每个草堆,权值为 d i s 1 i − a i dis1_i-a_i dis1iai,dis1为第一次最短路求出来的答案。接着,再跑一次最短路,得出 d i s 2 i dis2_i dis2i
然后,将 d i s 1 i dis1_i dis1i d i s 2 i dis2_i dis2i 比较。若 d i s 1 i < d i s 2 i dis1_i<dis2_i dis1i<dis2i 则输出 0 0 0 ,否则输出 1 1 1 。自己理解一下(ノ ̄▽ ̄)。

T2 Cowpatibility

赛时

T 2 T2 T2 一直没有什么好想法,只能打暴力结果坑了个 18.2 18.2 18.2 分。

赛后

正确做法呢,是容斥原理。由于不是很懂,这里不详细展开。

T3 teamwork

赛时

比赛的时候一看就觉得是dp题,于是
f i f_i fi 为在第i个点的最大值,状态转移方程就是:
f i = m a x ( f [ j − 1 ] + m a x ( a [ h ] ) ∗ ( i − j + 1 ) ) ( 1 < = i < = n , i − j + 1 < = k , i < = h < = j ) f_i=max(f[j-1]+max(a[h])*(i-j+1)) (1<=i<=n,i-j+1<=k,i<=h<=j) fi=max(f[j1]+max(a[h])(ij+1))(1<=i<=n,ij+1<=k,i<=h<=j)
最后输出 f n f_n fn 就可以了

总结

这次还不错!继续努力!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值