51Nod 算法马拉松15 记一次悲壮而又开心的骗分比赛
OwO 故事的起源大概是zcg前天发现51Nod晚上有场马拉松,然后他就很开心的过去打了
神奇的故事就开始了:
晚上的时候我当时貌似正在写线段树?然后看见zcg一脸激动告诉我第一题有九个点直接输出B就可以A。。
然后之后zcg以奇怪的二分方式发现了如何A掉第一题的第十个点(我记得貌似是什么第5000个数等于511?
OwO 就这样没有任何思考含量全凭骗分黑科技过掉了第一题 OwO
然后zcg打开了第二题,发现第二题样例有点问题,然后就发了个帖子,直接去看第三题了
我去瞅了一眼,发现这不是gcd array的裸题么?然后zcg去粘了一发那道题目,然后改了改就交了
结果悲壮的T了,我们惊奇的发现貌似gcd array原来O(n*sqrt(n)*log(n))的做法过不去
出去跑步回来zcg开始推式子,推了不到20s他扔下笔说这不是思博题么,然后就开始写
我凑过去一看发现把gcd(i,j)=1莫比乌斯反演掉就是O(n*sqrt(n))的复杂度了
大概在要回宿舍的时候A掉了
第二天起来发现第二题题面改了(其实我是很久以后才知道这件事情的,想原来的题面想了好久。。
上午考了场自己被卡常滚粗的考试,没有顾得上51Nod
下午发现一大批人都过了好多题,zcg发现E题貌似是个数据结构,然后就去搞E了
我下午一直在改考试题,貌似zcg和溪哥化模型化了很久,然后溪哥过来给我说了一道我看上去跟E题完全没关系的题目
我当时大脑非常懵逼,看着这个题目YY了一下分块,发现好难维护,然后开始口胡要离线
口胡完离线之后发现还是好难维护,然后我又开始口胡要维护个树状数组什么的bulabula
貌似圆满以非常诡异的O(n*sqrt(n)*log(n))的时间复杂度解决了这个问题
之后貌似zcg和溪哥又讨论了一些关于字符串的奇怪的问题,最后貌似得到了奇怪的但是非常优秀的做法?
我在旁边一直说什么n<=50000,O(n*sqrt(n)*log(n))根本不虚的话来给zcg加油助威
zcg吐槽了一句好难写之后开始码码码,容我先回想一下他们的做法:
貌似是要建trie,建广义后缀自动机,搞出parent树,然后要拉出一棵主席树,之后做一个奇怪的分块,还要把所有询问离线。。
(这模型化的6的不行啊
不过zcg码力超群,这么坑爹的做法他飞快的码完了,在WA了几发之后对着对拍改了貌似两个错误就A掉了这道题目
最后听zcg说写了8K。。
下午lyc发现第二题题面改掉了,想了想,发现了一个非常有用的性质
然后写了一发数位DP成功A掉了B题
随后zcg也相继A掉了B题
发现排名貌似不低,再A掉一道题就有奖金了,一阵激动
然后就回宿舍碎觉了
第三天,也就是今天,zcg发现有一大波人排在上面
F题貌似除了dls没人能A,我们决定去搞D题
窝上午头痛欲裂,写了一道CF的C之后就已经完全支撑不了自己的意志了
完全想不了题,一想题就头疼
然后就专心去看D题,准备口胡一些奇怪的做法
n<=35?貌似可以meet-in-the-middle?
想了想貌似信息合并不可做
突然想到之前做过一道数位DP带上LIS的东西的状态压缩的做法
然后就瞅了眼那道题,回想了一下做法
脑补了一下有用的状态貌似很少?然后就开始怂恿zcg去写
zcg写了一发发现随机数据跑的飞快,然后交上去只T掉了8个点OwO
然而还是0分,特判了一发完全上升的排列,然后T掉了7个点
然而还是0分,算了算貌似只要在A两个点就可以有5分了
开始准备搞一搞看看能不能优化些东西,我头痛欲裂不想继续想了就去看看meet-in-the-middle能不能做
一上午并没有什么结果,只是又多了几个人A掉了D题,心慌ing
中午回去碎觉,思博的窝自以为想出来了正确的做法,跑过去跟zcg说,结果刚说几句话就发现有问题
下午来到机房发现又多了几个人A掉D题,更加心慌
这时候lgl提出我们可以利用黑科技,我虽然不是很喜欢这种做法
但是为了奖金OwO,然后我们几个人就开始用各种奇怪的方式搞数据了
策爷的数据真良心啊,只要知道貌似前三个数就会发现这个序列是有规律的?
然后机智的不到半个小时搞到了所有的数据,开始搞答案,发现内存开不够,状态数太多了(说好的看上去状态数很少呢?
zcg怂恿我写暴力,我说暴力求LIS的O(nlogn)要写的常数很小才可以,我好虚啊
然而最后我还是被逼着写暴力了,写完了之后把程序发给了机房众,然后机房众齐心协力开始搞答案
从貌似差不多三点左右开始跑,到了快五点的时候所有答案都齐了
zcg机智的A掉了D题,但是并没有什么卵用,因为A掉D题的人太多了
zcg rank11 刚好没有钱 sad-story。。
我们悲伤欲绝,突然发现貌似策爷因为是出题人所以不计排名?然后zcg卡线拿钱?
机房在那一瞬间貌似都跳了起来,OwO 我们都在欢呼 OwO
感觉那个时刻好开心啊,很久没有这么开心了呢
这个时候我场外求助到了一些可以精简状态的做法,然后怂恿zcg又去写了一发D题
然后测了测发现跑的不慢,交了一发还是T了7个点
然后测了测自己搞到的数据,发现了程序貌似有奇怪的bug,改了改发现状态数大概400w上下
貌似要跑1.8s?然而时限只有1.5s,拼命优化常数,然而还是卡不过去,so sad
绝望的窝放弃挣扎了,决定等比赛结束看题解了OwO(应该还有更精妙的优化状态的做法?
(他们D题为什么都AC得辣么6啊,有没有老司机教我D题的正确姿势
最后的最后去看了看F题,发现并没有什么好的思路,就连分块打表也做不到
看来果然F题没几个人过是很正常的啊
不管怎么样,马拉松总算以一种奇怪的方式打完了
不管最后能不能拿到钱把,感觉这几天过的好开心啊QAQ
51Nod 算法马拉松15 记一次悲壮而又开心的骗分比赛的更多相关文章
- 51nod算法马拉松15
智力彻底没有了...看来再也拿不到奖金了QAQ... A B君的游戏 因为数据是9B1L,所以我们可以hash试一下数据... #include<cstdio> #include<c ...
- 51NOD 算法马拉松8
题目戳这里:51NOD算法马拉松8 某天晚上kpm在玩OSU!之余让我看一下B题...然后我就被坑进了51Nod... A.还是01串 水题..怎么乱写应该都可以.记个前缀和然后枚举就行了.时间复杂度 ...
- 51nod 算法马拉松 34 Problem D 区间求和2 (FFT加速卷积)
题目链接 51nod 算法马拉松 34 Problem D 在这个题中$2$这个质数比较特殊,所以我们先特判$2$的情况,然后仅考虑大于等于$3$的奇数即可. 首先考虑任意一个点对$(i, j)$ ...
- 随便玩玩系列之一:SPOJ-RNG+51nod 算法马拉松17F+51nod 1034 骨牌覆盖v3
先说说前面的SPOJ-RNG吧,题意就是给n个数,x1,x2,...,xn 每次可以生成[-x1,x1]范围的浮点数,把n次这种操作生成的数之和加起来,为s,求s在[A,B]内的概率 连续形的概率 假 ...
- 51Nod 算法马拉松21(迎新年)
这次打算法马拉松是在星期五的晚上,发挥还算正常(废话,剩下的题都不会= =). 讲讲比赛经过吧. 8:00准时发题,拿到之后第一时间开始读. A配对,看上去像是二分图最大权匹配,一看范围吓傻了,先跳过 ...
- 51Nod 算法马拉松23 开黑记
惨啊……虽然开了半天黑,但是还是被dalao们踩了…… 第二次开黑,还是被卡在rank20了,我好菜啊……= = 写一写比赛经过吧…… 看到题之后习惯性都打开,A~D看上去似乎并没有什么思路,F应该是 ...
- 51Nod 算法马拉松22 开黑记
这是一场惨烈的开黑大战,始于全机房开黑指望刷进rank前十拿钱的壮志,终于被各路神犇怒踩成rank20,差点200点头盾不保的落魄,想起将近一年前ad和zcg等学长挤进rank10的壮举,不由得唏嘘, ...
- 51nod算法马拉松 contest7
A题 链接:http://www.51nod.com/contest/problem.html#!problemId=1417 推荐链接:http://blog.csdn.net/a837199685 ...
- 51nod 算法马拉松18 B 非010串 矩阵快速幂
非010串 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 如果一个01字符串满足不存在010这样的子串,那么称它为非010串. 求长度为n的非010串的个数.(对1e9+7取模) ...
随机推荐
- 安装Ubuntu 15.10后要做的事
Ubuntu 15.10发布了,带来了很多新特性,同样也依然带着很多不习惯的东西,所以装完系统后还要进行一系列的优化. 1.删除libreoffice libreoffice虽然是开源的,但是Java ...
- 条款20:以const-reference传递替换by-value传递
缺省情况下,C++中函数参数的传递方式为by-value.即函数都是以实际参数的副本进行传递,而函数返回的也是一个副本.考虑如下实例程序: #include <iostream> clas ...
- .Net开源数据库设计工具Mr.E For Linq (EF 6.1) 教程(三)更新已发布的数据库
项目发布到服务器后,如果在后期,数据库的结构发生变更,如何更新到服务器呢? 首先,右键点击数据库,导出结构脚本文件 把脚本文件和 Mr.E.rar拷贝到服务器,在服务器解压Mr.E,运行其中的“更新数 ...
- self.a 和 _a 的区别
在OC中我们可以通过指令@property定义属性. OC对属性封装了许多方法,同时也会自动实现一些方法,相比实例变量,感觉更加面向对象些. 一般定义属性的方法如下,在Class Test中定义属性i ...
- Sqrt(x)
Implement int sqrt(int x). Compute and return the square root of x. 参考:http://standalone.iteye.com/b ...
- Socket的双网卡收发(C#)
最近的一个项目中需要同时使用两块网卡收发UDP组播数据包,并且要求使用Socket的方式接收和发送网络数据包(我不会告诉你们我之前是直接使用SharpPcap来实现的).在C#中Socket接触的比较 ...
- 或许你不知道:ArrayList
ArrayList 底层以一个transient 线性数组来存储数据,它提供了无参构造方法,和有参构造方法,用户可以通过有参构造方法来初始化长度.如果不传参数,则默认调用无参构造器,数组默认长度为10 ...
- Linux常用命令查看日志
cattail -f日 志 文 件 说 明 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关的日 ...
- Javascript中常用事件的命名
OnClick :单击事件 OnChange:改变事件 OnSelect:选中事件 OnFocus:获得焦点事件 OnBlur:失去焦点事件 Onload:载入文件 OnUnload:卸载文件 anc ...
- Oracle Goldengate和Oracle Data Integrator的初步认识
免责声明: 本文中使用的部分图片来自于网络,如有侵权,请联系博主进行删除 1. Oracle Glodengate是什么? GoldenGate是oracle的一种基于数据库日志的数据同步软件 ...