2014-2015 Petrozavodsk Winter Training Camp, Contest.58 (Makoto rng_58 Soejima contest)

Problem A. Manhattan

solved by RDC 32 min 1Y

题意 给一网格图,找出欧几里得距离为 d 的两点,最大化最短路。

第一回合

三分搜索,第一个点的坐标 \((x,0)(0\leq x<1)\),确定第一个点后,对第二个点的横坐标或者纵坐标进行枚举计算答案。

第二回合

设最优解两点之间,横坐标差绝对值为 \(dx\) 纵坐标差绝对值为 \(dy\),分类讨论。

  • 当 \(dx\) 为整数时,枚举 \(dx\),有 \(dy=\sqrt{d^2-dx^2}\)。
  • 当 \(dy\) 为整数时,枚举 \(dy\)。
  • 否则,猜测答案为 \(\sqrt{2}d\),两点斜率绝对值为 1。(距离为 \(d\) 的两点曼哈顿距离最大值为 \(\sqrt{2}d\))

第三回合

  • 注意到,若 \(min(dx,dy)\geq 1\) 或者 \(dx,dy\) 皆不为整数,两点间最短路即曼哈顿距离。
  • 当两点间最短距离不是曼哈顿距离时,\(0 \leq min(dx,dy)<1\),且 \(dx,dy\) 中存在正整数。

Problem C. Clique Coloring

solved by RDC 112 min 1Y

题意 求极小的 m,使得可以选出大小分别为 \(a_1,a_2,...,a_n\) 的子集,使得两两交大小小于等于 1.

做法

  • 注意到任意两个集合的交,小于等于 1.
  • 元素按,是否归属于 \(1,2,...,n\) 号集合,可以划分成 \(2^n\) 个等价类,编号分别为 \(0\)~\(2^n-1\)
  • DFS 枚举编号 \(bitcount()\) 大于 1 的等价类中是否有元素,剪掉一些 invalid 的枚举(若 \(bitcount(x\&y) \geq 2\),那么第 x 个等价类,第 y 个等价类,不可同时有元素)。
  • 合法的枚举方案很少 \((<1e5)\),对每种方案统计答案即可。

Problem B. Dictionary

upsolved by RDC,sdcgvhgj,F0_0H

题意 给 n 个串,字符集为小写字母,替换 '?',使字典序单增。

做法1 考虑 DP

  • \(f[l][r][p][c]\) 表示考虑第 l 个串到第 r 个串的 p ~ 20 位, 使得它们字典序单增,且 \(s[x] [p]=c(l \leq x \leq r)\) 的方案数。
  • \(g[l][r][p][c]\) 表示考虑第 l 个串到第 r 个串的 p ~ 20 位, 使得它们字典序单增,且 \(s[l] [p]=c\) 的方案数。
  • \(g[21][i][i]['\0']=f[21][i][i]['\0']=1(1\leq i\leq n)\)
  • \(f[l][r][p][c]=\sum_{ch}g[l][r][p+1][c]*[condition]\),其中 \([condition]\) 表示 \(s[x][p](l\leq x\leq r)\) 能否全为字符 \(c\).
  • \(g[l][r][p][c]=\sum_{ch>c}\sum_{mid}f[l][mid][p][c]*((mid+1<=r)?g[mid+1][r][p][ch]:1)\)
  • 对 \(g[l][r][p][]\) 做后缀和,优化。
    code

做法2 对上述状态转移的简化

  • \(f[l][r][p][c]\)表示考虑第 l 个串到第 r 个串的 p ~ 20 位, 使得它们字典序单增,且 \(s[x] [p]\leq c(l \leq x \leq r)\) 的方案数。
  • \(f[l][r][p][c]=\sum_{ch<c}\sum_{mid}f[l][mid][p][ch]*f[mid+1][r][p+1]['z']*[condition]\),其中\([condition]\)表示\(s[x][p](mid+1\leq x\leq r)\)能否全为字符\(c+1\)
    code

Problem D. Dense Amidakuji

upsolved by F0_0H

题意 排骨龙沿着竹竿往下爬,输出会从哪个竹竿落下。

做法

考虑两个如下事实:

  • 对于每条横边,定会被经过两次,一次从左往右,一次从右往左
  • 每删除一条横边,相当于交换该横边左右两次经过的状态

所以只需要考虑每条横边原始被经过的标号,交换一下即可(从上到下考虑)
code


Problem G. Snake

upsolved by sdcgvhgj

题意 给一条折线段\(P_1P_2,.....P_n\),问能否穿过一个洞。

口胡 by rdc

  • 能穿过洞,等价于折线段在任意位置都能被直线划分成两段。
  • 若在位置 \(Q\) 能被划分成两段,那么必存在 \(1\leq i \leq n\),使得 \(QP_i\) 能把折线段划分成两段。
  • 枚举点 \(P_i\),更新点集 \(\{Q|P_iQ 能划分折线段\}\)。
  • 有解,等价于,\(\cup_{i=1}^{n} \{Q|P_iQ 能划分折线段\} = 折线段上点组成点集\)。

Problem J. Hyperrectangle

题意 输入 \(d\) 维长方体,求 \(x_1+x_2+..+x_d\leq s\) 体积。

2014-2015 Petrozavodsk Winter Training Camp, Contest.58 (Makoto rng_58 Soejima contest)的更多相关文章

  1. 【取对数】【哈希】Petrozavodsk Winter Training Camp 2018 Day 1: Jagiellonian U Contest, Tuesday, January 30, 2018 Problem J. Bobby Tables

    题意:给你一个大整数X的素因子分解形式,每个因子不超过m.问你能否找到两个数n,k,k<=n<=m,使得C(n,k)=X. 不妨取对数,把乘法转换成加法.枚举n,然后去找最大的k(< ...

  2. 【BFS】【最小生成树】Petrozavodsk Winter Training Camp 2018 Day 1: Jagiellonian U Contest, Tuesday, January 30, 2018 Problem G. We Need More Managers!

    题意:给你n个点,点带权,任意两点之间的边权是它们的点权的异或值中“1”的个数,问你该图的最小生成树. 看似是个完全图,实际上有很多边是废的.类似……卡诺图的思想?从读入的点出发BFS,每次只到改变它 ...

  3. 【状压dp】Petrozavodsk Winter Training Camp 2018 Day 1: Jagiellonian U Contest, Tuesday, January 30, 2018 Problem E. Guessing Game

    题意:给你n个两两不同的零一串,Alice在其中选定一个,Bob去猜,每次询问某一位是0 or 1.问你最坏情况下最少要猜几次. f(22...2)表示当前状态的最小步数,2表示这位没确定,1表示确定 ...

  4. 【推导】【单调性】Petrozavodsk Winter Training Camp 2018 Day 1: Jagiellonian U Contest, Tuesday, January 30, 2018 Problem B. Tribute

    题意:有n个数,除了空集外,它们会形成2^n-1个子集,给你这些子集的和的结果,让你还原原来的n个数. 假设原数是3 5 16, 那么它们形成3 5 8 16 19 21 24, 那么第一轮取出开头的 ...

  5. 【线性基】Petrozavodsk Winter Training Camp 2018 Day 1: Jagiellonian U Contest, Tuesday, January 30, 2018 Problem A. XOR

    题意:给你一些数,问你是否能够将它们划分成两个集合,使得这两个集合的异或和之差的绝对值最小. 设所有数的异或和为S,集合A的异或和为A. 首先,S的0的位对答案不造成影响. S的最高位1,所对应的A的 ...

  6. 【模拟退火】Petrozavodsk Winter Training Camp 2017 Day 1: Jagiellonian U Contest, Monday, January 30, 2017 Problem F. Factory

    让你在平面上取一个点,使得其到给定的所有点的距离和最小. 就是“费马点”. 模拟退火……日后学习一下,这是从网上扒的,先存下. #include<iostream> #include< ...

  7. 【动态规划】【二分】Petrozavodsk Winter Training Camp 2017 Day 1: Jagiellonian U Contest, Monday, January 30, 2017 Problem B. Dissertation

    题意: 给定S1串,长度100w,S2串,长度1k.问它俩的LCS. f(i,j)表示S2串前i个字符,LCS为j时,最少需要的S1串的前缀长度.转移的时候,枚举下一个字符在S1的位置即可.(可以预处 ...

  8. 【二分】Petrozavodsk Winter Training Camp 2017 Day 1: Jagiellonian U Contest, Monday, January 30, 2017 Problem A. The Catcher in the Rye

    一个区域,垂直分成三块,每块有一个速度限制,问你从左下角跑到右上角的最短时间. 将区域看作三块折射率不同的介质,可以证明,按照光路跑时间最短. 于是可以二分第一个入射角,此时可以推出射到最右侧边界上的 ...

  9. 2015 UESTC Winter Training #7【2010-2011 Petrozavodsk Winter Training Camp, Saratov State U Contest】

    2015 UESTC Winter Training #7 2010-2011 Petrozavodsk Winter Training Camp, Saratov State U Contest 据 ...

随机推荐

  1. Linux学习笔记03

    一.Linux常见命令 file:查看文件类型(windows用扩展名识别文件类型) 语法:file [options] [args] -b:显示结果时,不显示文件名 -c:显示执行file命令的执行 ...

  2. ASP.NET Core Identity自定义数据库结构和完全使用Dapper而非EntityFramework Core

    前言 原本本节内容是不存在的,出于有几个人问到了我:我想使用ASP.NET Core Identity,但是我又不想使用默认生成的数据库表,想自定义一套,我想要使用ASP.NE Core Identi ...

  3. win7-BIOS中开启AHCI模式电脑蓝屏怎么办?

    win7-BIOS中开启AHCI模式电脑蓝屏怎么办? 来源:U大师 u盘装系统 不少网友都表示给电脑安装win7系统后,如果在BIOS中开启IDE模式就一切正常而为AHCI模式时就会出现蓝屏.其实那是 ...

  4. Java——集合类

    1.容器的打印 import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import jav ...

  5. PDF.js 详情解说

    pdf.js资源下载 点我下载 自定义默认加载的pdf资源 在web/view.js中我们可以通过DEFAULT_URL设置默认加载的pdf.通过上面代码我们也可以看出来可以通过后缀名来指定加载的pd ...

  6. CMake入门-02-HelloWorld扩展

    工作环境 系统:macOS Mojave 10.14.6 CMake: Version 3.15.0-rc4 Hello,World! 扩展-同一目录,多个源文件 (1) 新建 hello 目录,创建 ...

  7. C#.Net实现AutoCAD块属性提取

    https://blog.csdn.net/dengyiyu/article/details/2201175 本文主要给大家介绍一下SmartSoft中用C#.Net实现AutoCAD块属性提取的方法 ...

  8. 【hdu 2544最短路】【Dijkstra算法模板题】

    Dijkstra算法 分析 Dijkstra算法适用于边权为正的情况.它可用于计算正权图上的单源最短路( Single-Source Shortest Paths, SSSP) , 即从单个源点出发, ...

  9. 分布式系统的一致性级别划分及Zookeeper一致性级别分析

    最近在研究分布式系统的一些理论概念,例如关于分布式系统一致性的讨论,看了一些文章我有一些不解.大多数对分布式系统一致性的划分是将其分为三类:强一致性,顺序一致性以及弱一致性.强一致性(Strict C ...

  10. 这些用来审计 Kubernetes RBAC 策略的方法你都见过吗?

    原文链接:这些用来审计 Kubernetes RBAC 策略的方法你都见过吗? 认证与授权对任何安全系统来说都至关重要,Kubernetes 也不例外.即使我们不是安全工作人员,也需要了解我们的 Ku ...