2018 年“三盟科技杯”中国大学生程序设计竞赛(湖南)

2018 年“三盟科技杯”中国大学生程序设计竞赛(湖南)

A. Easy h-index

题目描述:给出一个数组\(a_i\),求最大的\(h\),使得至少有\(h\)个数不少于\(h\)。

solution

模拟。

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

B. Higher h-index

题目描述:写论文,当一份论文花费了\(x\)小时时,这份论文会得到\(ax\)个引用,\(a\)是给定的常数,\(x\)必须为正整数,每份论文都可以被之后自己写的论文引用,现在有\(n\)个小时写论文,求最大的\(h\),使得至少有\(h\)份论文得到的引用个数不少于\(h\)。

solution

当\(n \leq a\)时,答案为\(n\)。

当\(n > a\)时,若要使答案为\(h\),则采取贪心策略:每份论文只用一个小时,要保证前\(h\)份论文的引用个数不少于\(h\),则\(h-a+h \leq n\),所以\(h_max=\frac{1}{2}(a+n)>n\),所以最终答案为\(\frac{1}{2}(a+n)\)。

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

C. Just h-index

题目描述:给出一个数组\(a_i\),每次询问一个区间\([L, R]\),求最大的\(h\),使得\([L, R]\)内至少有\(h\)个数不少于\(h\)。

solution

可持久化线段树。

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

F. Sorting

题目描述:给定\(n\)个三元组\((a_i, b_i, c_i)\),求一个字典序最小的排列\(p_i\),使得

\[\frac{a_{p_{i-1}}+b_{p_{i-1}}}{a_{p_{i-1}}+b_{p_{i-1}}+c_{p_{i-1}}}\leq\frac{a_{p_i}+b_{p_i}}{a_{p_i}+b_{p_i}+c_{p_i}}\]

solution

按题目要求排序。

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

G. String Transformation

题目描述:给定两个字符串\(S, T\),\(S, T\)由‘a, b, c‘组成,可以对字符串\(S\)进行操作,每次删除或插入‘aa‘, ‘bb‘, ‘abab‘,问\(S\)是否能变成\(T\)。

solution

操作中没有‘c‘,也就是说可以以‘c‘为间隔拆分字符串,通过手工计算,可以知道字符串中的‘ab‘, ‘ba‘可以互相替换,因为‘ab‘->‘abaa‘->‘ababba‘->‘ba‘,反过来‘ba‘就可以变成‘ab‘,所以只要每一段的‘a‘, ‘b‘的数目的奇偶性分别相等,则\(S\)可以变成\(T\)。

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

I. Longest Increasing Subsequence

题目描述:给定一个数列\(a_i \leq n\),设\(f(x)\)表示将数列里的\(0\)替换成\(x\)后,最长严格上升子序列的长度,求\(\sum_{i=1}^n if(i)\)。

solution

显然,\(f(x)\)要么等于原最长严格上升子序列,要么加一。所以只需要求出哪些数能让答案加一即可。所以先预处理出原序列的最长严格上升子序列,若\(i\)和\(j\)是最长严格上升子序列的相邻两位,且\(i\)和\(j\)之间有\(0\),则\([a_i+1, a_j-1]\)内的数能使答案加一。这个可以从左到右扫一遍,然后记录最长严格上升子序列的某一位的最小的数是什么即可(这个数的位置的右边必须有\(0\))

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

J. Vertex Cover

题目描述:给出一个\(n\)个点的完全图,编号为\(0\)~\((n-1)\),点权为\(2^i\)。开始时\(A\)选定若干条边,然后\(B\)选择若干个点来覆盖这些边(每条边的端点至少有一个被选),\(B\)选的点的点权是最小的。求出\(A\)有多少种选择方案使得\(B\)的点权和为\(k\)。

solution

一个点能被\(B\)选上,必定是这个点与另一个点权比它大的点的连边至少有一条被选上,而且该点与比它小的点的连边都没有被选上。按照这个即可算出答案。

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

K. 2018

题目描述:给定\(a, b, c, d\),求出满足\(a\leq x \leq b, c\leq y \leq d, xy=2018\)的数对\((x, y)\)的个数。

solution

容斥原理。

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

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

时间: 2024-10-05 12:28:11

2018 年“三盟科技杯”中国大学生程序设计竞赛(湖南)的相关文章

"巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场(重现)解题思路

此文章可以使用目录功能哟↑(点击上方[+]) 经过这么一次女生赛,告诉我们千万不要小瞧女生,不然会死得很惨,orz... 链接→"巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场(重现)  Problem 1001 Solving Order Accept: 0    Submit: 0 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit : 32768/32768 K (Java/Others)  Problem Descri

"巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场

Combine String #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> #include<queue> #include<vector> #include<map> using namespace std; typedef unsigned long long LL; #de

HDU6447 YJJ&#39;s Salesman 2018中国大学生程序设计竞赛 - 网络选拔赛1010 离散化+线段树+DP

YJJ's Salesman Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 253    Accepted Submission(s): 62 Problem Description YJJ is a salesman who has traveled through western country. YJJ is always on

2018中国大学生程序设计竞赛 - 网络选拔赛 1010 YJJ&#39;s Salesman 【离散化+树状数组维护区间最大值】

题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6447 YJJ's Salesman Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 919    Accepted Submission(s): 290 Problem Description YJJ is a salesman who h

HDU 5961 传递 【图论+拓扑】 (2016年中国大学生程序设计竞赛(合肥))

传递 Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)   Problem Description 我们称一个有向图G是传递的,当且仅当对任意三个不同的顶点a,,若G中有 一条边从a到b且有一条边从b到c ,则G中同样有一条边从a到c.我们称图G是一个竞赛图,当且仅当它是一个有向图且它的基图是完全图.换句 话说,将完全图每条边定向将得到一个竞赛图.下图展示的是一个有4个顶点的竞

HDU 5963 朋友 【博弈论】 (2016年中国大学生程序设计竞赛(合肥))

朋友 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem Description B君在围观一群男生和一群女生玩游戏,具体来说游戏是这样的:给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1. 在一局游戏开始时,会确定一个节点作为根.接下来从女生开始,双方轮流进行 操作.当一方操作时,他们需要先选择一个不为根的点,满足该点到其父亲的边权为1; 然

2016年中国大学生程序设计竞赛(合肥)-重现赛1001 HDU 5961

传递 Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 42    Accepted Submission(s): 16 Problem Description 我们称一个有向图G是传递的,当且仅当对任意三个不同的顶点a,,若G中有 一条边从a到b且有一条边从b到c ,则G中同样有一条边从a到c.我们称图G是一个竞赛图,当且仅当它是一个有

HDU 5969 最大的位或 【贪心】 (2016年中国大学生程序设计竞赛(合肥))

最大的位或 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem Description B君和G君聊天的时候想到了如下的问题.给定自然数l和r ,选取2个整数x,y满足l <= x <= y <= r ,使得x|y最大.其中|表示按位或,即C. C++. Java中的|运算. Input 包含至多10001组测试数据.第一行有一个正整数,表示数据的组数.接下

HDU 5965 扫雷 【模拟】 (2016年中国大学生程序设计竞赛(合肥))

扫雷 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 998    Accepted Submission(s): 289 Problem Description 扫雷游戏是晨晨和小璐特别喜欢的智力游戏,她俩最近沉迷其中无法自拔.该游戏的界面是一个矩阵,矩阵中有些格子中有一个地雷,其余格子中没有地雷. 游戏中,格子可能处于己知和未知的状态