zoukankan      html  css  js  c++  java
  • SCOI2014极水的题解-

    话说SCOI都考了1个月了,终于拿出决心把题解补完了,但都说了是极水的题解,大家就看着玩吧- -

    DAY1 T1:目标是找最长不降子序列,先就有一个比较显然的结论,就是假如我们要拔高区间[L, R], 将其换为[L, N]肯定不会让答案变差(YY一下就发现这点很显然),就可以得到一个DP的大体思路了。

      就是DP[i][j]表示以i结尾并i共计被拔高了j次的最长子序列的长度,然后发现dp[i][j]由dp[p][q]转移过来当且仅当

    height[i] + j >= height[p] + q且j >= q, 这个我写个二位树状数组胡搞毛搞一下就可以了。

      考场上T了一个点,只有90分,毕竟是log*log,但张老师写的log,考场上A了,但BZOJ上就比我慢了一大截,简单地说就是慢了整整一倍,真是神奇(=^ ^=)

    DAY1 T2:让你维护序列什么的,先可以发现对于任何一段连续的序列,其内部相对排名都不会改变,就可以写一个XX数据结构来维护区间,数据结构中每个点都维护一段区间,假如要访问内部的点就直接把它拆分开即可。

      因为操作数只有10^5,所以要维护的点也不会很多,搞得下来,然后对于标号还要再写个什么东西维护(STL?),反正就是数据结构裸题,属于谁爱写写的那种- -

      考场上写40分暴力都写拙了,T得只有10分了TAT。

    DAY1 T3:据说正解O(1),数据范围只是懒得写高精度- -反正是防AK的题,全场最高分10分,同时还有一群人暴力连样例都跑不过,就没什么好说的了(懒)……


    DAY2 T1:比较裸的分数规划,很容易想到先二分答案判断可行,我们直接把加流量的操作视为反边,减流量的操作视为正边,那么验证答案是否可行就是在找一个负环。

      假如当前二分的答案为K,那这条边正边(加流量)就是ui通向vi,代价为bi+di+K,负边(减流量)就是vi通向ui,代价ai+K-di,然后随便跑个算法判断负环就可以了。唯一要注意的是流量为0的边无法再减流量了。

      考场上得了90分,有个点WA了,和答案相差很远,原因不详。。。

    DAY2 T2:这道题数位DP,时限3秒,但我认为标程方法拙了,要不时限开0.2秒都跑的下来,不信你看看BZOJ 3598跑的最快的速度吧(有人问我是不是打表TAT),名字什么的不要太在意,话说Onion Movie作为高级黑还是推荐没看过的去看一看呢。

      我的算法说来很快很简单- -,数位DP的部分是最基础的水平。先不妨让所有的数都把石子移动到第1位,就可以得到初始总代价Cost,但我们发现这样对于很多数显然不优,我们就可以考虑都多少数从第1位改为第2位会更优,具体优多少,又有多少数从第2位改为第3位会更优……直到从倒数第二位移动到倒数第一位会更优,容易发现这样我仍然可以保证每个数都被我移到了最优情况。然后只用具体考虑有多少数从第i位移到第i+1位更优,优多少,我们可以发现,当一个数从第i位移到第i+1位时代价的变化量等于前i位的和减去i+1位至末位的和,然后就是简单的数位咯O(∩_∩)O!就是直接记录填到第k位的数字之和,如果k<=i就是加,否则就是减,最后的DP[s]就表示有多少个数满足从第i位移动至i+1位能优-s下来。

      复杂度应该是log()^3*k^2,反正属于秒跑的那种,再次吐槽标程一定写拙了,时限给那么大,够我跑⑨⑨次都不止吧……

      考场上秒A,毕竟是水数位DP嘛(∩_∩)

    DAY2 T3:这道题是DP你信?大体思路是枚举分割线,假如分割线上有多个点就在分割线上做DP,记录能够让分割线刚好在这的方案总数,据说标程写+调搞了很久?反正现场估计连看出是DP的也没有,都写的暴力,难道又是在防AK?(懒)。。。

    好吧,省选的水题解(修饰题解而不修饰题)就结束了,我最后90+10+0+90+100+30好歹以第三进了队,myns包揽前两名(据不愿透露姓名的ns同学说是两个男(和谐)同?!好吧,据说是ns的喜报上学字打漏了,弄了个大新闻)。

    题解就算补完了,刷一会。。。

                                                                                                    Artanis

  • 相关阅读:
    多线程学习纪要
    字符编码ASCII、Unicode、UTF-8以及验证
    C# 自定义特性Attribute要点
    Java --- 流操作
    数据库 --- 索引
    Java -- 枚举
    mybatis --- 使用通用mapper或者mybatis-plus进行映射时,当数据库中有大写字母,自定义映射的字段名。
    后端 --- 快速创建一个sb项目 (使用spring官网的https://start.spring.io)
    数据库 --- decimal类型测试
    Java --- 线上故障调优01 打印堆栈信息
  • 原文地址:https://www.cnblogs.com/Artanis/p/3751644.html
Copyright © 2011-2022 走看看