SRM13
由于种种原因,好像出了点锅……?
好在问题不是很大。
得分比我估的要低啊。
木之本樱 计算几何送分题
就是叫你求一共有多少组四线共点,O(n^4)暴力可以过初。
枚举两条线,求出交点之后求有多少条直线过这个点。这样是O(n^3)的,可以过续。
先把n^2 个交点求出来,排个序,统计多少个点重复。O(n^2logn)可以过终。
实际:由于出题人自己代码常数较大,导致卡暴力失败,n^4过了续,n^3过了终。
绵津见 数据结构送分题
按照题意模拟,可以过初。
以时间和x 坐标作为平面的两维,如果把每个西瓜当成一个点,每个海浪可以影响到的西瓜在一个矩形内,暴力nm 可以过续,扫描线+树状数组可以过终。
由于数据有梯度暴力能多拿一些分。
花六游鸟小 结论送分题
初是用来送分的,随便怎么暴力都行。
续好像也是用来送分的,n*(深度)^2 的做法即可。
终也是用来送分的,只要猜到几个浅显的结论就跟续一模一样了。
首先深度大于logm 的点肯定能达到最大值。因为每次我们可以把至少一半的为0 的属性变成1。
然后未到达最大值的点相邻两个肯定价值不同,也就是说路径相邻两个值不同的限制其实是把达到最大值的子树砍掉。然后套续的做法即可。
可是怎么判断一个点的价值达到最大值呢?
结论是如果有n 个01 串,记marki 为拥有第i个属性的串的集合。那么当所有marki 取遍所有可能的2^n 种集合的时候达不到最大值,否则可以达到最大值。
如果不知道最后一个结论直接暴力跑的话,(由于复杂度都在读入)这部分能拿到多少分就看你暴力怎么写了,出题人把自己的暴力卡到了70 分。
出题人的暴力分=80+60+70=210 是不是很棒棒?
最后感谢验题人:abslime、mistyeye、cgh_
补图:
SRM13的更多相关文章
- SRM13 T3 花六游鸟小(结论题)
哇这题是真的喵,HR智商太高辣 这题的难点就是看了题解之后怎么证明题解里的结论... 结论①:深度大于logm的点肯定能达到最大值 证明:显然一个西瓜的属性里0数量一半1数量一半我们取到的1数量最少, ...
- SRM13绵津见-终(扫描线+线段树/BIT)
题目大意:求对于每个i求有多少个合法的j以及j对于几个i是合法的,合法的定义:l[i]<=x[j]<=r[i],T[i]-y[i]<=t[j]<=T[i]+y[i]. 设a[i ...
- 汕头市队赛 SRM13 T2
这道题很容易想到是二分 但是因为可能会爆LL 所以要加一波特判 #include<cstdio> #include<cstring> #include<algorithm ...
- 汕头市队赛 SRM13 T3
这道题可以贪心 维护一个答案队列 枚举位置 每次将比当前位置大的队尾全部替代掉 记录删了多少了就好了 #include<cstdio> #include<iostream> # ...
随机推荐
- IOS学习3——代理
本文转载自:你真的了解iOS代理设计模式吗? 在项目中我们经常会用到代理的设计模式,这是iOS中一种消息传递的方式,也可以通过这种方式来传递一些参数.这篇文章会涵盖代理的使用技巧和原理,以及代理的内存 ...
- 通过自动回复机器人学Mybatis 笔记:接口式编程
[接口式编程]尚未遇见Spring --> 代码量反而增加 1.增加约定,减少犯错的可能(不用直接去写字符串 修改点1:命名空间 修改点2:增加接口,方法名与配置文件中的id对应 package ...
- c#程序连接mysql,报"Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='"的解决方案
=============================================== 20170607_第一次修改 ccb_warlock === ...
- Macaca自动化工具之uirecorder脚本录制
UI Recorder功能介绍 支持所有用户行为: 键盘事件, 鼠标事件, alert, 文件上传, 拖放, svg, shadow dom 支持无线native app录制, 基于macaca实现: ...
- c#代码技巧
1.#region #endregion 1.#region 是一个分块预处理命令,主要用于编辑代码分段,在编译时会自动屏蔽,同时该指令可以使代码在VS代码编辑器中折叠或展开: 2.#region必须 ...
- Numpy
一 : 安装ipython以及用到的包介绍 # 这里我们会用到ipython解释器,本文代码在ipython下运行 Pip3 install ipython Pip3 install jupyter ...
- java多线程(六)-线程的状态和常用的方法
一个线程可以处于以下几种状态之一: (1) 新建(new):当线程被创建时,它只会短暂的处于这种状态,此时它已经获得了必须的系统资源,并执行了初始化,该线程已经有资格获取cpu时间了,之后它将转化为可 ...
- Swift语言中与C/C++和Java不同的语法(四)
这一节,我们将会讨论一下Swift中的函数相关的基本内容 首先是函数的创建: func sayHello (name:String) -> String { return "Hello ...
- Struts简介、原理及简单实现
struts简介 Struts是Apache软件基金会(ASF)赞助的一个开源项目.它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目.它通过采用JavaServlet/ ...
- python中的if __name__=='__main__': main()解析
python中我们会看到一段代码是这样的: if __name__=='__main__': main() 这段代码的什么意思,我们可以知道代码的意思是如果__name__=='__main__'为T ...