2017 ACM ICPC Asia Regional - Daejeon

Problem A Broadcast Stations

题目描述:给出一棵树,每一个点有一个辐射距离\(p_i\)(待确定),但\(p_i==0\)的点不能辐射自己,只能由别的点辐射覆盖。求\(p_i\)的和的最小值。

Problem B Connect3

题目描述:有一个\(4 \times 4\)的网格,两个人玩游戏,第一个人用黑棋,第二人用白棋。每次选择一列,将棋子扔下去,直到最下一个空的格子。现在给出第一个人下的位置,以及最后第二个人下的棋子最终的位置。已知最后一步是赢棋的一步,问最终有多少种棋盘状态。

solution
因为状态数很少,所以可以直接暴力搜索最终的状态。

时间复杂度:\(O(2^{16}*16)\)

Problem C Game Map

题目描述:给出一个\(n\)个点的图,设每个点的度为\(d_i\),选出一个最长的序列\(c_i\),满足\(d_{c_i}<d_{c_{i+1}}\),且\(c_i\)与\(c_{i+1}\)相邻,输出最长的长度。

solution
将点按度排序,每个点\(i\)向度比\(d_i\)大的邻居连一条有向边,然后DAG \(dp\)。

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

Problem D Happy Number

题目描述:设函数\(f(n)\),\(f(n)\)等于\(n\)的每一位的数的平方的和,将得出的结果继续带进\(f\)继续算,直到等于\(1\),如果能等于\(1\),则称\(n\)是开心的数,否则是不开心的数。给出一个数\(n\),判断是否是开心的数。

solution
暴力模拟,记忆化\(n \leq 1000\)的数是否开心。

时间复杂度:\(O(1000*10)\)

Problem E How Many to Be Happy?

题目描述:给出一个有\(n\)个点\(m\)条边的图,每条边有一个边权,问要使第\(i\)条边成为图的最小生成树的一条边最少要删掉多少条边,求出每条边的对应答案的和。

solution
枚举边\(i\),找出那些边权小于\(i\)的边权的边,这些边都是网络流里的边,然后以\(i\)的两个点为源点和汇点跑网络流求最小割。

时间复杂度:\(O(mn^2m)\)(远小于这个值)

Problem F Philosopher’s Walk

题目描述:按以下规则构建路线:其中\(W_i\)的左上角和右上角都是\(W_{i-1}\),左下角为\(W_{i-1}\)顺时针转\(90^{\circ}\),右下角为\(W_{i-1}\)逆时针转\(90^{\circ}\)。从\((1, 1)\)出发沿线编号。给出\(x, y\),求出\(W_x\)中编号为\(y\)的格子坐标。

solution
分治求解,缩减图的规模,递归回来之后进行坐标变换即可。

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

Problem G Rectilinear Regions

题目描述:给出两条阶梯型的线\(L, U\),求出那些\(U\)在上,\(L\)在下围成的多边形的面积的和。

solution
观察可得,多边形的左边为\(U\)的竖线与\(L\)的横线相交,右边为\(U\)的横线与\(L\)的竖线相交。枚举\(U\)的每一级,二分出\(L\)对应的位置,判断是否相交。将相交的地方映射到\(x\)轴,若相邻的相交类型是上述的类型,就用部分和算出围成的多边形的面积。

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

Problem H Rock Paper Scissors

题目描述:给出两个剪刀(S)石头(R)布(P)的序列,确定第一个序列的一个位置作为第二个序列的开始位置,算出第二个序列能多少局。求出第二个序列最多能赢多少局。

solution
先将第一个序列的每一位变成能赢这一位的字符。问题变成一个匹配问题。
将这个序列分成三个序列,每个序列分别只有剪刀、石头、布。同样将第二个序列分成三个序列,每个序列分别只有剪刀、石头、布。

例如:
RSPPSSSRRPPR 先变成 PRSSRRRPPSSP
RRRR
将石头序列拿出来,假设第一个序列为\(a_i\),第二个序列为\(b_i\)。按照上述的例子:
\(a=010011100000\)
\(b=1111\)
设\(f_i\)表示以\(i\)开头的区间的匹配数目,则\(f_i=\sum_{j=0}^{j<|b|} a_{i+j}*b_j\),若将\(a_i\)翻转,则\(f_{n-i}=\sum_{j=0}^{j<|b|} a_{n-(i+j)}*b_j\),就是卷积。
同理算出剪刀序列和布序列,求和,求最大值。

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

Problem I Slot Machines

题目描述:给出一个长度为\(n\)的序列\(a_i\),这个序列第\(k+1\)起到最后是若干个循环,周期为\(p\),最后一个循环可以不完整。求\(k+p\)最小值对应的\(k, p\)。

solution
将序列\(a_i\)翻转,做一次\(KMP\)(\(fail[i]\)),枚举\(k+1\)的位置\(i\),则周期\(p=i-fail[i], k=n-i\)。更新答案。

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

Problem K Untangling Chain

题目描述:在二维平面上,从\((0, 0)\)出发(开始时向右走),向前走一段距离(整数),然后向左转或向右转,重复若干次。给出路径,改变每一次走的距离(不能改变转向),使得路径不相交。输出一种方案。

solution
记录\(x, y\)的最大最小值,每次走的时候走到对应的边界加一即可。

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

Problem L Vacation Plans

题目描述:给出\(s(s \leq 3)\)个图,每个图是一个有向图(\(n\)点,\(m\)条边),有点权,有边权。每个图有一个目的地,出发点都是\(1\),每一时刻经过一条边,花费为边权,或者停止不动,花费为点权。现要求同时出发,同时到达目的地,问总花费的最小值。

solution
枚举时间,三个图同时\(dp\),更新答案,卡一下时就可以了,兜圈不会兜很多遍。

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

2017 ACM ICPC Asia Regional - Daejeon的更多相关文章

  1. 2017 ACM/ICPC Asia Regional Shenyang Online spfa+最长路

    transaction transaction transaction Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 132768/1 ...

  2. 2017 ACM/ICPC Asia Regional Qingdao Online

    Apple Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submi ...

  3. HDU - 6215 2017 ACM/ICPC Asia Regional Qingdao Online J - Brute Force Sorting

    Brute Force Sorting Time Limit: 1 Sec  Memory Limit: 128 MB 题目连接 http://acm.hdu.edu.cn/showproblem.p ...

  4. 2017 ACM/ICPC Asia Regional Shenyang Online(部分题解)

    HDU 6197 array array array 题意 输入n和k,表示输入n个整数和可以擦除的次数k,如果至多擦除k次能是的数组中的序列是不上升或者是不下降序列,就是魔力数组,否则不是. 解题思 ...

  5. 2017 ACM/ICPC Asia Regional Qingdao Online解题报告(部分)

    HDU 6206 Apple 题意: 给出四个点的坐标(每个点的坐标值小于等于1,000,000,000,000),问最后一个点是否在前三个点组成的三角形的外接圆内,是输出Accept,否输出Reje ...

  6. HDU 6205(尺取法)2017 ACM/ICPC Asia Regional Shenyang Online

    题目链接 emmmm...思路是群里群巨聊天讲这题是用尺取法.....emmm然后就没难度了,不过时间上3000多,有点.....盗了个低配本的读入挂发现就降到2800左右, 翻了下,发现神犇Clar ...

  7. HDU 6198(2017 ACM/ICPC Asia Regional Shenyang Online)

    思路:找规律发现这个数是斐波那契第2*k+3项-1,数据较大矩阵快速幂搞定.   快速幂入门第一题QAQ #include <stdio.h> #include <stdlib.h& ...

  8. 2017 ACM/ICPC Asia Regional Qingdao Online Solution

    A : Apple 题意:给出三个点,以及另一个点,求最后一个点是否在三个点的外接圆里面,如果在或者在边界上,输出“Rejected”,否则输出"Accepted" 思路:先求一个 ...

  9. 2017 ACM/ICPC Asia Regional Qingdao Online - 1011 A Cubic number and A Cubic Number

    2017-09-17 17:12:11 writer:pprp 找规律,质数只有是两个相邻的立方数的差才能形成,公式就是3 * n * (n + 1) +1, 判断读入的数是不是满足 这次依然只是做了 ...

随机推荐

  1. BZOJ3295:[CQOI2011]动态逆序对——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=3295 Description 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数 ...

  2. NOIP模拟

    1.要选一个{1,2,...n}的子集使得假如a和b在所选集合里且(a+b)/2∈{1,2,...n}那么(a+b)/2也在所选集合里 f[i]=2*f[i-1]-f[i-2]+g[i] g[n]:选 ...

  3. 强大工具psexec工具用法简介

    原文链接地址:https://www.cnblogs.com/boltkiller/articles/4791307.html psexec是sysinternals的一款强大的软件,通过他可以提权和 ...

  4. Sort Integers II

    Given an integer array, sort it in ascending order. Use quick sort, merge sort, heap sort or any O(n ...

  5. Codeforces 585E. Present for Vitalik the Philatelist(容斥)

    好题!学习了好多 写法①: 先求出gcd不为1的集合的数量,显然我们可以从大到小枚举计算每种gcd的方案(其实也是容斥),或者可以直接枚举gcd然后容斥(比如最大值是6就用2^cnt[2]-1+3^c ...

  6. [杂谈]ACM启程

    此处省略一大段传奇的经历. 只需要知道的是,现在再次开始使用本博客的唯一原因就是——我进大学有搞ACM的打算. 其实本来是没有的,受到某学长的指引和推荐,我觉得这条路在当前确切是绝对的优选. 2年没碰 ...

  7. 【bzoj2006】超级钢琴

    Portal --> bzoj2006 Solution 一开始看错题了..没有看到编号连续然后愣了好久== ​ 首先肯定是找最大的\(K\)个啦,然后具体怎么找的话..没有什么特别好的办法那就 ...

  8. 前端PHP入门-012-回调函数[慎入]

    尽力而为,对于WEB前端和美工同学,比较难了!但是你们都学过JS的闭包等操作,那么这里也一定没有问题! 回调函数,可以配合匿名函数和变量函数实现更加优美.复杂的一种函数结构. 回调函数,就是在处理一个 ...

  9. Jquery validate验证表单时多个name相同的元素只验证第一个的问题

    下面搜集了五种方法,主要还是前两个提供了解决方案,第三种需要修改jQuery源码: 修复jquery.validate插件中name属性相同(如name='a[]')时验证的bug 使用jquery. ...

  10. extjs 省市县级联

    Ext.define('State', { extend: 'Ext.data.Model', fields: [ {type: 'string', name: 'nevalue'}, {type: ...