省选模拟赛2022/4/6

比赛时间安排

7.20-7.40
t1 感觉神似有一道单调性优化+主席树的题目,假期,但是这个数据范围好小,应该不是
t2 这。。中间还有空,这么搞
t3 又是高斯消元的类型吗?但是这个数据范围太大,应该做不了,暴力貌似可行?但是样例这推不明白啊
t4 前70分是个数,然而并没有什么想法,选择是有后效性的

7.40-8.20
那t1的方案就是要不就是往左走再折回来一直往右,要不就是反过来?写下来样例都对了,但是不能保证正确性。不过暴力没想法,就先这样吧

8.20-9.10
想t2的第一档,觉得很不对劲,发现我题意理解错了,中间没有空格,而是可能有些位置是空的,这样10分就会写了,应该是nl,dp一下,再用个前缀和就行了

9.10-9.40
突然想到了t1的暴力方法,站在0号点,看下一步向左还是向右走,然后这样应该能20,样例没问题,于是和自己的贪心对拍了一下,竟然5分钟没错??这。。

9.40-12.00
看t3,我列高斯消元的式子,但是有一个瓶颈,就是正常来说,是以一个结点作为终点,这个我会写,但是随机一个叶子作为终点不好表示,前面的系数怎么确定,万一这个叶子是终点了,那他的父亲还能从他走过来吗?还有就是概率的高斯消元怎么办?都是问题,一头雾水

t4的树形问题,如果考虑dp,设f[x][y]表示x的子树里修改了y个点使得状态合法的最小代价,但是这仅满足局部最优,后面的转移用不上,而且后面的还可能影响见面的,那倒过来,变成拓扑?可行吗?并没有想出好的方法

t2 n=10的时候感觉是枚举排列,然后做dp,可是复杂度必然爆炸

好自闭啊!!

赛后总结反思

  1. t1有个地方没开ll,本来想着已经特判掉了,maxt<=1e9的,肯定不会炸,但是应该是在运算过程中炸掉了啊
  2. 高斯消元的模型就是不熟悉,上次觉得能写出来了,但是!啊不甘心!!!!
  3. 骗分技术不够,要多学习,不然不写非常难受
  4. 数组开小了,因为光想着部分分了,以为这一档n<=30,我错了呜呜呜
  5. 最近小错误又犯得多了起来。。emm要稳住啊,马上就省选了

与正解的差距

T1

正解的dp状态是f[l][r][k][0/1]表示左边经过了l个,右边经过了r个,一共拿了k个,上次拿是在左端点或者右端点的最小时间。
状态设置和之前有一道题特别特别想,具体是什么不记得了,但是对于这种左右取的,这样的dp确实是套路,另外还有一个技巧就是如果把t放到状态里会爆,那么就把答案放进去,最后判定是否合法就行了。
其实dp整体的转移,和我的暴力dfs相差不大,在写完之后应该要有这方面的敏感性,多注意一些,积累下来

T2

首先n=10的暴力就是枚举n的全排列,然后贪心的把这n个磁铁尽量往前放,这样后面可能会留下一些空位置,任意往前面n+1个空位中插(n个磁铁把序列分成n+1份),插的方案数累加起来就有20分了

正解其实就是利用上面那个暴力的思想,上面的复杂度其实就是在求空位有几个,那么我们就用dp把这个优化了(虽然不能叫优化)。

T3

40 骗分部分就是模拟随机游走(真·随机游走),然后直接算期望!

40正确的做法高斯消元,加了一维状态来解决我的几个问题。首先我把访问到节点x,已经访问过的结点状态为s压成a[][]的一维,表示一个状态,这样很容易知道终止状态就是访问到du[x]==0的结点,且所有结点都访问过了(因为,如果要访问过所有叶子结点,必然需要访问整棵树的所有结点),那么对于这样的状态,我们就不再转移即可。这样又解决了一个问题,就是列不出来方程怎么办?没关系,如果感觉找那些状态可以转移给自己不方便,那么我们就找自己可以转移给哪些状态,这样一个方程直接就列出来了,同时结束的时候不往别的地方转移就行了!呜呜呜,没有想到。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值