XX Russia Team Open, High School Programming Contest St Petersburg, Barnaul, Tbilisi, Almaty, Kremenchug, November 30, 2019
- easy: AFI
- medium-easy: BDH
- medium: CGKL
- ???: EJ
A. Attractive Flowers
签到。
B. Blocking the View
题意 问线段ab沿向量v移动是否会与线段cd相交
做法
- 把ac,ad,bc,bd四个向量排序一下,判断v是否在范围内就好
- 坑点在线段共线的情况
C. Fermat’s Last Theorem
题意 将有序四元组 \((a,b,c,n)\) 按 max 为第一关键字,字典序为第二关键字排序,求第 l 位到第 r 位,并判断 \(a^n+b^n\) 与 \(c^n\) 大小关系。
做法 先确定 max,后逐位考虑,可以求出 rank 为 \(x\) 的四元组是谁。如果 \((\frac{a}{c})^n+(\frac{b}{c})^n\) 和 1 的距离大于 eps,直接得出大小关系,否则高精度计算 \(a^n+b^n\) 与 \(c^n\) 大小关系。
D. Guess the Path
题意 交互,\(n*m\),每次可以输出一条 \((1,1)\) 到 \((n,m)\) 的路径(只能往右走或往下走),返回与既定路径 \(p\) 的交。
做法 如果 \((x_1,y_1), (x_2,y_2)(x_1 \leq x_2, y_1 \leq y_2)\) 在答案中,我们可以递归地构造 \((x_1,y_1)\) 到 \((x_2, y_2)\) 的路径。先右走到 \((x_1, (y_1+y_2)/2)\) 再下走到 \((x_2,(y_1+y_2)/2)\) 再右走,下走的过程和路径 \(p\) 必定有交。这样递归的层数是 log 级别的。
E. Hide-and-Seek for Robots
F. Isosceles triangles
做法
枚举等腰三角形顶点,正三角形会被算多次,减去。
G. Too Many Hyphens
题意 给一个 +- 组成的序列,现在需要插入一个极短的合法括号序列,使得任意两个 - 不相邻。求所有方案中字典序 \(k\) 小。
做法
- 如果有 \(x\) 对
-相邻,那么最短的括号序列,左括号个数是 \(\lceil \frac{x}{2} \rceil\) - \(f[i][j][k]\) 表示考虑第 \(0\) 个到第 \(i-1\) 个空隙中填入了 \(j\) 个
{, \(k\) 个},接下来有几种填写方式能够填出最优解。 - 决策的时候,枚举在当前空隙填啥,注意到填入的字符不超过 2 个。
H. Planet Nine
题意 两种操作,加 \(9x\),扔掉长度为 \(y\) 的全是 1 的前缀。把 \(a\) 变成 \(b\)
做法
- 因为 \(9|10^k-1\) 所以每次可以让一个低位减一,让一个高位加一。
- 先把 \(a\) 变成 0,再把 \(0\) 变成 \(b\)
I. Dates
签到
J. Factory
K. RotationAlmostSort
题意 n x n的格子,格子里有数字,一条指令是这样的:若格子a的数字>格子b的数字,则将以格子c为左上角的2*2的区域逆时针旋转90度,你需要用这样的指令使无论初始格子里的数字是啥,执行完毕之后从第三行开始把数字依次写下得到的序列是非减的
做法
- 可以用三条指令使一个2*2的区域里的最大值移动到这个区域里的任意位置
- 用这种操作每次选出最大值摆到对应位置
L. Time Travel
题意 给k棵大小为n的树,对于每个点对(u,v),求在每棵树的u到v的路径的点集的交集的大小
做法
- 一棵树中有\(dist(j,k)+dist(k,j)>=dist(i,j)\),等号取到当且仅当k在i到j的路径上
- 如果k对(i,j)有贡献,那么在每棵树中都要有\(dist(j,k)+dist(k,j)=dist(i,j)\)
- 比赛时哈希判断的,其实只需要判断\(\sum dist(j,k)+\sum dist(k,j)=\sum dist(i,j)\)就好了
- 因为都是大于等于号的不等式求和之后的不等式等号取到的条件肯定是每个不等式都取到等号吖
XX Russia Team Open, High School Programming Contest St Petersburg, Barnaul, Tbilisi, Almaty, Kremenchug, November 30, 2019的更多相关文章
- ACM ICPC 2010–2011, Northeastern European Regional Contest St Petersburg – Barnaul – Tashkent – Tbilisi, November 24, 2010
ACM ICPC 2010–2011, Northeastern European Regional Contest St Petersburg – Barnaul – Tashkent – Tbil ...
- zoj The 12th Zhejiang Provincial Collegiate Programming Contest Team Formation
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5494 The 12th Zhejiang Provincial ...
- 2016-2017 ACM Central Region of Russia Quarterfinal Programming Contest
2016-2017 ACM Central Region of Russia Quarterfinal Programming Contest A. Fried Fish 题意:有N条鱼,有一个同时可 ...
- Codeforces Gym101572 B.Best Relay Team (2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017))
2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017) 今日份的训练,题目难度4颗星,心态被打崩了,会的算法太少了,知 ...
- ZOJ 3703 Happy Programming Contest
偏方记录背包里的物品.....每个背包的价值+0.01 Happy Programming Contest Time Limit: 2 Seconds Memory Limit: 65536 ...
- zoj The 12th Zhejiang Provincial Collegiate Programming Contest Capture the Flag
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5503 The 12th Zhejiang Provincial ...
- zoj The 12th Zhejiang Provincial Collegiate Programming Contest Demacia of the Ancients
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5504 The 12th Zhejiang Provincial ...
- The Ninth Hunan Collegiate Programming Contest (2013) Problem L
Problem L Last Blood In many programming contests, special prizes are given to teams who solved a pa ...
- The Ninth Hunan Collegiate Programming Contest (2013) Problem C
Problem C Character Recognition? Write a program that recognizes characters. Don't worry, because yo ...
随机推荐
- python学习笔记:操作Excle
import xlwt #写excel import xlrd #读excel import xlutils #修改excel 一.写操作 1.写Excel import xlwt #写excel,导 ...
- Linux(一)—— Linux环境搭建
Linux环境搭建 一.虚拟机安装 1.下载地址 https://my.vmware.com/web/vmware/info/slug/desktop_end_user_computing/vmwar ...
- docker内的服务无法获取用户真实IP
原文:blog.baohaipeng.top 背景:MySQL数据库和Redis运行在宿主机上(Linux),server运行在docker内,web运行在Nginx内(Nginx运行在docker内 ...
- [已解决]报错: TLS handshake timeout
为了永久性保留更改,您可以修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值. { "registry-mirrors": ...
- linux下vnstat查看服务器带宽流量统计
因为很多vps或者服务器都是限流量的,但是又很多服务商并没有提供详细的流量表,比如每天的流量表,所以肯定有人很想知道自己服务器到底跑了多少流量. vnstat就是一个很好用的服务器流量统计命令.我 ...
- is, ==, id, encode,
1. is 和 == 的区别 1. id(): 通过id()我们可以查看到⼀个变量表⽰的值在内存中的地址. id(变量) 返回给你这个变量的内存地址 is 比较是的内存地址 == 比较的是值 s ...
- 【最新】docker 安装elasticsearch + kibana步骤【第一篇_elasticsearch】
最近在用docker 安装elasticsearch + kibana 遇到了很多坑,最后成功安装elasticsearch + kibana (6.8.1)版本 安装了一下午,现总结过程中遇到 ...
- ASP.NET MVC SignalR 简单聊天推送笔记
介绍:(抄袭于网络) ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程.实时 Web 功能是指这样一种功能:当所连接 ...
- QPrinter
在使用到QPrinter和QprintDialog类时的附加处理 ①若是在qt creator中,需要在 (.pro)工程文件中加入 “QT+= printsupport”,否则会编译报错
- Java多线程常用方法的使用
Java多线程的常用方法基本分为:获取当前线程的操作,线程休眠sleep()方法,线程让步yield()方法,等待其他线程终止join()方法,线程停止的一系列方法. 一.获取当前线程的操作 1. ...