BestCoder Round #90

有生以来第一场在COGS以外的地方打的比赛。挂成dog了。
主要是没有经验,加之代码能力过弱。还有最后的瞎hack三次,Too Young Too Simple......
言归正传。
(抄一发题解先)
用两个布尔数组分别维护每个行/列是否被插过旗帜,最后枚举每一行、列统计答案即可。空间复杂度O(n+m),时间复杂度O(n+m+k)。
设根节点的深度为0,将所有深度为奇数的节点的石子数目xor起来,则先手必胜当且仅当这个xor和不为0。 证明同阶梯博弈。对于偶深度的点上的石子,若对手移动它们,则可模仿操作;对于奇深度上的石子,移动一次即进入偶深度的点。 时空复杂O(n)。
考虑用树状数组维护每一个位置是否为一段颜色的起点(下简称“起点”)。 询问时,只需要查询区间内起点个数,再特判左端点是否为起点,即可求得答案。 针对合并操作,如果暴力合并,复杂度显然是O(n^2)的,尝试用启发式合并优化它。 用数组维护每种颜色的位置个数,合并时,将个数少的颜色全部修改成个数多的颜色。 由于具体实现仍与暴力合并类似,因此可以轻易地维护前面提到的树状数组。 需要注意的是,由于合并时可能交换颜色,因此还需要维护每个数代表的真实颜色。 由于采用了启发式合并,因此时间复杂度为O(nlogn+Qlog2n)或O(nlogn+Qlogn)。 本题也可以用线段树或其他很多数据结构解决。
题目的寻路决策看似复杂,因此考虑转化。 我们发现,如果从起点走到一个目标格子,再从原路返回起点,即可仅改变目标格子被访问次数的奇偶性。 因此,所有的${2}^{灯数}$种情况都是可以“走”出来的,也就是说,我们可以任意地决定每个位置是否“按下”。 题目转化为经典的高斯消元问题。但是暴力求解复杂度为O((nm)^3)O((nm)3)太高,不能通过全部数据。 找到一个jj,使得∣xj∣最大的前提下∣yj∣最大,不妨假设我们找到的xj=dx,yj=dy。适当地翻转棋盘后,如果前∣dy∣行∣dx∣列的“按下”情况已经确定,那么其他所有位置的“按下”方案也就确定(由于目标为使棋盘全亮,因此可以递推求出)。于是只需要枚举前∣dy∣行∣dx∣列即可。 然后就是经典的求异或方程组不同解个数的问题了。可以用高斯消元求出自由元个数,并求得答案。 当n,m同阶时,时间复杂度约为O(\frac{(5n)^3}{32})。 *本题最大的叉点是翻转棋盘。*
然后说说自己的比赛历程吧。
由于放假,这次比赛是在家打的。
头比赛的时候正好要吃晚饭,于是乎10min rush完了晚饭,速速赶去看题。
(我才不想说我看题的时候没看见右边那个中文,结果傻乎乎的去读英文题……)
一看T1,好像很水的样子,于是乎跳过去了(卧槽感觉这是SB行为……都怪我习惯了打OI赛制了= =)……
看了看T2,好不容易读懂了,发现是个博弈论,应该是SG定理什么的,然而并没有用过,跳。
一看T3,卧槽这不是梦幻布丁的原题么……
T4表示没太看懂,反正看样子不太可能会写(赛前听说ACM赛制是A了才会有分),跳。
然后开始码T3的线段树+set启发式合并,然后写挂了……废了废了……
然后开始调T3,然而我是边聊QQ边打的比赛,怎么可能调的出来……到了还剩不到1h的时候果断放弃,去水掉了T1(QAQ感觉自己真zz)。
回过头来继续调T3,然而还是调不出来,还剩10min的时候放弃去想T2,然而太紧张了并没有想出来。
倒计时到00:00:00之后突然又续上了15min,好久才反应过来这好像是hack时间……之前看楼天城的回忆录写道他造了一组随机大数据成功hack掉了同屋的rank1,于是乎造了一个T3的大数据,粘贴之后Chrome死掉了……于是乎放弃大数据,手造了一个数据来卡那些没考虑颜色相同和没有的,然而测试数据都过了的代码怎么可能被我hack掉……成功get-3……
总结一下得到的经验和教训:
1.有空了解了解ACM赛制= =
2.比赛的时候要专心……不要聊QQ……
下一站,51nod算法马拉松。加油。
BestCoder Round #90的更多相关文章
- BestCoder Round #90  //div all 大混战 一题滚粗  阶梯博弈,树状数组,高斯消元
		
BestCoder Round #90 本次至少暴露出三个知识点爆炸.... A. zz题 按题意copy Init函数 然后统计就ok B. 博弈 题 不懂 推了半天的SG..... 结果这 ...
 - BestCoder Round #90 A+B题解!
		
BestCoder Round #90 A Kblack loves flag 题意有点迷不造思路很简单但不造怎么求随机数,纠结了一会后直接粘上题目所给的代码稍加修改A了. const int _K ...
 - BestCoder Round #90 A.Kblack loves flag(随机数生成种子)
		
A.Kblack loves flag [题目链接]A.Kblack loves flag [题目类型]水题 &题意: kblack喜欢旗帜(flag),他的口袋里有无穷无尽的旗帜. 某天,k ...
 - HDU	5996  dingyeye loves stone ---BestCoder Round #90
		
题目链接 设根节点的深度为0,将所有深度为奇数的节点的石子数目xor起来,则先手必胜当且仅当这个xor和不为0. 证明同阶梯博弈.对于偶深度的点上的石子,若对手移动它们,则可模仿操作:对于奇深度上的石 ...
 - HDU 5995  Kblack loves flag  ---BestCoder Round #90
		
题目链接 用两个布尔数组分别维护每个行/列是否被插过旗帜,最后枚举每一行.列统计答案即可.空间复杂度O(n+m),时间复杂度O(n+m+k). #include <cstdio> #inc ...
 - HDU - 5996  树上博弈      BestCoder Round #90
		
就是阶梯NIM博弈,那么看层数是不是奇数的异或就行了: #include<iostream> #include<cstdio> #include<algorithm> ...
 - hdu5634 BestCoder Round #73 (div.1)
		
Rikka with Phi Accepts: 5 Submissions: 66 Time Limit: 16000/8000 MS (Java/Others) Memory Limit: ...
 - BestCoder Round #89  02单调队列优化dp
		
1.BestCoder Round #89 2.总结:4个题,只能做A.B,全都靠hack上分.. 01 HDU 5944 水 1.题意:一个字符串,求有多少组字符y,r,x的下标能组成等比数列 ...
 - bestcoder Round #7 前三题题解
		
BestCoder Round #7 Start Time : 2014-08-31 19:00:00 End Time : 2014-08-31 21:00:00Contest Type : ...
 
随机推荐
- linux 下 sudo 指令不需要输入密码的配置
			
sudo的配置文件位于 /etc/sudoers 里面.具体操作如下: 打开sudoers文件. bo@engineer ~/ $ sudo nano /etc/sudoers 假定你的用户名为 m ...
 - 分布式服务框架 dubbo/dubbox 入门示例
			
dubbo是一个分布式的服务架构,可直接用于生产环境作为SOA服务框架. 官网首页:http://dubbo.io/ ,官方用户指南 http://dubbo.io/User+Guide-zh.htm ...
 - jS字符串大小写转换实现方式
			
toLocaleUpperCase 方法:将字符转换为大写 stringVar.tolocaleUpperCase( ) 必选的 stringVar 引用是一个 String 对象,值或文字. //转 ...
 - Android EventBus实战 没听过你就out了
			
转载请表明出处:http://blog.csdn.net/lmj623565791/article/details/40794879,本文出自:[张鸿洋的博客] 1.概述 最近大家面试说经常被问到Ev ...
 - FineUI小技巧(6)自定义页面回发
			
前言 FineUI中的绝大部分回发事件都是由控件触发了,比如按钮的点击事件,下拉列表的改变事件,表格的排序分页事件.但有时我们可能会要自己触发页面回发,这时就要知道怎么使用 JavaScript 来做 ...
 - 【Chrome】新建Chrome插件,新建,事件行为,本地存储
			
源:walkingq 1,新建:静态网站+manifest.json:[注:mainifest_version是chrome 18以后新增key] manifest.json 截图 2,事件行为: 3 ...
 - RecyclerView的使用(三)
			
上个小结中介绍了如何使用RecyclerView显示不同的数据展示样式(瀑布流也是可以显示的,从GridView改就好) 本节来为RecyclerView的item添加监听事件. RecyclerVi ...
 - C#-和时间有关的计算代码、时间相减 得到天数、小时、分钟、秒差
			
asp.net(C#)时间相减 得到天数.小时.分钟.秒差 asp.net(C#)时间相减 得到天数.小时.分钟.秒差 DateTime dtone = Convert.ToDateTime( ...
 - .NET 微信Token验证和消息接收和回复
			
public class wxXmlModel { public string ToUserName { get; set; } public string FromUserName { get; s ...
 - Leetcode 285. Inorder Successor in BST
			
Given a binary search tree and a node in it, find the in-order successor of that node in the BST. 本题 ...