zoukankan      html  css  js  c++  java
  • 2020.08.11【省选B组】模拟 总结

    估分:(100 + 100 + 0 + 0 = 200)
    考场:(100 + 90 + 0 + 40 = 230)
    今天做题状态极好(很舒服),(10:00)前打完三题,然后玩了玩(T3),从容结束比赛。
    不像上次还剩十分钟开第二道题。。。。。。

    (T1)

    显然的换根操作,乱玩即可。

    (T2)

    让你求(a1^{a2^{a3^{a4}}}...modp)的值。
    指数那么大,很容易想到扩展欧拉定理。
    预处理(phi)数组,然后递归求解即可。
    但是我忘记判指数小于(phi[p])的情况了,(WA90)

    (T3)

    期望题,乱推一波啥也不会。
    结果看(copy)题解大概玩出来个样子了。。。
    我们设(f[i])表示从(i)字符走到最后且保证(i)以后的字符完全正确的最小期望时间。
    这样我们可以尝试转移,我们枚举一个点表示判断前面是否正确的位置:

    [f[i]=min_{j=i}^{n}(p[i]*(f[i]+j-i+1)+(1-p[i])*p[i+1]*(f[i+1]+j-i+1)+...+(1-p[i])*(1-p[i+1])*...*(1-p[j])*f[j+1]+j-i+1+t) ]

    然后将右边式子里的(p[i]*f[i])移项,得到:

    [(1-p[i])f[i]=min_{j=i}^{n}((1-p[i])*p[i+1]*(f[i+1]+j-i+1)+...+(1-p[i])*(1-p[i+1])*...*(1-p[j])*f[j+1]+(1+p[i])*(j-i+1)+t) ]

    然后转移即可,为(O(n^3))
    考虑优化,发现(j)枚举的时候(min)项是一个前缀的形式,用变量存一下即可,时间为(O(n^2))

    (T4)

    没有找出结论,做了个假的贪心,(WA40)
    有个结论:对于任意序列都可以用(<=2)次操作来完成。
    我们发现,其实交换目标会形成一个环,对于环长为(1),不用交换,对于环长为(2),交换一次即可。对于环长为(>2),可以证明交换两次即可。
    例:(2 3 4 5 6 7 1)
    我们交换(位置):(6) (7,) (1) (5,) (2) (4)
    然后再交换:(1) (6,) (2) (5,) (3) (4)
    偶数环情况类似。
    先暴力判答案为(0)(1)的情况,然后在(1)的基础上做环操作即可(环操作环可以任意选,毕竟都只用两次操作)。

    总结

    这次很有比赛模式,早早写完题然后对拍检查,不错不错(* ̄︶ ̄)
    还有一点就是期望题有点弱,要补一补期望以及(DP)之类的问题。

  • 相关阅读:
    [WPF] 修改进度条样式实现斑马进度条
    [WPF] 继承Shape实现弧形、扇形控件
    ILRuntime 热更官网
    (转)Unity资源打包学习笔记(一)、详解AssetBundle的流程
    (转)基于python脚本,实现Unity全平台的自动打包
    (转)Unity实现c#热更新方案探究(三)
    (转)Unity实现c#热更新方案探究(二)
    (转)Unity实现c#热更新方案探究(一)
    (转)Unity C#热更新方案 ILRuntime学习笔记(一) Hello World
    中国已进入“零工经济”时代
  • 原文地址:https://www.cnblogs.com/jz929/p/13474865.html
Copyright © 2011-2022 走看看