感觉我做了很多CF题,零零碎碎,而且几乎都是水题
所以感觉用处不大。。所以稍微理一理。。。

那就从我打的第一场CF Round #500 开始。
这个数字好整啊(胡说,512才整)

为了方便看中文题意,链接就放洛谷的好了。

依然是给我自己看的,所以是不知所云系列。

\(\bf {Round \ \#500 \ (Div. \ 1)}\)

  • D. AB-Strings 每次操作尽量都让段数-2,用个链表维护串串,一堆特判就过了,人类智慧题(所以这题的核心大概是对各种特殊情况的判断)
  • E. Cycle sortloj 上的翻译好一点。观察到一个结论,任何排列都可以两步换出——先换大圈,再换小圈的第一个,但这样换的总次数多了圈数次。所以再考虑下 \(s\) 的限制,并且要把所有圈圈尽量连的大一点。(怎么这么烦,还要输出方案QAQ)

\(\bf {Round \ \#589 \ (Div. \ 2)}\)

  • D. Complete Tripartite 容易发现两个没边的点一定在同一个set里,所以暴力就好了,注意压复杂度。
  • E. Another Filling the Grid
    用 \(f[i][0/1]\) 表示一行里前 \(i\) 个数有无 \(1\) 的方案数,可以DP,或者显然 \(f[i][0]=(k-1)^i\) ,\(f[i][1]=k^i-(k-1)^i\)
    容斥:\(ans=\sum_{i=0}^{n-1}(-1)^i \cdot {n \choose i} \cdot (k-1)^{ni} \cdot f[n-i][1]^n\)
    DP:用 \(g[i]\) 表示 \(n \times i\) 矩阵合法的情况, \(g[i]=f[i][1]^n-\sum_{j=1}^{i-1} {i \choose j} \cdot (k-1)^{ni} \cdot g[i-j]\)
    比赛时我两种都写了,两种都写错了。。。不想说啥了。。。。。。
  • F. One Node is Gone 好像从度数入手就可以了?没啥意思的分类讨论题,不太想写

\(\bf {Avito \ Cool \ Challenge \ 2018}\)

  • G. Mergesort Strikes Back 看了 \(n^n\) 次的题,依然想不出来。首先我们考虑两个序列的归并,我们可以将这两个序列分成若干块,块的起点满足它左边的数字全部比它小,然后归并就相当于把块按起点排序。再考虑计算两个底层块的贡献,发现第一个块的第 \(i\) 个数和第二个块的第 \(j\) 个数对答案的贡献是 \(\frac{i+j-2}{2(i+j)}=\frac{1}{2}-\frac{1}{i+j}\)(如果这 \(i+j\) 个数的最大值在 \(i\) 或 \(j\) 上必然不贡献逆序对,否则有一半的概率贡献逆序对)。

\(\bf {Round \ \#545 \ (Div. \ 1)}\)

  • F. Matches Are Not a Child's Play 发现 up x 操作就是把之前的根到 \(x\) 这一段丢到删除序列的最后,所以可以用LCT维护,up实际上就变成了makeroot。然后可以考虑给每条实链一个标号,表示删除顺序,一个点在删除序列中的位置=标号比它小的点数+splay里右儿子的数量,标号比它小的点数可以用树状数组维护前缀和……因为愚蠢的错误续了两天。。

\(\bf {Round \ \#454 \ (Div. \ 1)}\)

  • 454和545可还行。。
  • D. Power Tower 扩展欧拉定理:当 \(b \geq \varphi(p)\) 时,有\(a^b \equiv a^{b \ mod \ \varphi(p)+\varphi(p)} (mod \ p)\)
    一个数经过logn次不停取phi就会变成1,所以递归算就行了。但是写着很晕。。要把快速幂也改成扩展欧拉定理的形式……

\(\bf {Round \ \#575 \ (Div. \ 3)}\)

  • F. K-th Path 这个数据范围是假的。只要前 \(K\) 小的边,然后跑 floyd,复杂度有点炸,但是 O(可过)

\(\bf Codefest \ 19\)

  • C. Magic Grid 简单构造题,复读即可。
  • D. Restore Permutation 从后往前确定,每次在树状数组上二分就行了。
  • F. Bits And Pieces 题解给的做法是SOS DP。。然后我自己乱搞。倒着加数,每次求当前数和后面的最大Or,这个很好求,以前XJ模拟题做过。然后改成 \(a_j\&a_k\) ,只要保证那一位有两个 \(1\) 就行了……

\(\bf {Round \ \#592 \ (Div. \ 1)}\)

  • A. Ivan the Fool and the Probability Theory 可以发现要么每行黑白相间要么每列黑白相间,所以只要确定第一行或者第一列整个都确定了,所以答案是 \(2(fib_n+fib_m-1)\) ,-1是因为要把行列都黑白相间的减掉。。

  • B. The World Is Just a Programming Task (Hard Version) 其实把括号序列变成正负1之后求前缀和,那个美丽度就是最小值的个数……

    先随便找一个正确循环表示法,然后可以证明只用考虑交换一对匹配括号。一种情况是交换第一层的括号,交换后的美丽度就是括号里套的第二层括号个数+1。另一种是交换第二层的括号,就是原来的+括号里套的+2 。。

  • D. Catowice City 可以发现如果A与B的猫有边,那么选了B的猫就一定要选A的猫。于是给B的猫和A的猫连一条有向边,跑SCC就行了。

  • E. Turtle 首先如果确定了第一行放哪些数,那显然最优的方法是第一行从小到大第二行从大到小……然后大胆猜测乌龟最后走的路径应该是走完第一行再下去或者一开始就下去,于是上背包就好了。需要一定程度的魔改……

\(\bf {Round \ \#576 \ (Div. \ 1)}\)

  • C. Matching vs Independent Set 大力猜测必然存在,然后随机就可以出解……正常的做法是在读入的边中依次找出两端点没有被标记的边并给端点打上标记,如果标记的边 \(\geq n\) ,那么显然选这些边就好了,否则没标记过的点肯定 \(\geq n\) ,\(3n\) 个点的意义就在这里……

一句话CF的更多相关文章

  1. CF dp 一句话解题

    wyq说刚入门oi 或是遇到瓶颈的时候就刷DP吧,虽然觉得这么刷CF题有点浪费,但是还是挺爽的,按照solved排序做的,前面的题都挺水的(忘记记录了混蛋),就不写了,从5C开始写解题 CF5 C. ...

  2. ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 5166'

    凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库.报ORA-12570 TNS:pac ...

  3. js小练习去掉指定的字符组成一句话输出

    今天在codewar做练习题时,要求写一个函数把一个字符串去掉WUB这些多余的字符然后把剩下的组成一句话输出,如传入"WUBAWUBBWUBCWUB"后返回"A B C& ...

  4. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  5. cf Round 613

    A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积.保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这个 ...

  6. ARC下OC对象和CF对象之间的桥接(bridge)

    在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics.Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环 ...

  7. [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现

    1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...

  8. CF memsql Start[c]UP 2.0 A

    CF memsql Start[c]UP 2.0 A A. Golden System time limit per test 1 second memory limit per test 256 m ...

  9. CF memsql Start[c]UP 2.0 B

    CF memsql Start[c]UP 2.0 B B. Distributed Join time limit per test 1 second memory limit per test 25 ...

随机推荐

  1. <<Java并发编程的艺术>>-阅读笔记和思维导图

    最近在坚持每天阅读<>,不但做好笔记(MarkDown格式),还做好思维导图. 如果大家感兴趣,可以可以到码云上阅读笔记和到ProcessOn上阅读思维导图. 码云:https://git ...

  2. java并发之内存模型

    java内存模型知识导图 一 并发问题及含义   并发编程存在原子性.可见性.有序性问题. 原子性即一系列操作要么都执行,要么都不执行. 可见性,一个线程对共享变量的修改,另一个线程可能不会马上看到. ...

  3. MySQL8安装及使用当中的一些注意事项

    前言 这两天构建新项目,在本地安装的mysql8(本地环境windows),期间忘了密码,又卸载重装了一番,然后捣鼓了一顿授权给别人访问,最后磕磕绊绊的搞好了,下面是在这过程中遇到的问题及解决办法小结 ...

  4. docker镜像命令使用

    创建docker容器时使用的docker镜像如果在本地中不存在,docker就会自动从docker镜像仓库中下载,默认的docker镜像仓库是Docker Hub公共镜像源 使用docker sear ...

  5. 一文掌握在Word中快速编写公式

    在使用Word编写文章时,总会遇到书写数学公式的情况.使用Word的公式输入工具需要频繁地使用鼠标,因而编写公式会显得繁琐麻烦,那么有什么办法可以优雅地在Word中书写公式呢?其实Word早在Word ...

  6. Numpy数组解惑

    参考: 理解numpy的rollaxis与swapaxes函数:https://blog.csdn.net/liaoyuecai/article/details/80193996 Numpy数组解惑: ...

  7. java并发基础及原理

    java并发基础知识导图   一 java线程用法 1.1 线程使用方式 1.1.1 继承Thread类 继承Thread类的方式,无返回值,且由于java不支持多继承,继承Thread类后,无法再继 ...

  8. Python移动自动化测试面试 ☝☝☝

    Python移动自动化测试面试   ☝☝☝ Python移动自动化测试面试 学习 教程 1.super 是干嘛用的?在 Python2 和 Python3 使用,有什么区别?为什么要使用 super? ...

  9. drf框架serializers中ModelSerializer类简化序列化和反序列化操作

    0905自我总结 drf框架serializers中ModelSerializer类 基于seriallizer类进行简化 https://www.cnblogs.com/pythonywy/p/11 ...

  10. Express框架的整体感知

    Express是基于node.js平台的快速.开放.极简的web开放框架,它的地位与作用有点类似于前端的jquery框架.它的英文官网地址为 http://expressjs.com,其对应的中文官网 ...