2021.11.17模拟赛总结

时间安排

8 : 30 − 9 : 00 8:30-9:00 8:309:00 把四道题都看了一遍,T1是真的不会,T2是个dp,T3一看就是最短路径生成树再上线段树,T4也没看出什么。
9 : 00 − 9 : 20 9:00-9:20 9:009:20 推了推T1,但是怎么都想象不到四维五维的情况,就写了个模拟就去看T2了。
9 : 20 − 10 : 00 9:20-10:00 9:2010:00 考虑题中所给的这样一个条件:所有的作业的完成的时间是相同的,所以我们不用考虑作业的种类,只需要考虑完成了几个作业即可,所以我设的dp状态为 f i , j f_{i,j} fi,j,表示考虑完前 i i i 个,完成了 j j j 个的最小的代价,显然需要先判断第 j j j 个作业是否有时间完成,如果可以,转移方程即为 f i , j = m i n ( f i , j , f i − 1 , j − 1 ) f_{i,j}=min(f_{i,j},f_{i-1,j-1}) fi,j=min(fi,j,fi1,j1) f i , j = m i n ( f i , j , f i − 1 , j + v a l ) f_{i,j}=min(f_{i,j},f_{i-1,j}+val) fi,j=min(fi,j,fi1,j+val) n 2 n^2 n2 转移即可。
10 : 00 − 11 : 00 10:00-11:00 10:0011:00 对于T3,很明显就是个最小路径生成树,然后再维护一个线段树,但是我忘了最小路径生成树怎么码了,所以就打算暴力记录每个点到 1 1 1 n n n 的路径,就是在dijkstra转移的时候把路径上的点用vector存起来然后一起转移即可,然后就依次处理询问即可。值得一提的是我又没看见边是有向边,然后小样例都过了但是大样例过不去,我一直以为是我的最短路的字典序最小没处理好,最后实在调不出来就又去读了一遍题才发现是有向边…
11 : 00 − 12 : 20 11:00-12:20 11:0012:20 T4我推了一个多小时,首先当 n n n 为奇数的情况显然你只要直接压到 1 1 1 然后一个一个取是必胜的,然后就考虑 n n n 为偶数的情况,我先推了一下 n = 6 n=6 n=6 的情况,发现当 n n n 为偶数时显然取的时候一定都要取偶数,以为一旦有一个人选了奇数,另一个人就可以直接压到 1 1 1 然后一个一个取,所以选奇数的那个人必输,因此我们只需要考虑都取偶数的情况,发现我们这时就可以把 2 2 2 看成是 1 1 1,那么 n n n 就可以缩小一半,当 n n n 一直被缩小到为奇数时显然答案已经求出了,为 1 1 1,所以我们假设 n n n 2 2 2 的因子的个数为 m m m,则答案为 2 m 2^m 2m,然后直接求就行了,整体时间复杂度为 O ( n l o g   k ) O(nlog\,k) O(nlogk)
12 : 20 − 12 : 40 12:20-12:40 12:2012:40 又去想了想怎么优化T2的dp。
12 : 40 − 13 : 00 12:40-13:00 12:4013:00 提交。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值