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. 秒杀多线程第八篇 经典线程同步 信号量Semaphore (续)

    java semaphore实现: Semaphore当前在多线程环境下被扩放使用,操作系统的信号量是个很重要的概念,在进程控制方面都有应用.Java 并发库 的Semaphore 可以很轻松完成信号 ...

  2. Django 2.0 学习(17):Django 用户认证(auth模块)

    Django 用户认证(auth模块) 一.认证登陆 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中:如果用户存在于数据库中,然后再验证用户输入 ...

  3. linux内核分析 第一周 计算机是如何工作的 20125221银雪纯

    我使用的c语言代码是: int g(int x) { return x + 1; } int f(int x) { return g(x); } int main(void) { return f(6 ...

  4. django 自己编写admin

    继上次CRM项目之后 我们发现了django自带admin的强大之处以及灵活性,但是admin在企业中也一样很难做到完全的对接,因此编写自己的后台管理就显得至关重要. 本次自定义admin项目将接着上 ...

  5. Linux之时间相关操作20170607

    一.Linux常用时间相关函数 -asctime,ctime,getttimeofday,gmtime,localtime,mktime,settimeofday,time asctime       ...

  6. Oracle中用exp/imp命令参数详解【转】

    Oracle中用exp/imp命令参数详解 [用 exp 数 据 导 出]:1  将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中   exp sy ...

  7. python 字符串前缀u, r, b小结

    http://note.youdao.com/noteshare?id=a0da9c2d044d270fa8cb162b932c47e8

  8. centos 7 pdo

    在windows本机上测试好的Thinkphp5代码部署到centos7阿里云主机上面就提示class pdo not found,网上搜索了一大堆终于解决了.不过隔了这么几个小时详细的步骤就有些忘记 ...

  9. Distributed Systems 分布式系统

    先来扯淡,几天是14年12月31日了,茫茫然,2014就剩最后一天了.这两天国大都放假,我给自己安排了四篇博客欠账,这就是其中的第一篇,简单介绍一些分布式系统的一些概念和设计思想吧.后面三篇分别是Ne ...

  10. 【IDEA】 Can't Update No tracked branch configured for branch master or the branch doesn't exist. To make your branch track a remote branch call, for example, git branch --set-upstream-to origin/master

    IDEA点击GIT更新按钮时,报错如下: Can't UpdateNo tracked branch configured for branch master or the branch doesn' ...