UOJ Test Round #2
昨天晚上打的这个比赛,简直一颗赛艇啊……
感觉发挥的并不好。比赛的时候比较紧张,最后一题还脑残写了个离散化结果爆零了,哎我怎么这么逗逼……
讲讲比赛经过吧。
比赛之前逗逼地以为是8:00开始,然后淡定了5min就被告知是7:00……哎我怎么这么逗逼把开始时间都记错了2333……
头比赛的时候在写xor和路径,一看还剩下1min+,马上就扔了开始数倒计时。
7:00准时发题,拿到题之后直接开读。
A题目排列顺序,哎好像不太难的样子,不管了读完题再说。
B题目交流通道,卧槽这什么图论还要计数的玩意儿,不会不会。
C题目难度提升,哎卧槽好像是个数据结构题,算了去写A题好了……
读题的时候对面lrd和dbw在那儿讨论上下界网络流,有点吵……不过很快就停了,lrd回来开始读题。
又读了一遍A题,是要求构造一个LIS的DP数组恰好为给定输入的方案,考虑到LIS问题可以用RMQ优化,可以在线读入然后动态维护,鉴于这是个带插入的RMQ,用平衡树维护就好了。一开始写的是Treap,元素先用double标号最后再一遍离散化出解,写着写着发现不对劲,一些情况我不会分类讨论(太紧张了……),算了不用double标号了,直接动态插入最后查询一遍名次就行了,然后一怒之下把Treap删了再写splay……(毕竟查询名次可以直接splay一下然后返回左子树大小嘛……感觉这点比较方便)写了100+行,然后开始调,调了10min感觉不对劲,既然每次直接插入到最后一个比它小的后面,换句话说f值相同的应该降序排列,f值不同的肯定是要升序了,卧槽我是SB吗我干嘛要用splay动态维护啊直接一发std::sort()不就完了嘛……一怒之下把splay的代码扔到一边去了,然后写了一个24行的std::sort(),哎1h+才把第一题写完,我是傻叉……
交上去之后过了样例,感觉好虚啊就写了一发数据生成器和spj,结果spj写挂了调了半天,调出来了比赛都过了一半多了……我菜爆了= =
中间lrd写完了三道题的暴力(没错,就是无脑暴搜……)说他70分到手了,因缺斯汀……
然后开始打暴力,反正暴力也很无脑,lrd直接告诉我第二题暴搜一下然后Floyd判断就有30分了,然而我写完了又调了半天……最后一题写了个暴搜+平衡树维护中位数,然后我脑残以为离散化不会影响结果,就离散化了一发(居然能过样例……简直坑爹有没有……),感觉10分到手了(此时已经只剩0.5h+了……),然后开始去想T2,想了几分钟觉得自己肯定不会,就去想T3,想到9:35没啥进展,然后一看数据范围感觉互不相同的离散化成排列之后肯定有规律,然后就开始用暴搜搜规律,还真特么搜出来了……
(最后两行是一晚上没关机搜出来的……)
这规律多明显啊,每项显然都是可以直接算的,然后码码码加上n<=13的暴力交上去了。写的时候lrd告诉我离散化有反例,想了想好像真是这样,啊感觉好虚要爆零了(毕竟有捆绑测试……)……
晚上睡觉有点一颗赛艇,想着最后一题能不能骗到分,然而很快就睡着了……
早上看见成绩了,woc最后一题还是爆零了……只拿到了rank56,不过好歹涨了点Rating,算是小小的安慰吧……
lrd拿了rank19,我菜爆了……
贴一下第一题的代码(splay的那个傻逼做法就不贴了……):
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=;
struct A{
int d,pos;
bool operator<(const A &a)const{
if(d!=a.d)return d<a.d;
return pos>a.pos;
}
}a[maxn];
int n,seq[maxn];
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d",&a[i].d);
a[i].pos=i;
}
sort(a+,a+n+);
for(int i=;i<=n;i++)seq[a[i].pos]=i;
for(int i=;i<=n;i++)printf("%d ",seq[i]);
return ;
}
扔一发官方题解赶紧跑……
反思:
这次比赛的时候过于紧张,A题傻逼做法浪费了1h,B题的60分也没有搞出来,C题写了个暴搜还爆零了……
反映出自己还是太弱,水平还需要提高。
下一站,BestCoder Round #91。加油。
(话说下次又是ACM赛制了……Bless all……)
(吐槽一发,这特么简直就是遥遥无期啊……)
UOJ Test Round #2的更多相关文章
- UOJ Easy Round#7
UOJ Easy Round#7 传送门:http://uoj.ac/contest/35 题解:http://matthew99.blog.uoj.ac/blog/2085 #1 题意: 在一个(2 ...
- UOJ Test Round 1
第一题: 题目大意: 给出N个字符串,字符串的前面部分都是字母且都是一样的,后面部分是数字,按照后面的数字排序.N<=10000 解题过程: 1.第一题是真良心,一开始的做法是把后面的数字分离出 ...
- 【UOJ Easy Round #1】
数论/Trie/并查集 猜数 这题我是这样分析的…… $a*b=g*l=n=k^2 \ and \ (g|a,g|b) \Rightarrow (g*a')*(g*b' )=g*l=k^2 \\ \R ...
- UOJ Easy Round #5
Preface 本着刷遍(只刷一遍)各大OJ的原则我找到了一场UOJ的比赛 无奈UOJ一般的比赛难度太大,我就精选了UER中最简单的一场打了一下,就当是CSP前的练习吧 A. [UER #5]万圣节的 ...
- 【UOJ Easy Round #2】
然而UER我也照样跪…… 第一题 忘了取模sad || 操作符将整个区间分成了一些段,每个手机只会执行其中某一段,执行次数为这一段中&&的个数?+1? ans=ans*num[i]+1 ...
- UOJ Rounds
UOJ Test Round #1 T1:数字比大小的本质是按(长度,字典序)比大小. T2:首先发现单调性,二分答案,用堆模拟,$O(n\log^2 n)$. 第二个log已经没有什么可优化的了,但 ...
- 51Nod 算法马拉松21(迎新年)
这次打算法马拉松是在星期五的晚上,发挥还算正常(废话,剩下的题都不会= =). 讲讲比赛经过吧. 8:00准时发题,拿到之后第一时间开始读. A配对,看上去像是二分图最大权匹配,一看范围吓傻了,先跳过 ...
- NOI前训练日记
向别人学习一波,记点流水帐.17.5.29开坑. 5.29 早晨看了道据说是树状数组优化DP的题(hdu5542),然后脑补了一个复杂度500^3的meet in the middle.然后死T... ...
- 半小时写完替罪羊重构点分树做动态动态点分治之紫荆花之恋的wyy贴心指导
刷题训练 初学者 有一定语言基础,但是不了解算法竞赛,水平在联赛一等奖以下的. 参考书:<算法竞赛入门经典--刘汝佳>,<算法竞赛入门经典训练指南--刘汝佳> 题库:洛谷(历年 ...
随机推荐
- Struts2系列——struts2的result
在action的指定方法执行完毕后总会返回一个字符串,struts2根据返回的字符串去action的配置中的result去找匹配的名字,根据配置执行下一步的操作. 在ActionSupport基类中定 ...
- bzoj1486: [HNOI2009]最小圈
二分+dfs. 这道题求图的最小环的每条边的权值的平均值μ. 这个平均值是大有用处的,求它我们就不用记录这条环到底有几条边构成. 如果我们把这个图的所有边的权值减去μ,就会出现负环. 所以二分求解. ...
- 省常中模拟 Test4
prime 数论 题意:分别求 1*n.2*n.3*n.... n*n 关于模 p 的逆元.p 是质数,n < p. 初步解法:暴力枚举.因为 a 关于模 p 的逆元 b 满足 ab mod p ...
- LeetCode: divideInteger
Title: Divide two integers without using multiplication, division and mod operator. If it is overflo ...
- oracle查询某个用户下的所有视图
SYS>select view_name from dba_views where owner = 'NS_RAS3'; VIEW_NAME--------------------------- ...
- 【转】iOS-延迟操作方法总结
原文网址:http://lysongzi.com/2016/01/30/iOS-%E5%BB%B6%E8%BF%9F%E6%93%8D%E4%BD%9C%E6%96%B9%E6%B3%95%E6%80 ...
- MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql
目录(?)[-] 一MyBatis简介与配置MyBatisSpringMySql MyBatis简介 MyBatisSpringMySql简单配置 搭建Spring环境 建立MySql数据库 搭建My ...
- 【转】匹配dll(exe)和pdb方法
1. 静态检查windbg 调试工具包中有一个工具symchk.exe, 选项很多, 下面一个简单的用法可以检查一个 test.exe能不能找到与它匹配的PDB: 这是成功的情形. 下面来个失败的作为 ...
- POJ 1519 Digital Roots
题意:求数根. 解法:一个数的数根就是mod9的值,0换成9,只是没想到给的是一个大数……只好先把每位都加起来再mod9…… 代码: #include<stdio.h> #include& ...
- python easy_install centos 下安装过程和原理解析
一.easy_install 安装过程 其安装过程有很多种,我也找了很多的例子,但是结果都不太好,以下方法的结果是不错的. easy_install与yum类似,使用easy_install,可以轻松 ...