THUWC2019 游记
DAY1
开场先看 t1,发现答案的分子就是 \(\sum_i\) 颜色 \(i\) 在 A 中的出现次数乘上颜色 \(i\) 在 B 中的出现次数,分母就是 B 的长度,就去写了一个按颜色的出现次数分类的东西,复杂度为 \(O(n\sqrt q+q\sqrt n)\),交上去直接 pp 了。
然后去看 t2,感觉是个分类讨论题,想了一下感觉第一问还是很可做的,就去写第一问了。
过了一会发现 A 题空间是 \(O(q\sqrt n)\) 的,就去改成了 \(O(n\sqrt n)\) 的。
然后就去把 t2 的第一问写完了。
接着就去做 t3 了,先把暴力写了,然后看了一下提示,说是要容斥。想了一会并没有想到怎么容斥。
被打爆了。
pt 分:\(100+60+10=170\)
出来后欧稳欧、zjt 都说 t3 是傻逼题。
晚上鸽了开幕式去睡觉了。
DAY2
先看了 t1,感觉可以点分。过了一会发现直接线段树合并就好了(当然也可以离线树状数组),花了半个小时写了一下交上去就 pp 了。
t2 看到 feature2 可以把重心求出来就去想点分了。怎么想都只会 \(O(n\log^2n)\) 的垃圾做法。写完后交上去直接过了除了 \(lim1=3999,lim2=3997\) 的点。然后构造了几组数据卡了卡常,就没管了。
t3 我好像之前看过类似的题,想了一下,直接对凸包的最后一条边DP是 \(O(n^4)\) 的,按极角排一下序就 \(O(n^3)\) 了。于是就花了半个多小时写完了。感觉还是挺好写的。
然后回来看 t2,发现还是不会。
被打爆了。
pt 分:\(100+79+100\)
出来后 zjt 又说 t2 是傻逼题,只要没去想点分治,一层层做就 win 了。
DAY2+
8 个图像处理题。
- 计算一个序列的 ADLER32 校验码(20分)
- 计算一个序列的 CRC32 校验码(30分)
- 读取简单 PNG 图片(50分)
- 写入简单 PNG 图片(50分)
- sobel 算子 边缘检测(20分)
- halton 序列 随机采样(20分)
- 基于像素的纹理合成(30分)
- 基于块的纹理合成(80分)
开场翻了一下手册,感觉要从前往后做。
先花了半个多小时把前两个点写了,然后花了一个半小时搞中间两个点,最后剩下一点时间把第五个点写了。
感觉前面几个点都没什么技术难度,把文档读完然后对着文档写就好了。
读文档一定要仔细,有几个同学就因为读漏了某些条件被坑了。
感觉正常人都不太能写得完。。。我只写了前面五个点。神仙 zjt 写完了前面七个点。
DAY3
上午在报告厅听讲评,顺便和神O、神J、麦老大、老K聊天。讲题人说两天的 t3 都只有个位数的人过。
下午听学长们介绍算协、科协,听 LazyJazz 讲提前上学、光线追踪、写游戏,还有清华老师吹水。然后就发协议奖状了。
今年因为某些原因,不能直接发协议,只能先发奖状。
题解
DAY1
A
显然答案的分子就是 \(\sum_i\) 颜色 \(i\) 在 A 中的出现次数乘上颜色 \(i\) 在 B 中的出现次数,分母就是 B 的长度。
把询问拆成四个前缀的询问,然后直接莫队就好了。
块大小设为 \(O(\frac{n}{\sqrt q})\),复杂度为 \(O(n\sqrt q+q\log q)\)。
B
大力分类讨论。
C
先把第一次 \(A=B\) 就停止变成要求 \(m\) 次操作后 \(A=B\)。
记 \(f(i)\) 为第 \(i\) 次操作后 \(A=B\) 且前面都不满足要求的方案数,\(g(i)\) 为第 \(i\) 次操作后 \(A=B\) 的方案数,\(w\) 为 \(A=B\) 之后每次操作可选的方案数,就有 \(f(i)=g(i)-wg(i-1)\),求一下和就有 \(\sum_{i=1}^m f(i)=\sum_{i=1}^m g(i)-\sum_{i=0}^{m-1}wg(i)\)。
然后容斥,枚举最终有多少个 \(i\) 不满足 \(a_i=b_i\),然后就是要求:某些点 \(a_i\geq b_i\),某些点 \(a_i>b_i\) 的方案数。
对于每一个 \(b_i\) 的值分别DP。
每一层记 \(h_{i,j}\) 为考虑了前 \(i\) 个位置,不合法的区间个数为 \(j\) 的方案数(乘上容斥系数)。因为合法区间个数是 \(O(n^3)\) 的,不合法的区间个数只有 \(O(n^2)\)。转移的时候枚举下一个位置是选 \(b_i\) 还是选 \(b_i+1\),直接多项式乘法即可。
时间复杂度:\(O(n^4)\)。
DAY2
A
对于每一条边 \(i\),计算子树内有多少个点 \(j\) 满足 \(a_i+c_j\leq b_i+d_j\) 以及 \(c_j\)、\(d_j\) 的和。子树外同理。
然后随便搞搞就好了。
B
先用 \(n-1\) 次 feature1 算出每个点的深度,然后对于每个点求它的父亲是上一层的那个点,每个点求父亲可以用一次 feature2 或 \(O(\log n)\) 次 feature1 操作完成(要注意到询问的集合是可重集)。
C
\(\overline{x}=\frac{\sum x}{m},\sigma^2=\frac{x^2}{m}-{(\frac{\sum x}{m})}^2\)。这样就只用计算方案数、面积和、面积的平方和了。
DP出下凸壳的两个端点为 \(i,j\) 的方案数:记 \(f_{i,j,k}\) 是左端点为 \(i\),最后两个点为 \(j\) 和 \(k\) 的信息。转移时枚举下一个点 \(l\),判断是否可行,转移到 \(f_{i,k,l}\)。按极角排序一下然后用双指针扫一下可以优化到 \(O(n^3)\)。
然后把两个凸壳拼在一起就好了。
DAY2+
对着文档码码码就好了。
THUWC2019 游记的更多相关文章
- THUWC2019游记
Day -INF 听说自己苟进了THUWC,然而我还什么都不会啊,这样去了不得被吊打. 随便列了几个WC前的计划,然而到最后一个都没有完成,感觉学习效率好低啊,周围一众神仙天天吊打我. Day 0 坐 ...
- 【比赛游记】THUWC2019酱油记
往期回顾:THUSC2018酱油记 day 0 早上 7 点的动车,不知道是从哪儿到哪儿的(雾),只知道从福建到广东 233333 一个值得思考的问题:福建人会不会被广东人吃啊? 动车上玩空洞骑士,可 ...
- @游记@ THUWC2019
目录 @day -???@ @day -30~-1@ @day 0@ @day 1@ @day 2@ @day 3@ @day -???@ 我这个蒟蒻居然收到了 THUWC 的邀请? 那就去试试运气吧 ...
- 【比赛游记】NOIWC2019冬眠记
上接THUWC2019酱油记. 贴一点文艺汇演的精彩表演: https://www.bilibili.com/video/av42089198/ https://www.bilibili.com/vi ...
- 【比赛游记】THUSC2019酱油记
往期回顾:THUWC2019酱油记 时间过得真快呐-- 上次在 THUSC 手玩 AI 的情景还未走远,明天却要迎来全新一年的赛事了-- 掐指一算,作为一个真正的 OIer 的时光也不多了啊 day ...
- 【20161203-20161208】清华集训2016滚粗记&&酱油记&&游记
先挖坑(这个blog怎么变成游记专用了--) 已更完 #include <cstdio> using namespace std; int main(){ puts("转载请注明 ...
- 【20160722-20160728】NOI2016滚粗记&&酱油记&&游记
先挖坑 #include <cstdio> using namespace std; int main(){ puts("转载请注明出处:http://www.cnblogs.c ...
- NOIp2016 游记
DAY -2 不要问我为什么现在就开了一篇博客. 本来想起个NOIp2016爆零记或者NOIp2016退役记之类的,但是感觉现在不能乱立flag了.所以就叫游记算了. 前几场模拟赛崩了一场又一场,RP ...
- NOIP2016游记
只是游记而已.流水账. Day0:忘了. Day1:看完T1,本以为T2一如既往很简单,结果看了半天完全没有思路.然后看了一眼T3,期望,NOIP什么时候要考期望了,于是接着看T2.一开始我推的限制条 ...
随机推荐
- Hexo优化 | 创建sitemap站点地图并向Google提交
前言 站点地图是一种文件,您可以通过该文件列出您网站上的网页,从而将您网站内容的组织架构告知Google和其他搜索引擎.Sitemap 可方便管理员通知搜索引擎他们网站上有哪些可供抓取的网页.搜索引擎 ...
- DSAPI 键盘鼠标钩子
通常,说到Hook键盘鼠标,总需要一大堆代码,涉及各种不明白的API.而在DSAPI中,可以说已经把勾子简化到不能再简化的地步.甚至不需要任何示例代码即会使用.那么如何实现呢? Private Wit ...
- Flask实战第5天:页面跳转和重定向
GET和POST请求 在网络请求中有许多请求方式,比如GET, POST, DELETE, PUT等,最常用的就是GET和POST GET 只会在服务器上获取资源,不会更改服务器的状态,这种请求方式推 ...
- 前端面试知识点集锦(JavaScript篇)
目录 1.谈谈你对Ajax的理解?(概念.特点.作用) 2.说说你对延迟对象deferred的理解? 3.什么是跨域,如何实现跨域访问? 4.为什么要使用模板引擎? 5.JavaScript是一门什么 ...
- 基于mapnik做切片服务器的几点总结
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在地图服务器的整体方案中,移动端采用矢量切片,样式解析采用th ...
- 可达用户投资额的计算(Java)
有话要说: 前阵子遇到了一个计算可达用户投资额的问题,觉得非常有趣,故把它记录下来. 问题描述: 某产品可被投资,注册后才可以投资,其注册可以被邀请(并不是每个人都是被邀请的).邀请人可以邀请多个人注 ...
- 【English】八、食物相关
一.beer.wine.coffee.soup.oil.juice beer 啤酒 They drink beer. wine 葡萄酒 Wine and coffee. coffee 咖啡 Wine ...
- 安装Docker时错误提示 "could not change group /var/run/docker.sock to docker: group docker not found"的解决方案
安装Dock服务,主要命令是 yum install docker. 但是在启动的时候报错:warning msg="could not change group /var/run/doc ...
- 自托管websocket和webapi部署云服务器域名及远程访问
当写完websocket和webapi服务端时,在本地测试时是没有问题的,因为是通过本地IP及端口号访问(例:127.0.0.1:8080\api\test),也就没有防火墙等安全限制,但当部署到云服 ...
- 移动端和PC端弹出遮罩层后,页面禁止滚动的解决方法及探究
PC端解决方案 pc端的解决思路就是在弹出遮罩层的时候取消已经存在的滚动条,达到无法滚动的效果. 也就是说给body添加overflow:hidden属性即可,IE6.7下不会生效,需要给html增加 ...