WC2015流水账
THU那四场考试没考好,只有20+名。这也许是我OI生涯中最后一场吧(已确认是最后一场),真是感慨万千。
day0
搬进浙大宿舍404房间(神房间号),四个人一间。中午发现学军伙食相当良心,是我参加的OI活动中最良心的
day1
徐寅展
讲了一些动态维护图的连通性以及最小生成树的算法,太深了,基本上只听懂第一个维护图的连通性的算法。下面就简单讲一下这个算法吧。
首先,这个算法是在线算法,其时间复杂度是m lg^2。离线算法可以做到m lg,用LCT维护最大生成树就行了(边权为边被删除的时间)。
大概做法是,维护\(\lg{n}\)个生成森林,满足第i个森林是第i+1个森林的子集,并且其每棵树的大小不超过\(2^i\)。然后,考虑删除一条树边,这时需要尝试寻找一条替换边来连接断开的两块。假设在第i个森林中删边,设断开的两块中较小的那块大小为k,显然\(k \leqslant 2^{i - 1}\),所以可以将其加入第i - 1个森林。我们将所有这些边降级到i - 1。由于每条边至多降级lgn次,总共至多降级mlgn次。每片森林需要用LCT维护,另外还要维护和某一块连接的所有边,故复杂度还要乘上一个lg。
吴争锴
日程表上写的是“ACM题目选讲”,没想到成了Primality Test。讲了一个神一般的AKS算法,根本听不懂。只记得这个算法的发现证明了PRIMES in P,因为它可以在多项式时间内判定素性。但是这玩意儿有什么用?朴素实现复杂度据说是\(\Omega{\lg{n}^{10}}\),加了优化似乎能够做到\(\Theta{\lg{n}^{6}}\),但还是比Miller Rabin慢到哪里去了。
还有就是,Miller Rabin似乎可以改造为确定性算法,但其依赖于黎曼猜想的正确性。
有印象的大概就这些,其他时候也许我在睡吧。
day2
俞鼎力
Tree Decomposition,乍看还以为是链剖。其实是一个神爆了的玩意儿,叫做图的“树分解”。这东西之前从来没有听说过啊,看来OI正在蓬勃发展(似乎很多OI中常用的算法都是某神犇从paper通过WC的渠道引进的)。
大概就是把一张图弄成一棵树,树上的节点对应于原图的一个集合(不一定互不相交),并且原图中的每个节点,树中仅有一个极大的非空的包含它的连通块。
定义一张图的树宽为该图的所有树分解中,最大的节点集合的大小的最小值。
对于树宽的上界为一个小常数的图,一些问题可以通过构造这样的树分解,然后用树形dp在多项式时间内高效地解决。例如最大独立集和哈密顿回路。总的来说就是,因为每个集合的大小可以看做常数,所以即使我们乱搞,复杂度也是多项式的。
另外还讲了几个近似算法。这个好理解,但是感觉也不好写,而且难说在OI中有什么用。
董宏华
我很早就听说拟阵这个东西可以用来证明贪心的正确性,因为我个人总是不太会贪心的证明,所以一直都比较想了解拟阵,但由于种种原因一直都没有学。现在终于学了,感觉还是很厉害的。
只简单说一下。由拟阵的性质(遗传性和增广性,即其中任意一个独立集都可通过增广变成某个基),容易证明求拟阵的权值最大(或最小,由于基的大小是一定的)的基的贪心算法的正确性。只需要从大到小考虑每个元素,尝试将其加入当前集合,如果加入后为独立集则加入,否则跳过就行了。
例如Kruskal算法,其实就是求图的环拟阵的权值最小的基(其中的独立集便是不成环的边集)。
day3
胡伟栋
讲计算几何,总体较简单。不过我还是有收获的。我现在知道扫描线有多强大了。
沈洋
构造题选讲。我感觉构造题都是谜一样的,一般不看题解根本不会,看了题解后往往又觉得是自己傻逼了。这堂课大概又感受了一下神构造题的威力吧。
day4
范浩强
又是randomization。前面部分讲Goldreich-Levin算法,听不懂。后面讲了交互式证明,比较好玩。不过由于讲的有用的东西过于神犇,所以这堂课也谈不上有多大收获。
陈立杰
陈老师这次的主题出人意料地正常:OI中的计数题(记得去年是函数式数据结构,而且还是英文讲义)。讲了许多值得收藏的好题。
day5上午考试,感觉精神状态还是不错的。
先看了第一题,要求k小割,感觉不好做,没思路,于是看了第二题。发现题目极长并且是fhq出的,所以直接跳到第三题(事实证明这是正确的决定)。第三题是提交答案题,要求对给出的一些逗比算法进行优化,用另一个算法得出相同的结果。这些算法都是用代码给出的,所以先要读懂它们在干什么。
我很快搞出了1,2,4,5这四个点,3是问前n项的i次方和,我想到的方法有:1.求伯努利数 2.带值求出几个点后进行多项式插值,可以用高斯消元或拉格朗日插值法 3.差分后用矩阵快速幂
我想了一会儿,感觉用第三个比较靠谱。于是就用这个搞出了3。
然后看了第一题数据范围,发现有10分暴力,中间有40分的特殊情况。对于这40分我第一感觉是拿堆搞,但是想了想感觉又不好弄。稍不注意状态就会暴涨。不过我还是想到了靠谱的做法,对每个状态只需要记最后的不是最优的位置以及它是选B还是AB都选,另外记下方案的权值就行了。然后每个状态有至多3个后继状态,选择将后面一个变成选B,或者将当前的换成后面一个,或者如果当前是B,将当前的换成选AB。能够想到这样搞从初始状态到每个选择方案的途径都是唯一的,并且每个状态的后继状态都更劣。所以拿堆搞搞就好了。有用的状态总数不超过3k。
然后所剩时间就不多了。第二题感觉是没希望把题意理解正确了,第三题看了后几个点发现有两个点可以搞点部分分出来,所以又搞了几下。
结果50 + 0 + 51。第三题中间有两个点的得分比预计的少,总共比预计少了3分。应该是爆了精度了。这个也不太好检查因为没有给checker。
听说最高分是160+,看来是要退役了。
day6
上午游西湖。下午高端论坛,然后闭幕式。
闭幕式上终于宣布了十五人名单。不出所料,我就这样退役了。
今年一等奖分数线没上70,比去年低了不少。
WC2015流水账的更多相关文章
- 菜鸟的Python学习之路(流水账)
揭开Python的面纱 开始是因为别人说Python简单才开始学的,然后那段时间刚考完研,也没什么事,就多少瞅了瞅,然后发现语法的确简单很多,或者说简洁更合适. 当时看的是简明Python教程,没用多 ...
- 2014 Hangjs 见闻流水账第二天
前言 第一天传送门: 2014 Hangjs 见闻流水账第一天 写作风格跟第一天还是一样的. Slide 每个slide我都会根据自己的理解重新命名一次,用于表达自己的第一看法,主观意见,不喜可吐槽, ...
- 2014 Hangjs 见闻流水账第一天
前言 6月21日~6月22日, 第一次跑远门去参加一个大会(广州 -> 杭州),本来打算,在火车的回来的路上,把这两天的东西记录一下,不过,火车上的环境实在恶劣,同时也高估了自己的专注力,所以, ...
- WC2015 k小割(k短路+暴力+搜索)
首先这道题不是非同一般的恶心,三个数据层次对应三个程序= = PROBLEM:http://uoj.ac/problems解法: 1~2直接暴力枚举边的选择与否+判断就行了 7~14可以发现是一个平面 ...
- WC2015 冬眠营滚粗记
WC2015 转眼间就过去了,回想半年前我还是一个无知的渣渣现在已经能参加冬令营了心里真的有点小激动= =,先不论胸牌滚粗的结果,来讲一下自己这几天的经历吧 DAY 0: 早上起来才发现自己什么都没收 ...
- [流水账]搜索与web-container版本匹配的jar包
刚才发现自己的servlet-api.jar里面的javax.servlet.jsp为空的,但是我又需要做一些JSP tag-lib的编程,所以没办法,只好去下一个新的包 上网找了找,我用的tomca ...
- k3 cloud付款单提示余额不足,科目余额表中余额为正,银行存款流水账中未负数
对比科目余额表中的科目明细账和银行存款流水账,发现科目余额表不全,这说明有部分凭证没做,付款的时候验证的主要以银行流水账为主(主要来自现金流量表),这时候需要调整出纳部分和总账部分
- WSL配置高翔vslam环境配置流水账
1 安装参考博文链接:https://www.cnblogs.com/dalaska/p/12802384.html 2 Ubuntu 16.04地址:https://www.microsoft.co ...
- WC2015 题解
K小割 题目链接:WC2015 K小割 Description 题目很清楚了,已经不能说的更简洁了-- Solution 这道题出题人挺毒的,你需要针对不同的部分分施用不同的做法 . 第\(1\)部分 ...
随机推荐
- c# linq的一些运用
最近在学习xml.linq 网上也找了一些资料都不大全面,因此在这写了一点东西和大家分享,由于本人知识有限,如有错误请指证 可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的 ...
- 海尔的U+智慧生活操作系统
通过一个手机APP就能操控家庭内的不同品牌的家电家居设备.在连接Wifi的状态下,海尔智能路由器能够自动连接上家庭里的智能冰箱.智能洗衣机.智能空调.智能烤箱.空气盒子等设备端.在智能手机上下载海尔U ...
- Java基础知识强化84:System类之exit()方法和currentTimeMillis()方法
1. exit方法: public static void exit(int status): 终止当前正在运行的Java虚拟机.参数用作状态码:根据惯例,非0的状态码表示异常终止. 调用System ...
- [CSAPP笔记][第九章虚拟存储器][吐血1500行]
9.虚拟存储器 为了更加有效地管理存储器且少出错,现代系统提供了对主存的抽象概念,叫做虚拟存储器(VM). 虚拟存储器是硬件异常,硬件地址翻译,主存,磁盘文件和内核软件的完美交互. 为每个进程提供一个 ...
- codevs 2995 楼房
/*暴力30分*/ #include<iostream> #include<cstring> #include<cstdio> #include<map> ...
- 趣味算法——青蛙过河(JAVA)
青蛙过河是一个非常有趣的智力游戏,其大意如下: 一条河之间有若干个石块间隔,有两队青蛙在过河,每队有3只青蛙,这些青蛙只能向前移动,不能向后移动,且一次只能有一只青蛙向前移动.在移动过程中,青蛙可以向 ...
- HTML中<b>标签和<strong>便签的区别
最近碰到的问题,自己写的时候因为<b>标签比较简短偶尔使用,看到别人有使用<strong>标签的,本人不懂区别,在网上找的别人的东西,觉得很有道理,跟大家分享看看~~ 链接:h ...
- PHP输出中文乱码的问题(转)
用echo输出的中文显示成乱码, 其实应该是各种服务器脚本都会遇到这个问题, 根本还是编码问题, 一般来说出于编码兼容考虑大多的页面都将页面字符集定义为utf-8 <meta http-equi ...
- SQL从入门到基础 - 01 数据库开发及ADO.Net
一.数据库概述 1. 用自定义文件格式保存数据的劣势:并发性差,查找数据的速度差. 2. DBMS(DataBase Management System数据库管理系统)和数据库.平时谈到“数据库”的含 ...
- python的exec、eval详解
exec exec语句用来执行储存在字符串或文件中的Python语句.例如,我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句.下面是一个简单的例子. exec ' ...