Difference between revisions of "ACM-ICPC 2017 Asia Tsukuba Regional"
Line 82: | Line 82: | ||
Upsolved by oxx1108. | Upsolved by oxx1108. | ||
+ | |||
+ | 最后时间不够了,没多少时间debug。算法很快就想出来了,但是等到能上机的时候已经没剩多久了…… | ||
+ | |||
+ | 题意:给一个稀疏联通无向图,找其中有几个简单环。 | ||
+ | |||
+ | 题解:因为稀疏图,把度数1和2的点缩掉,之后图就很小,然后暴力dfs找所有简单环。 | ||
= ECNU Foreigners = | = ECNU Foreigners = |
Revision as of 16:01, 24 September 2018
One,Two,Three,AK
Problem A
Solved by Xiejiadong. 00:09:42(+)
煞笔dp,温暖的签到。
Problem B
Solved by oxx1108. 00:35:42(+)
题意:把 $m$ 个点两两匹配成 $m/2$ 条直线,然后求最多的平行线对数。
题解:暴力dfs匹配。
Problem C
Solved by oxx1108. 00:58:09(+)
题意:非常类似于 CPU 中的流水线。每条指令在每个阶段的用时只跟指令有关,不跟阶段有关。求某个时间点各个指令都在第几个阶段(或在等待第几个阶段)。
题解:算出每个东西进入流水线的时间,和流水线之后每个周期的时间,然后就可以算出答案了。
Problem D
Unsolved.
Problem E
Solved by Xiejiadong. 03:00:39(+1)
题意:每次修改是把一整段变成同一个颜色,求最少多少次可以变成目标状态。
题解:如果把某一整段修改的话,显然剩下的就是把中间不一样的一段一段改。
那么,显然,整段的喷涂是不连续的一段一段组成的,我们可以用dp解决。
用$f[i]$表示,喷涂到第$i$位的最小代价,那么$f[i]=min{f[j]+cost(j+1,i)}+1$,当$a[i]=b[i]$时,$f[i]=f[i-1]$
$cost(j+1,i)$可以用前缀和解决,然后用单调队列维护dp,时间复杂度$O(n)$。
Problem F
Unsolved.
Problem G
Solved by oxx1108. 04:56:50(+1)
题意:两个蚂蚁在四面体上爬,求爬了一定长度后是否在同一个面上。
题解:展成面即可,化成60度坐标系,然后找到对应的正三角形位置算出属于哪个三角形(可以参数方程转换成直角坐标简单一些?)。
Problem H
Unsolved.
Problem I
dreamcloud 和 oxx1108 读漏了关键信息,导致了卡题。
Solved by Xiejiadong. 03:22:13(+3)
题意:两种方案买票,求最少需要的作为数量。
第一种方案是:不给定顺序,每个人不会买别人做过位置的票,求最坏情况下需要的座位数量。
第二种方案是:认为的安排座位。
题解:第二种方案,显然是求某一个时刻最多的人数。
第一个方案,可以转化成求那个人所要买的那个区间会有多少人,那么这个人需要的座位数量就是那个区间的人数$+1$。
上面两部分都可以用前缀和搞一搞。
Problem J
Unsolved.
Problem K
Upsolved by oxx1108.
最后时间不够了,没多少时间debug。算法很快就想出来了,但是等到能上机的时候已经没剩多久了……
题意:给一个稀疏联通无向图,找其中有几个简单环。
题解:因为稀疏图,把度数1和2的点缩掉,之后图就很小,然后暴力dfs找所有简单环。
ECNU Foreigners
ultmaster: 签到成功!kblack 再次扛起重任,拿下全场贡献最佳奖。
Problem A
Solved by zerol. 00:12 (+)
温暖的签到。
Problem B
Solved by ultmaster. 01:26 (+)
题意:把 $m$ 个点两两匹配成 $m/2$ 条直线,然后求最多的平行线对数。
题解:可能划分的数量大概只有 2E6。巧妙地把这些方案枚举出来了以后,逐一计算就可以了。
因为没有输出答案,错误地把 debug 信息当成了答案。自闭半小时。
Problem C
Solved by ultmaster. 00:38 (+1)
题意:非常类似于 CPU 中的流水线。每条指令在每个阶段的用时只跟指令有关,不跟阶段有关。求某个时间点各个指令都在第几个阶段(或在等待第几个阶段)。
题解:暴力算出每个东西进入流水线的时间。然后进入流水线之后每个周期的时间,是跟之前进入流水线的所有指令所需要的时钟周期的最大值有关的。至于如何判断是否已经结束是否在等待,大概只要模一下算一算就好了。同时要考虑到进入第一个阶段之前的情况(要先判断)。
Problem D
Problem E
Problem F
ultmaster: 题目读错背大锅。而且可能顺带抹杀了做出其他题的可能性。
Problem G
Solved by kblack. 02:28 (+)
Problem H
Problem I
Solved by kblack. 01:28 (+1)
Problem J
Solved by kblack. 03:33 (+)