ACM International Collegiate Programming Contest World Finals 2013
ACM International Collegiate Programming Contest World Finals 2013
A - Self-Assembly
题目描述:给出\(n\)个正方形组件,正方形每条边有一个标签,标签可能是00
,表示这条边不能与其它边相拼,也可能是一个字母加正号或负号,相同字母不同符号的边可以相拼。每个组件有无限个,问利用这些组件是否能拼出一个无限大的多边形。
solution
拆点,每个正方形拆成\(4\)个点,每条边一个,然后每条边拆成两个点(出点和入点),然后新增\(52\)个点,表示\(52\)个标签,然后每个点拆成两个点(出点和入点)。连边,然后判断是否有环,如果有,则能拼出一个无限的多边形,否则不能。
时间复杂度:\(O(n*8+n*4*4)\)
C - Surely You Congest
题目描述:给出一个无向图,每个点上有一些车,这些车都要到\(1\)号点,车都走最短路径,但不能有两辆车同时同向进入某条边,但可以进入某个点,每辆车都同时出发。问最多有多少辆车能同时出发。
solution
先求出\(1\)号点到每辆车的最短路径,有一个性质:最短路径不同的点不会同时同向进入某条边。所以将最短路径相同的点归成一类,同时处理这些点,找出那些最短路径的边,设流量为\(1\),然后跑一次最大流,然后每一类的最大流相加就是答案。
时间复杂度:难以估计,大胆写吧
D - Factors
题目描述:设\(f(n)\)表示\(n\)分解质因数后有多少种不同的排列,如\(f(20)=3\),因\(f(20)=2 \cdot 2 \cdot 5=2 \cdot 5 \cdot 2=5 \cdot 2 \cdot 2\)。给出一个数\(k\),求出一个最小的\(n\),使得\(f(n)=k\)。
solution
设\(a_i\)表示\(n\)的每个质因数的个数。
\[f(n)=\frac{(\sum a_i)!}{\prod a_i!}\]
设\(n'=np^s, n \nmid p\)
\[f(n')=\frac{(\sum a_i +s)!}{\prod a_i! \times s!}\]
\[=\frac{(\sum a_i)! \cdot (\sum a_i +1) \cdot ... \cdot (\sum a_i +s)}{\prod a_i! \times s!}\]
\[=f(n) \cdot C_{\sum a_i +s}^{s}\]
所以直接搜索,质因数肯定是取最小的那些。貌似有答案不多。
时间复杂度:不会算。
F - Low Power
题目描述:有\(n\)个机器,每个机器有两个芯片,每个芯片会有\(k\)个电池,给出\(2nk\)个电池,分配这些电池,使得所有机器的两个芯片的电池最小值的差的最大值最小,输出这个值。
solution
先将电池从小到大排序。二分答案,显然每台机器的两个芯片的最小电池一定是相邻的电池,所以贪心分配就好。
时间复杂度:\(O(nlog10^9)\)
H - Матрёшка
题目描述:有\(n\)个排成一行的俄罗斯套娃,每个套娃有一个大小,一套完整的套娃的大小是从\(1\)到\(m\)(随便一个数)的连续整数,小的放在大的里面。现在将这\(n\)个套娃套成若干套完整的套娃,每次只能将相邻的套娃套在一起,一旦一个套娃变成一组套娃中的一个,则它最终不会变成别的组的套娃。问最少需要几次打开操作。如合并\([1, 2, 6]\)与\([4]\),需要打开\(6\)和\(4\)的盖子。
solution
显然,一套套娃一定是连续的一段全排列,所以可以区间dp
来分割区间成多个全排列。然后考虑一个全排列需要多少次打开操作来套成一套套娃。
这又可以用一个区间dp
来求解,问题是合并两套不完整的套娃的最少操作,假设两套套娃最小的大小为\(A, B\),若\(A<B\),则\(A\)那套中小于\(B\)的那些套娃不用打开,反之有类似的结论,其它的套娃都要打开。
时间复杂度:\(O(n^3)\)
I - Pirate Chest
题目描述:有一个\(n \times m\)的水池,给出每一格水池的深度,现要将一个底面的长和宽不超过\(a\)和\(b\)的长方体放入池中,使得长方体严格在水面以下,当然长方体放进去后水面会上升。求出长方体体积的最大值。
solution
假设水面不会上升。则某个子矩阵上的长方体的体积为该子矩阵中的最小值乘子矩阵的面积。设\(A(h)\)表示最小值为\(h\)的子矩阵的最大面积(当然要考虑\(a, b\)),这个函数可以在\(O(n^3)\)的时间内求出。(枚举某两列,表示子矩阵的列的范围,压缩成一列,即每行只保留最小值,算出第\(i\)行的最小值为子矩阵最小值的范围)
事实上并不需要记录\(A(h)\),当算出\(A(h)\)时,\(O(1)\)就能算出它能高出原水面的高度,更新答案即可。
时间复杂度:\(O(n^3)\)
J - Pollution Solution
题目描述:求一个半圆与一个多边形的交的面积。
solution
由于那个多边形也只在半圆的那边,所以直接求多边形与圆的交也是可以。直接上模板。
时间复杂度:\(O(n)\)
ACM International Collegiate Programming Contest World Finals 2013的更多相关文章
- ACM International Collegiate Programming Contest World Finals 2014
ACM International Collegiate Programming Contest World Finals 2014 A - Baggage 题目描述:有\(2n\)个字符摆在编号为\ ...
- ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2018) Syria, Lattakia, Tishreen University, April, 30, 2018
ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2018) Syr ...
- ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2017)- K. Poor Ramzi -dp+记忆化搜索
ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2017)- K. ...
- Gym100814B Gym100814F Gym100814I(异或) ACM International Collegiate Programming Contest, Egyptian Collegiate Programming Contest (2015) Arab Academy for Science and Technology
今日份的训练题解,今天写出来的题没有昨天多,可能是因为有些事吧... Gym100814B 这个题就是老师改卷子,忘带标准答案了,但是他改了一部分卷子,并且确定自己改的卷子没出错,他想从改过的卷子里把 ...
- [ACM International Collegiate Programming Contest, Amman Collegiate Programming Contest (2018)]
https://codeforces.com/gym/101810 A. Careful Thief time limit per test 2.5 s memory limit per test 2 ...
- 2019.04.04 第二次训练 【ACM International Collegiate Programming Contest, JUST Collegiate Programming Contest (2018)】
题目链接:https://codeforces.com/gym/101853 A: ✅ B: (二分图匹配) https://blog.csdn.net/qq_41997978/article/det ...
- ACM International Collegiate Programming Contest, Egyptian Collegiate Programming Contest (ECPC 2015)
A.Arcade Game(康拓展开) 题意: 给出一个每个数位都不同的数n,进行一场游戏.每次游戏将n个数的每个数位重组.如果重组后的数比原来的数大则继续游戏,否则算输.如果重组后的数是最大的数则算 ...
- Codeforces Gym100814 I.Salem-异或 (ACM International Collegiate Programming Contest, Egyptian Collegiate Programming Contest (2015) Arab Academy for Science and Technology)
这个题就是二进制,找两个数相应的二进制相对应的位置上数不同的最多的个数.异或写就可以. 一开始还想麻烦了,找出来最大的偶数和最大的奇数,最小的偶数和最小的奇数,但是这样想考虑的不全.因为范围比较小,直 ...
- Codeforces Gym100814 F.Geometry (ACM International Collegiate Programming Contest, Egyptian Collegiate Programming Contest (2015) Arab Academy for Science and Technology)
这个题真的是超级超级水啊,哈哈哈哈哈哈.不要被题面吓到,emnnn,就这样... 代码: 1 #include<iostream> 2 #include<cstring> 3 ...
随机推荐
- BZOJ 3626 LCA(离线+树链剖分)
首先注意到这样一个事实. 树上两个点(u,v)的LCA的深度,可以转化为先将u到根路径点权都加1,然后求v到根路径上的总点权值. 并且该题支持离线.那么我们可以把一个区间询问拆成两个前缀和形式的询问. ...
- TestNG套件测试
TestNG套件测试 测试套件的测试是为了测试软件程序的行为或一系列行为的情况下,是一个集合.在TestNG,我们不能定义一套测试源代码,但它代表的套件是一个XML文件执行特征.这也允许灵活的配置要运 ...
- 自动化生成html报告
package Utils; import java.io.File; import java.util.Date; import org.apache.commons.lang3.time.Date ...
- BZOJ4998 星球联盟(LCT+双连通分量+并查集)
即要求动态维护边双.出现环时将路径上的点合并即可.LCT维护.具体地,加边成环时makeroot+access+splay一套把这段路径提出来,暴力dfs修改并查集祖先,并将这部分与根断开,视为删除这 ...
- [AT2172] [agc007_e] Shik and Travel
题目链接 AtCoder:https://agc007.contest.atcoder.jp/tasks/agc007_e 洛谷:https://www.luogu.org/problemnew/sh ...
- 【BZOJ】2956:模积和
Time Limit: 10 Sec Memory Limit: 128 MB Description 求∑∑((n mod i)*(m mod j))其中1<=i<=n,1<=j ...
- poj 1945 Power Hungry Cows A*
Description: 就是给你一个数,你可以把它自乘,也可以把他乘或除以任意一个造出过的数,问你最多经过多少次操作能变换成目标数 思路:这题真的不怎么会啊.n = 20000,每一层都有很 ...
- 《JavaScript高级程序设计(第三版)》-2
变量 ECMAScript变量是松散类型的,即可以保存任何类型的数据. 初始化变量不会把它标记类型,初始化的过程只是给变量付一个值,因此可以在修改变量的同时修改值的类型.但并不推荐这样做. var m ...
- 运行python时提示:ImportError: No module named plyvel ,ImportError No module named irc 解决过程:
(当前python版本:2.7) 1.在git下载electrum-server: cd / git clone https://github.com/spesmilo/electrum-server ...
- mobiscroll 三级联动
https://demo.mobiscroll.com/jquery/list/treelist#theme=ios官网的代码是要钱的,百度云放了一份