2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest, qualification stage

A. Union of Doubly Linked Lists

题目描述:给出很多个双向链表,将它们连成一个双向链表。

solution
模拟,尾连头。
时间复杂度:\(O(n)\)

B. Preparing for Merge Sort

题目描述:给出\(n\)个不同的数\(a_i\),从左到右找出上升的子序列,删除,继续找,直至所有的数被删除。输出每一次找出的子序列。

solution
从左到右枚举,同时维护所有的上升序列。可以得出,靠前的序列的最后一个数是较大的,因此可以二分出当前的数\(a_i\)应该在哪一个数列。例如:
\(1, 3, 2, 5, 4\)

\(1\)

\(1, 3\)

\(1, 3\)
\(2\)

\(1, 3, 5\)
\(2\)

\(1, 3, 5\)
\(2, 4\)

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

C. Sum of Nestings

题目描述:给出\(n, k\),求出一个有\(n\)对括号的括号序列,使得该括号序列所表示的数值为\(k\),或无解。一个括号的括号序列是这样算的:一对括号里面有多少对括号,该对括号的值就是多少,然后将所有对括号的值相加就是括号序列的值。例如:()(())的值为\(1\), (((())))的值为\(6\)。

solution
显然当\(k>\frac{n(n-1)}{2}\)时,无解。然后将题目的值等价为每对括号的贡献,即在最里面的括号的贡献最大。所以可以按照贪心策略不断地在外层加括号,加到最大后减一层,继续加括号,直至得到答案。例如:\(n=4, k=5\)
((( 的值为\(3\),不能再继续往外加。
(((),减一层
((()(的值为\(5\),已为答案
((()())),补全,即为答案。
时间复杂度:\(O(n)\)

D. Dog Show

题目描述:开始时,数轴上\(1\)~\(n\)的位置上都有食物,每个位置上的食物到了\(t_i\)时刻才能吃。开始时有一只狗在\(0\)的位置,它只能向右走,不能向左走。向右走一个单位需要一个单位的时间,吃东西不需要时间,当它到了某个位置时,如果食物能吃,则吃,否则有两个选择,一是等,二是直接跳过向右走。问在\(T\)时刻内最多能吃多少食物,注意:如果狗恰好在\(T\)时刻到了某个食物前,那个食物是不能吃到的。

solution
首先想到如果需要等,则在一开始出发时就等就好了。
假设等的时间为\(wait\),则\(x=i\)的食物能吃到的条件是\(t_i \leq wait+i <T\)
移项得:\(t_i - i \leq wait < T-i\)
假设在\(T\)时刻时狗要跑到\(x=i\)处,则\(wait\)最大为\(T-i\),因为前面的尽量要吃到,所以\(wait\)取最大值,而\(T-i\)会随\(i\)的增大而变小,即有单调性,所以可以用优先队列维护\(t_i-i\),在\(i\)不断增大时更新答案。
时间复杂度:\(O(nlogn)\)

E. Packmen

题目描述:有一个\(1 \times n\)的网格,每个网格要么是*, 要么是P,要么是.P可以随意移动,遇到*的格子会把*吃掉。每个格子可以有多个PP移动一格需要一个单位的时间,吃掉*不需要时间,问最短需要多长时间能吃掉所有*

solution
二分答案。然后从左到右分配好每个P吃哪些*。每个P有两种走法:先向右走,再向左走;或先向左走,再向右走。处理一下就好了。

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

F. Berland Elections

题目描述:有一场选举,有\(n\)个候选人,\(m\)个选民,\(k\)个席位。选举结束后,按选票的多少将候选人排序,票数相同的按最后一张选票靠前的排在前面。然后前\(k\)个人当选,但若前\(k\)个人中有人一张选票都没有,则这个人不能当选,后面的人无须补上,即最后当选人数有可能少于\(k\)。现有\(a\)个人已经投票,且知道他们投给谁,问每个候选人人属于下列的那种情况:

  1. 一定能当选
  2. 可能能当选
  3. 一定不能当选

solution
第一种情况:第\(i\)个候选人现在排在前\(k\)位,且票数大于\(0\),且将排在他后面的人移到他之前并使他掉出前\(k\)位所需票数大于\(m-a\)。
第三种情况:剩下的\(m-a\)张票都投给他也不能将他移至前\(k\)位。
剩下的均为第二种情况。
时间复杂度:\(O(n^2)\)

G. University Classes

题目描述:有\(n\)组人,每组人在某些时间需要占用一间课室,占有的时间用一个\(7\)位二进制数表示。问最少需要多少间课室。

solution
模拟,二进制的每一位最多有多少个\(1\)。
时间复杂度:\(O(n)\)

H. Load Testing

题目描述:给出一个序列\(a_i\),将某些数增大,使得该序列变成一个先严格上升,再严格下降的序列,求出最少的增值和(每个数的增值可以不一样)

solution
先预处理当\(i\)为山峰时\(1\)~\(i\)的增值和,以及\(i\)到\(n\)的增值和,还有相对应的\(i\)的峰值。然后枚举山峰,通过预处理的值可以得出答案。

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

I. Noise Level

题目描述:有一个\(n \times m\)的网格,每个网格要么是住宅,要么是障碍,要么是噪声源。每个噪声源对每个格子的影响为\(\frac{q}{2^d}\),其中\(d\)为噪声源到格子的最短距离(路径中不能有障碍,不能越出边界),若不能连通,则\(d\)为无穷大。求噪音总和大于\(p\)的格子有多少个。

solution
因为\(q\)比较小,所以直接暴力就好了。

时间复杂度:\(O(nm(logq)^2)\)

J. Students Initiation

题目描述:给出一个无向图,将其变成有向图,使得每个点的出度最大值最小,输出出度最大的最小值和有向图。

solution
二分答案,然后边与点连边,跑一次网络流判断是否可行。

时间复杂度:不可估计

K. Travel Cards

题目描述:依次乘坐\(n\)条路线(有重复),车票为\(a\)元,换乘为\(b\)元(路线\(i\)的终站与\(i+1\)的起点相同时为换乘)。现在可以为不多于\(k\)条线路买交通卡,每张卡的费用为\(f\),买卡后,乘坐该路线(双向)不用给钱,问乘坐这\(n\)条线路最少需要多少钱。

solution
首先若没有交通卡,则每一条路线的钱是知道的,所以可以将每条线路的花费总和算出来,从大到小排序,若买卡比较便宜,则买卡,否则不买。

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

L. Berland SU Computer Network

题目描述:有一个树,给出这棵树的每一个节点的每一个分叉连着的是哪些点,还原这棵树,或无解。

solution
若有解,则每次找只有一个分叉的点,这些点为叶子节点,然后在其它点的分叉删掉这些点,若某个点的分叉删点该叶子节点后分叉减少,则这个点连着叶子节点。不断重复,直至所有点删除。
无解情况则是在找到这棵树后构出每个节点的分叉连着的点,与输入对比,若不同,则无解。
时间复杂度:\(O(n^2)\)

M. Weather Tomorrow

题目描述:给出一个序列,判断它是否时等差数列,若是,则输出序列的下一项,否则输出序列的最后一项。

solution
求公差,枚举判断。

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

2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest, qualification stage的更多相关文章

  1. 2018-2019 ACM-ICPC, NEERC, Southern Subregional Contest, Qualification Stage(11/12)

    2018-2019 ACM-ICPC, NEERC, Southern Subregional Contest, Qualification Stage A. Coffee Break 排序之后优先队 ...

  2. D. Dog Show 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest, qualification stage (Online Mirror, ACM-ICPC Rules, Teams Preferred)

    http://codeforces.com/contest/847/problem/D 巧妙的贪心 仔细琢磨... 像凸包里的处理 #include <cstdio> #include & ...

  3. 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest, qualification stage (Online Mirror, ACM-ICPC Rules, Teams Preferred)

    题目链接:http://codeforces.com/problemset/problem/847/I I. Noise Level time limit per test 5 seconds mem ...

  4. 2019.04.18 第六次训练 【2018-2019 ACM-ICPC, NEERC, Southern Subregional Contest, Qualification Stage】

    题目链接: https://codeforces.com/gym/101911 又补了set的一个知识点,erase(it)之后it这个地址就不存在了,再引用的话就会RE A: ✅ B:  ✅ C: ...

  5. 2018-2019 ICPC, NEERC, Southern Subregional Contest

    目录 2018-2019 ICPC, NEERC, Southern Subregional Contest (Codeforces 1070) A.Find a Number(BFS) C.Clou ...

  6. Codeforces 2018-2019 ICPC, NEERC, Southern Subregional Contest

    2018-2019 ICPC, NEERC, Southern Subregional Contest 闲谈: 被操哥和男神带飞的一场ACM,第一把做了这么多题,荣幸成为7题队,虽然比赛的时候频频出锅 ...

  7. 2018.10.20 2018-2019 ICPC,NEERC,Southern Subregional Contest(Online Mirror, ACM-ICPC Rules)

    i207M的“怕不是一个小时就要弃疗的flag”并没有生效,这次居然写到了最后,好评=.= 然而可能是退役前和i207M的最后一场比赛了TAT 不过打得真的好爽啊QAQ 最终结果: 看见那几个罚时没, ...

  8. 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror) Solution

    从这里开始 题目列表 瞎扯 Problem A Find a Number Problem B Berkomnadzor Problem C Cloud Computing Problem D Gar ...

  9. Codeforces1070 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred)总结

    第一次打ACM比赛,和yyf两个人一起搞事情 感觉被两个学长队暴打的好惨啊 然后我一直做傻子题,yyf一直在切神仙题 然后放一波题解(部分) A. Find a Number LINK 题目大意 给你 ...

随机推荐

  1. windows上配置连接git

    Windows7上安装Git   我首先是百度到了这个网站:https://git-scm.com/download/win 这个网站上有下载链接,你可以根据你的系统选择不同的下载链接,我的是Win7 ...

  2. 学习Python最好的方法就是实践和教程并行,以下有一些资源和教程,还有一些学习思维导图:

    1.Python 的 14 张思维导图下载地址: https://woaielf.github.io/2017/06/13/python3-all/ 2.Python基础教程|菜鸟教程: http:/ ...

  3. BZOJ4972 小Q的方格纸

    每个格子记录其左下的45°直角梯形区域的和及左下矩形区域的和即可. #include<iostream> #include<cstdio> #include<cmath& ...

  4. Notepad++查找和替换空行/空格/换行

    Notepad++查找和替换支持正则表达式,功能很强大,但比较复杂因此暂不研究 Notepad++使用正则表达式查找,首先需要勾选查找/替换窗口左下部的“正则表达式(E)”\r\n表示换行,其中\r表 ...

  5. [区分] 1.计算机网络/internet(互联网) 2.Internet(因特网) 3.www/web(万维网)

    internet(互联网或互连网)是一个通用名词,泛指由多个计算机网络互联而成的虚拟网络.Inernet(因特网)是一个专用名词,指当前全球最大的.开放的.由众多网络相互连接而成的特定的计算机网络,它 ...

  6. Day19内容回顾

    1,Django请求的生命周期 路由系统-视图函数(获取模板+数据->渲染)->字符串返回给用户 2,路由系统 /index/ 函数或类.as_view() /detail(\d+)/ 函 ...

  7. Spring Cloud Greenwich 新特性和F升级分享

    2019.01.23 期待已久的Spring Cloud Greenwich 发布了release版本,作为我们团队也第一时间把RC版本替换为release,以下为总结,希望对你使用Spring Cl ...

  8. 洛谷U14200 Changing 题解 【杨辉三角】

    题目描述 有nnn盏灯环形排列,顺时针依次标号为1⋯n1\cdots n1⋯n.初始时刻为000,初始时刻第iii盏灯的亮灭aia_iai​给定,000表示灭,111表示亮.下一时刻每盏灯的亮灭取决于 ...

  9. POJ.3468 A Simple Problem with Integers(线段树 区间更新 区间查询)

    POJ.3468 A Simple Problem with Integers(线段树 区间更新 区间查询) 题意分析 注意一下懒惰标记,数据部分和更新时的数字都要是long long ,别的没什么大 ...

  10. PHP 中的新语法 new static 是个啥意思?

    简单通俗的来说, self就是写在哪个类里面, 实际调用的就是这个类.所谓的后期静态绑定, static代表使用的这个类, 就是你在父类里写的static, 然后通过子类直接/间接用到了这个stati ...