zoukankan      html  css  js  c++  java
  • 场外模拟 省选联考 2020 游记

    CSDN同步

    注:本人模拟省选 (A) 卷。

    前记

    一场英语模拟期末直接萎掉之后心境垂垂暮老,然后来模拟省选增强一点信心。实际却不大行

    本来立的目标是口头 (200) 的,看完题发现 (150) 的目标比较合适。

    组合数问题

    先开 (T2) 的主要原因:觉得自己数论强。没了。

    [sum_{k=0}^n f_i imes x^k imes C_n^k ]

    其中 (f = sum_{i=0}^m a_i cdot k^i)

    算法一

    暴力。(f_i)(mathcal{O}(m)) 的时间计算,(C_n^k) 用杨辉三角,(x^k) 递推。

    时间复杂度:(mathcal{O}(nm)).

    实际得分:(15pts).

    ( exttt{Link}) 代码

    算法二

    注意到,(m=0) 有部分分。

    因此考虑,(m=0) 时,即多项式降为常数项,如何通过 (n leq 10^5 , 10^9) 的数据?

    显然,原式就变成了

    [sum_{k=0}^n a_0 imes x_k imes C_n^k ]

    [= a_0 imes sum_{i=0}^n x^i cdot C_n^i ]

    你懵了,一看,唉?

    (n leq 10^5)(p) 还是质数?

    那爷直接大力 ( exttt{Lucas} space mathcal{O}(n log n)) 过掉呗。

    (n leq 10^9) 呢?你再看看这个式子 (cdots)

    等一下,哎?这怎么那么像什么公式呢?

    翻出 二项式定理 的小本本,我们发现:

    [(x+1)^n = sum_{i=0}^n x_i cdot C_n^i ]

    诚然不会二项式的弱也就算了吧

    显然, (a_0 imes (x+1)^n) 是个人都会算。

    时间复杂度:(mathcal{O}(log n)).

    实际得分:(40pts).

    ( exttt{Link}) 代码

    算法三

    实际上,本人想不出,(m leq 5) 有什么特殊的性质。

    听说正解是 第二类斯特林数 可是我模板都不会,告辞~

    冰火战士

    结果 (T2 space 40pts) 是个好的预兆,(T1) 一开发现貌似是个二分。

    首先,(mathcal{O}(Q log x) hickapprox 6.2 imes 10^7) ,不是个好的复杂度。

    其次,这玩意儿有单调性吗?自己想一下,嗯 (cdots) 当它有吧。 你告诉我考场上也这么猜呗

    直接告诉我我能 ( ext{A}),所以直接想正解。

    首先我们可以用 ( exttt{vector<pair>}) 来维护双方战士。好像 bitset 也行,但毕竟是模拟考啊,自己不熟的还是不要用吧。

    然后 ( exttt{vector}) 的常数本身就很悬,加上上次机房的一个大佬信誓旦旦地和老师辩论说

    vector 插入删除很多个数会直接爆栈,要去找内存  
    

    找内存 = ?

    不管,考场策略。再说就算 ( ext{T}) 也不怕,反正不是正式考?

    那问题来了,你 (log) 二分挂在哪儿,总不能 (mathcal{O}(Q)) 验证吧?那才 30 分好吧

    算了一下,自己 ( ext{T}2) 调试了 (1.5h),那正式考场还有 (4h) 肯定,肯定能写到 (30).

    T3

    为了表现本人对此题的足够不重视,连题目名字也一律去掉了。

    显然 (15) 分手到擒来,因为正式考试会有足够时间调试,我也有这个信心。

    ( ext{Day1})

    以上,(30+40+15 = 85) 开幕雷击。

    信号传递

    毕竟是初一,唉,省选还是弱,弱,弱。

    一开题就想到了 (mathcal{O}(m ext{!} cdot n)) 的算法。一看数据范围,就 (30) 分啊?

    锤子吧?

    好,这个数据很有梯度,是在误导我用 (mathcal{O}(2^m cdot m)) 的暴力?

    首先,这个 (30) 的暴力再简单不过了。所有的数据聚焦在 (20+) 只说明 (mathcal{O}(2^m cdot m)) 需要大力卡常,(m=23) 的时候达到了将近 (2 imes 10^8),有点悬。

    说的好像我写出来了似的

    分析一下,这可以说明,(mathcal{O}(n)) 的验证不科学。

    我们可以把每两个信号站的传递次数记录,然后用 (mathcal{O}(m^2)) 的时间验证,继续暴力。

    看似优了,实则 (mathcal{O}(m! cdot m^2)) 还是过不了。

    等一下,这个 (4 imes 10^8) 的卡常可以试一试,毕竟 ( exttt{LUOGU}) 的评测机不错,可惜没有冥间数据。要是能卡过就是 (60) 了。

    毫不客气地,(m=21) 显然这过不了了,几乎到了 (10^9) 级。

    (60) 滚粗,没了。代码不写了。因为暴力全排的写法太简单,估计 (1h) 就能轻松拿到 (60).(( ext{Day1T2})(2h)(40),现在呢?)

    等一下,我从梦里醒来了,我才发现自己写的是 (mathcal{O}(m! cdot m^2)) 而不是 (mathcal{O}(2^m cdot m^2)).

    所以还是 (30) 萎掉了啊。

    一坨异或感觉不妙。上次 ( ext{NOI ONLINE TG 3}) 的异或我就是找周期瞎写结果 (70) 的,反正自己很讨厌异或!

    我发现有 (10) 的暴力分,(20) 的链分,(20) 的权值 (1) 的分。

    暴力分只需要 (10 ext{min}) 就可以轻松到手。

    权值 (1) 和 链 没有找到丝毫线索。

    所以就这么点分呗?

    链的话,对于 (u),我需要计算 ((v_1+1)⊕(v_2+2)⊕ cdots⊕(v_t+3))(v) 为子树集合),那么显然这玩意儿算不了。等一下 (cdots cdots) 为什么不用 ( ext{Trie}) 树试着维护呢?我觉得可以试试。

    不过这里不大行啊。

    权值为 (1) 的话,( ext{Trie}) 是可以试试的。毕竟,求距离 (+1) 的异或值么,异或可以用 ( ext{Trie}) 维护,没了。

    那怎么维护呢?假设对于 (u) 建立儿子节点集合(非子树集合) (v),考虑从 (v ightarrow u) 怎么搞?诚然,我们需要把当前 ( ext{Trie}) 的值全体 (+1) (可以在词尾标记修改的,但是时间会炸裂),然后再合并。可能是本人比较菜罢

    再见,(10) 分。

    作业题

    怀着 (125) 分的渣成绩,寄希望于最后一题。

    显然就算我 A 掉这道题也进不了队的

    感觉暴力分挺多,不慌,爷的目标 (150) 估摸着可以试一试的。

    首先,(mathcal{O}(C_m^{n-1} log w)) 稳稳地过掉了 (10) 分。

    估摸着生成树应该没有那么多吧。不要和 CCF 讲概率了

    (w_i) 均相同?好性质啊,那 (gcd) 恒为常数 是个好东西!

    那么,这题显然弱化为:

    求一个无向图所有生成树的边权之和。

    就这?不会。

    然后发现 (m leq n),然后连通 (cdots) 说明一点:这是棵树(基环树)!

    显然对于一棵树,它的生成树个数只有 (1) 个,它自己,瞎求就行了。

    对于 基环树,显然,生成树个数是环的长度,这是破环为链的一个思想。

    我们可以求出环外的 (sum)(gcd),然后稳稳地枚举环。

    哈哈!那爷不就 (30)激动啥

    至少 (155) 目标达成了,耶!

    显然,(w_i) 均为质数是 (w_i) 均相同的加强版,所以考虑,如何求出一个图所有生成树的边权之和。

    大力枚举大概 (n leq 30) 是过不了的耶!再见。

    总结

    作为场外初一模拟省选,没有条件用 (9h) 的时间模拟考试,只用 (2h) 的时间写了 ( ext{Day1 T1,2}) 并初步看了其它题的思路。

    显然这次 (155) 离进队还是很远的((frac{1}{2}) 进队吧?),但是暴力分拿满了,没什么遗憾的了。

    今番良晤,豪兴不浅,他日江湖相逢,再当杯酒言欢。咱们就此别过。江湖路远,各位请一路珍重。

  • 相关阅读:
    GridView里的数据转化为datatable进行数据传输
    asp.net给asp:button同时添加服务器事件和JS事件
    .msi文件安装出现2503、2502错误
    初识IO流——创建目录和文件
    WinRAR注册
    Ubuntu14.04.1 阿里apt源
    Pycharm远程调试
    Couldn't create temporary file to work with
    Ubuntu14中supervisor的安装及配置
    Ubuntu14.04安装pip及配置
  • 原文地址:https://www.cnblogs.com/bifanwen/p/13173670.html
Copyright © 2011-2022 走看看