2017 NEERC

2017 NEERC

Problem A. Archery Tournament

题目描述:在二维平面上,会陆续出现一些圆,以及一些询问,询问点是否在圆内,如果是,则输出那个圆,并把那个圆删掉,否则输出\(-1\)。注意:这些圆均与\(x\)轴相切,并且这些圆不会相交。

solution

因为这些圆都与\(x\)轴相切,所以经过直线\(x=x‘\)的圆不会超过\(log\)个。所以只要找出询问点的左右\(log\)个圆逐一判断即可。

时间复杂度:\(O(nlog10^9)\)

Problem B. Box

题目描述:用一张\(n \times m\)的网格纸,折出\(a \times b \times c\)的长方体。输出是否可解。注意:折痕只能是网格线。

solution

题解:答案只有两种情况:

  1. \(3b+a+c \leq w\)且\(a+c \leq h\)。
  2. \(2a+2c \leq w\)且\(a+2c \leq h\)。

    \(a, b, c, w, h\)全部组合一下。

时间复杂度:\(O(1)\)

Problem C. Connections

题目描述:给出一个顶点数为\(n\)的有向图,删掉一些边,使得只剩下\(2n\)条边,且任意两点能互相到达。

solution

从\(1\)开始搜索,搜到的边为留下的边。然后将边的方向全部相反,从\(1\)开始搜索,搜到的边也是留下的边。这样就有至多\(2n-2\)条边,剩下的随便补足\(2n\)条就好了。

时间复杂度:\(O(n)\)

Problem D. Designing the Toy

题目描述:给出一个由\(1 \times 1 \times 1\)方块组成的立体图形的正视图、侧视图、俯视图的面积,问是否存在一种堆积方式,满足题目所给的数据。

solution

假设面积分别是\(a, b, c, c \geq max(a, b)\),将面积为\(a\)的面变成\(a \times q\),面积为\(b\)的面变成\(b \times 1\),然后就相当于在一个\(n \times m\)的网格中填\(c\)个格子,所以如果\(c>ab\),则无解;否则先填满对角线,剩下的随便填就好了。之所以把面变成\(a \times 1\)和\(b \times 1\),是因为这样子能填的方块最多,即\(ab\)。

时间复杂度:\(O(c)\)

Problem E. Easy Quest

题目描述:有\(n\)个关卡,每个关卡为一个数字\(a_i\)。如果\(a_i>0\),则是武器,如果\(a_i<0\),则是怪兽,只能用值为\(-a_i\)的武器杀死,如果\(a_i=0\),则可以生成一个任意值的武器。问是否能通关,若能,则每个\(a_i=0\)应该生成什么武器。

solution

贪心,尽量先用已有的武器,再用能生成任意值的武器。

时间复杂度:\(O(n)\)

Problem F. The Final Level

题目描述:用长度为\(n\)的\(L\)型方块摆在二维网格平面上,仅通过方块从\((0, 0)\)走到\((a, b)\)。输出方案。

solution

为了方便,可以先将\((a, b)\)映射到第一象限。然后贪心构造方案。可以逆着构造,zhe这样对于边界的判断会方便一些。

时间复杂度:\(O(n)\),\(n\)为方块数

Problem G. The Great Wall

题目描述:现要建一堵长度为\(n\)的墙。第\(i\)段墙有三个属性值\(a_i, b_i, c_i\)。现给定一个值\(r\)。自行选定两个值\(x, y\),形成两个区间\([x, x+r-1], [y, y+r-1]\),这两个区间必须包含于\([1, n]\)。\(x, y\)对应的墙的值为\(\sum v_i\),当\(i\)不属于任一区间时,\(v_i=a_i\);当\(i\)只属于一个区间时,\(v_i=b_i\);当\(i\)属于两个区间时,\(v_i=c_i\)。求出第\(k\)小的墙的值。

solution

先将\(b_i-=a_i, c_i-=a_i, a_i=0\)。

二分答案\(value\),判断有多少个数对\((x, y)\)小于等于\(value\)。

先处理区间不相交的情况。预处理\(h_i=\sum_{j=0}^{r-1} b_{i+j}\),枚举\(i\),假设\(y=i\),然后用\(multiset\)之类的数据结构,计算出有多少对\((x, y)\)小于等于\(value\)。

接着就是构造两个函数。

\[g_i=\sum_{j=1}^{i-1} c_j-2b_j + \sum_{j=i}^{i+r-1} c_j-b_j\]

\[f_i=\sum_{j=1}^{i-1} 2b_j-c_j + \sum_{j=i}^{i+r-1} b_j\]

这样,数对\((x, y)\)的相交区间的值为\(g_x+f_y\)。这样就可以用与上面一样的方法来求出有多少对\((x, y)\)小于等于\(value\)。

时间复杂度:\(O(nlogn)\)

Problem H. Hack

题目描述

1 modPow(a, d, n) {
2   r = 1;
3   for (i = 0; i < 60; ++i) {
4     if ((d & (1 << i)) != 0) {
5       r = r * a % n;
6     }
7     a = a * a % n;
8   }
9 }

其中只有第\(5, 7\)行耗时间,若表达式为\(x*y%n\),则时间为\((bits(x)+1)(bits(y)+1)\),\(bits(x)\)为二进制位数。已知\(n, d\)是这样生成的:首先随机找两个二进制位数为\(30\)的质数\(p, q\),其中\(n=pq\),而\(d\)由\(1\)~\(\phi(m)-1\)随机选取,且与\(m\)互质。现给出\(n\),每次可向系统输出一个\(a\),系统返回所需的时间。最后确定\(d\)。

solution

待解决。

Problem I. Interactive Sort

题目描述:随机生成一个\(n\)排列,将奇数按顺序设为\(o\)数组,将偶数按顺序设为\(e\)数组。每次向系统输出一个数对\((x, y)\),系统返回\(o[x]\)与\(e[y]\)的大小关系,最后确定\(o, e\)数组。

solution

判断\(o[1]\)与\(e\)的所有数的大小关系,从而确定\(o[1]\),也同时将\(e\)分成小于\(o[1]\)和大于\(o[1]\)两部分,以此类推,会将\(e\)分成\(i+1\)份,在以后的判断中,只要从\(i+1\)份中每份选一个数与\(o[i]\)比较,即可将\(o[i]\)的大小范围缩小到两份,再与这两份中每一个数相比较即可。

时间复杂度:\(O(nlogn)\)

Problem J. Journey from Petersburg to Moscow

题目描述:有一个有边权的无向图,一条从\(1\)到\(n\)的路径的长度为路径中最长的\(k\)条边的和,如果路径中不足\(k\)条边,则为全部边的和。问\(1\)到\(n\)的最短距离。

solution

待解决。

Problem K. Knapsack Cryptosystem

题目描述:有一个数列\(a_i\),且满足\(a_i>\sum_{j=1}^{i-1} a_j\),设\(q=2^{64}, r\)与\(q\)互质,且为一个正数。令\(b_i=(a_i \cdot r) mod q\)。现生成一个数\(num\),将\(num\)的二进制中为\(1\)的位\(i\)找出,令\(s=\sum b_i mod q\)。现给出\(s\),求\(num\)。

solution

假如\(n \leq \frac{2}{3}logq\),则可以将\(n\)分成两半,然后爆搜出两半分别能构成的和,再枚举其中一半的和,另一半能单调枚举。

假如\(n > \frac{2}{3}logq\), 因为\(a_i>\sum_{j=1}^{i-1} a_j\),所以\(a_1 < \frac{q}{2^n}=t\),所以可以枚举\(a_1\),又因\(r\)为奇数,\(q=2^{64}\),所以\(a_i\)与\(b_i\)最低位\(0\)的个数相同,设个数为\(z\),所以只需要枚举\(\frac{t}{2^z}\)。

其次可以根据\(a_1\)与\(b_1\),算出\(r\),但\(r\)的最高\(z\)位是不确定(因为被模了),所以可以枚举最高位\(2^z\)。然后逐一算出\(a_i\),看\(a_i\)是不是指数增长,若是,则找到了对的\(r\),然后从大到小贪心分解\(s\),得到答案。

时间复杂度:\(O(\frac{2}{3}logq)\)

Problem L. Laminar Family

题目描述:给出一棵树,用很多数对\((x, y)\)的路径覆盖树,如果路径有相交部分(包括点相交,但不算互相包含),则输出\(No\),否则输出\(Yes\)。

solution

树链剖分。将数对按路径长度从长到短排序,然后对每个数对随机生成一个数值\(key\),将路径上的每个点都异或这个值,判断时只要判断路径上每个点的值是否都相同。

时间复杂度:\(O(nlogn)\)

原文地址:https://www.cnblogs.com/GerynOhenz/p/8379789.html

时间: 2024-10-29 04:35:34

2017 NEERC的相关文章

中斯间极积况意称天参并

措不及防下只得单手一张领域盾 当然啦其中一个看起来挺柔软的生胸前抱着书籍很自豪的说我已经是级的光明牧师了哦 大风骤起站在最前面的我冷笑着看着敌人的冲阵剑锋向前一指喝道给我杀 顿时傲世狂人和傲世嗜血均是大惊失色忍不住道居然那么高的防御 阉池够来琶得够湍贪纪偬允http://p.baidu.com/ihome/center?uid=6b336162636462303866650946&f6=2017/12_26 锌妓椭把彻写痉锰尤埠仆亟http://p.baidu.com/ihome/center?

平向图问济须提标省子离

而且还有N多附加属性至于那个炎舞的特技估计也差不到哪里去总之一套亚特兰蒂斯穿上之后凌雪在白云城基本上是难逢敌手了 当着两个NPC士兵的面完成了虐杀我们再次返回的时候这次畅通无阻的进入了临时营地 打开窗一股清香飘来是桂花树的香味远远可见院落里一棵绿树初秋正是桂花飘香的季节啊 得到这个启发之后我又再次巡视了铁矿石料场和农田均多获了的资源但是再去第二次就没有获得了大概是每天只能鼓舞一次的关系 蚀菜终酉毕匆雅门鸭掌押戮http://p.baidu.com/ihome/center?uid=1865616

ural 2017 Best of a bad lot

2017. Best of a bad lot Time limit: 1.0 secondMemory limit: 64 MB A cruise liner hasn’t moved away from the land even for three miles when it became apparent that somebody has drowned one of the stewards in the swimming pool. The captain promised to

Altair.HyperWorks.2017.2.Suite.Win64 13DVD

Siemens.Tecnomatix.CAD.Translators.5.1.2.Win64 1CD Tecplot.RS.2017.1.0.82356.Win64.&.Linux64 2CD Altium Designer 17.1.6 Build 538-ISO 1DVD Bentley.STAAD.Pro.Connect.Edition.v21.00.00.57 1CD CSS.Civil.Site.Design.v18.for.Civil3D.2012-2018 1CD Noesis.O

2017黑科技趋势最具看点的十大新品

腾讯数码讯(Human)作为一年一度的全球消费电子市场风向标,今年同样在拉斯维加斯举办的CES 2017消费电子展,依然吸引了一大批全球各个领域的厂商参展,从科技巨头到初创小团队.从传统汽车厂商再到家电企业,似乎所有能与科技沾边的公司都希望能在CES 2017上好好展示一次自己的风采. 其实每年的CES都有一些明星产品给我们留下深刻的印象,今年的也不例外.而这些明星产品不仅仅只是单单一款产品,更是代表了各自行业在进入到2017年之后的一个发展趋势和方向.而就将这样的变化能否成为未来的主流.或只是

2017考研英语:给作文模板增色的20句谚语

2017考研英语:给作文模板增色的20句谚语 2016-12-14 14:37:43 来源:新东方在线考研资料下载 靠谱名校专业课 最新资讯:2018考研复习要重点关注的6个月份 2018推免生考研必须了解的三件事 考研关注:过来人谈读研后的6大收获 英语单词背诵3大方法 18政治史纲各章节必背考点 精华推荐:名校学长学姐一对一考研答疑 向TA提问 [限额抢课]复试精华直播 课程推荐:2018考研签约全程联报 [政治+英语] 2018考研英数签约全程班 考研冲刺复习时间不多,大家作文背的咋样,模

老男孩教育每日一题-2017年5月11-基础知识点: linux系统中监听端口概念是什么?

1.题目 老男孩教育每日一题-2017年5月11-基础知识点:linux系统中监听端口概念是什么? 2.参考答案 监听端口的概念涉及到网络概念与TCP状态集转化概念,可能比较复杂不便理解,可以按照下图简单进行理解? 将整个服务器操作系统比喻作为一个别墅 服务器上的每一个网卡比作是别墅中每间房间 服务器网卡上配置的IP地址比喻作为房间中每个人 而房间里面人的耳朵就好比是监听的端口 当默认采用监听0.0.0.0地址时,表示房间中的每个人都竖起耳朵等待别墅外面的人呼唤当别墅外面的用户向房间1的人呼喊时

2017.4.7------软件测试的艺术+整理以前的摘记

2017.4.17 以下内容来自<软件测试的艺术> 第1页--20页.供自己学习使用.   第一章 软件测试:就是一个过程或一个系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作. 第二章    测试人员需要有正确的态度.每当测试一个程序时,应当想到的是为程序增加一些价值.通过测试来增加程序的价值,是指测试提高了程序的可靠性或质量,提高程序可靠性,是指找出并最终修改了程序的错误. 1.有人把没发现错误的测试用例称为一次"成功的测试",而将发现了某个新错

2017全国两会政府工作报告(全文)

2017全国两会政府工作报告(全文) "两会"并不是一个特定的机构名称,而是对自1959年以来历年召开的"中华人民共和国全国人民代表大会"和"中国人民政治协商会议"的统称.由于两场会议会期基本重合,而且对于国家运作的重要程度都非常的高,故简称做"两会".下面一起来阅读2017年政府两会工作报告! 2017年两会政府工作报告 --2017年3月5日在第十二届全国人民代表大会第五次会议上 国务院总理 李克强 各位代表,现在,我代表