2018 Petrozavodsk Winter Camp, Yandex Cup
A. Ability Draft
solved by RDC 60min start, 148 min AC, 1Y
题意:两只 Dota 队伍,每队 \(n\) 个英雄,英雄一开始无技能,他们需要按照给定的顺序在技能池中选技能,每个英雄需要恰选择 \(s\) 个普通技能 和 1 个终极技能,每个技能有强度值,双方都想最大化己方和对方强度值之差,双方都是明智的。
做法:注意到,每个英雄,要么选择最强的终极技能要么选择最强普通技能。考虑 DP,用 \(f[x][mask_1][mask_2]\) 表示,还有 \(x\) 个人没选技能,队伍 A 中 \(mask_1\) 中的人获得了终极技能,队伍 B 中 \(mask_2\) 中的人获得了终极技能,在此情况下队伍 A 和队伍 B 的极大分差。考虑到 \(f[x][mask_1][mask_2]\) 的转移,我们对拿终极技能还是普通技能进行决策,即可转移到 \(f[x+1][?][?]\)
C. Block, Stock and Two Smoking Galaxy Notes
solved by F0_0H 20min start, 57 min AC, 1Y
题意:(签到题)给定一个简单图,要求选定一个点为King,并且其他\(n-1\)个点有一个划分,使得每个点所属块的大小为1或2,并且满足每个块内联通,且至少存在一个点与King有边
做法:枚举King(\(度数 \geq \frac{n}{2}\)),然后对于其他\(n-1\)个点根据是否与King有边相连构建二分图,跑一遍匈牙利判断每个点是否有着落,如果可以,输出
F. Shuffle
solved by sdcgvhgj 267min AC, +4
题意 定义操作\(shuffle(s) = s_1s_3...s_{n-1}s_2s_4...s_n\),问最少进行多少次操作把s变换到t
做法 把此置换分成若干个独立的循环,设第i个循环把s变换到t的最小步数为\(a_i\),把t变换到t的最小步数为\(m_i\),于是有 \(ans\%m_i=a_i\),于是用KMP求出\(a_i\)和\(m_i\)再用扩展中国剩余定理求出ans即可。
证明:考虑第i个循环,
1.若用n步能从t变换到t,则一定有\(m_i|n\),若不满足,设\(x=n\%m_i\),则x步也可以从t变换到t,且\(x<m_i\),矛盾。(离散里群的最小生成元?)
2.若用n步能从s变换到t,那么可以看成先用\(a_i\)步从s变换到t,再用\(n-a_i\)步从t变换到t,于是 \(n\%m_i=a_i\)
G. Piecewise Linearity
solved by sdcgvhgj 117min AC, +1
题意 给一条折线,问能不能用\(f(x)=\sum_{i=1}^m\lambda_i|x-a_i|\)形状的函数来表示
做法 对于折线第i个点,有\(\lambda_i=(右侧斜率-左侧斜率)/2\),所以\(f(x)\)就确定了,判断是否满足即可。注意除斜率条件还有截距条件。
H. Sketch
solved by RDC 213min start, 256 min AC, +4
题意 构造长度为 \(n\) 的序列 \(b[]\), \(1\leq b_i \leq m\),LIS 为 \(k\),对于 \(1\leq i \leq k\)若 \(a_i \neq -1\),长度为 \(i\) 的不降子序列结尾元素极小值为 \(a_i\)。
做法 考虑没有 -1 的 case,有解的一个必要条件是 \(a_i\) 不降,先不考虑长度为 \(n\) 的限制,那么有
- 我们可以构造长度为 \(k\) 的序列,且 \(k\) 是下界。
- 在序列中,\([a_k,m+1)\) 中的每个元素至多出现 \(k\) 次,\([a_{k-1},a_k)\) 中的每个元素至多出现 \(k-1\) 次 ..... \([a_1,a_2)\) 中的每个元素至多出现 1 次,根据这个性质,序列长度存在一个上界 \((a_2-a_1)+2*(a_3-a_2)+....+k*(m+1-a_k)\) = \(k*(m+1) - \sum_{i=1}^{k}a_i\)
构造方法:
- 写下序列 \([a_1,a_2,a_3,....,a_k]\)
- 在序列前添上,\([1个a_2,1个a_2-1,.....,1个a_1+1]\)
- 在序列前添上,\([2个a_3,2个a_3-1,.....,2个a_2+1]\)
- 在序列前添上,\([3个a_4,3个a_4-1,.....,3个a_3+1]\)
以此类推,因此我们证明了,下界到上界中的每个长度都是可以构造出来的。【介值定理既视感】
考虑有 -1 的 Cas,我们贪心地给 \(a_i=-1\) 的位置赋值使得上界极大即可。
I. Piecewise Linearity
upsolved by sdcgvhgj
题意 n个大小为k的栈,每次给你栈顶元素,你输出x,它将栈顶>=x或<=x的元素pop出来,在50次以内把栈清空
做法 按栈的剩余个数越多优先级越高的想法,每次按栈顶元素排序,选一个位置使左边和右边的\(\sum size(i)\)尽可能接近,WA,改成使\(\sum 2^{size(i)}\)尽可能接近,AC。
K. Hiding a Tree
solved by sdcgvhgj 40min start, 64min AC, +2
题意 给定一棵树,并且其中某些节点可以将其编号改为\([1,1e9]\)的任意值,两节点编号不能相同,你需要使序列 \(n,u_1,v_1,u_2,v_2...u_n,v_n\)异或和为0
做法 只有度数为奇数的点的标号会影响异或和,对这样的点的个数进行讨论即可。注意一个点时如果需要改成的标号冲突但那个点可以进行修改也是可以的,有两个点但需要这两个点标号相等是不可以的,大于两个点一定可以
2018 Petrozavodsk Winter Camp, Yandex Cup的更多相关文章
- 2019 Petrozavodsk Winter Camp, Yandex Cup C. Diverse Singing 上下界网络流
建图一共建四层 第一层为N个歌手 第二层为{pi,li} 第三层为{si,li} 第四层为M首歌 除了S和第一层与第三层与T之间的边为[1,INF] 其他边均为[0,1] #include<bi ...
- Petrozavodsk Winter Camp, Warsaw U, 2014, A The Carpet
一个地图上有若干障碍,问允许出现一个障碍的最大子矩形为多大? 最大子矩形改编 #include<bits/stdc++.h> using namespace std; #define re ...
- Petrozavodsk Winter Camp, Day 8, 2014, Ship
$dp(i,j)$表示i-j这段还没运走时的状态,包括 运输了多少次,还剩多少空间 每次枚举运输左边还是右边转移 #include <bits/stdc++.h> #define rep( ...
- Petrozavodsk Winter Camp, Day 8, 2014, Fine Brochures
1的个数-块的个数+多减的个数+flag 多减的只会在一个循环末尾出现 #include <bits/stdc++.h> using namespace std; #define rep( ...
- Petrozavodsk Winter Camp, Day 8, 2014, Second Trip
给你一棵树,每次询问一个(a,b),问有多少有路径与a-b没有交集 找lca #include <bits/stdc++.h> using namespace std; #define r ...
- Petrozavodsk Winter Camp, Day 8, 2014, Mosaic
给你三个数字a,b,c,让你用1-m的数字凑出来 结论:有2个1和2个2肯定凑不出来,然后就搜索 #include <bits/stdc++.h> using namespace std; ...
- Petrozavodsk Winter Camp, Day 8, 2014, Rectangle Count
给一个n*m的格点图,问其中有多少个矩形? $ \sum_{x=1}^{nm} \sum_{ab=x} [a + b \leq n](n - a - b + 1)\sum_{cd=x} [c + d ...
- Petrozavodsk Winter Camp, Andrew, 2014, Dichromatic Trees
条件: 1:每个红色节点的儿子都是黑色节点 2.每个叶子到根路径上的黑点数相等,等于某个常数,称作树的black height 求给定black height和节点数的符合条件的方案数 $black_ ...
- Petrozavodsk Winter Camp, Andrew, 2014, Bipartite Bicolored Graphs
由i个点和j个点组成的二分图个数为 $3^{ij}$,减去不联通的部分得到得到由i,j个点组成的联通二分图个数 $g_{i,j} = 3_{ij} - \sum_{k=1}^i \sum_{l=0}^ ...
随机推荐
- 归并排序(从上到下、从下到上)——C语言
归并排序 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归 ...
- 雪花算法【分布式ID问题】【刘新宇】
分布式ID 1 方案选择 UUID UUID是通用唯一识别码(Universally Unique Identifier)的缩写,开放软件基金会(OSF)规范定义了包括网卡MAC地址.时间戳.名字空间 ...
- go interface衍生的插件化处理
在设计程序的许多应用场景中我们会遇到大体分为三个阶段的任务流. 第一.入口 一个或多个入口,等待阻塞的.或者主动请求方式的. ============================== 比如任务流需 ...
- 在docker中开启新的container
当你在启动某个容器类型的时候 如果产生了类似的错误: docker: Error: No such image: b27f5dfcfc70c16d7b135889460def6b3f831bcc72 ...
- 8.源码分析---从设计模式中看SOFARPC中的EventBus?
我们在前面分析客户端引用的时候会看到如下这段代码: // 产生开始调用事件 if (EventBus.isEnable(ClientStartInvokeEvent.class)) { EventBu ...
- LayDate使用
layDate非常愿意和您成为工作伙伴.她致力于成为全球最用心的web日期支撑,为国内外所有从事web应用开发的同仁提供力所能及的动力.她基于原生JavaScript精心雕琢,兼容了包括IE6在内的所 ...
- 8.14 day32 TCP服务端并发 GIL解释器锁 python多线程是否有用 死锁与递归锁 信号量event事件线程q
TCP服务端支持并发 解决方式:开多线程 服务端 基础版 import socket """ 服务端 1.要有固定的IP和PORT 2.24小时不间断提供服务 3.能够支 ...
- python语言特点简介 以及在Windows以及Mac中安装以及配置的注意事项
正如前一篇随笔所提到的,python属于解释型语言 python语言有两个特点: 1.胶水语言(历史遗留问题,原来Perl语言作为Unix内置标准件,获得极大追捧,作为竞争者的python一开始是作为 ...
- Zabbix-绘制动态拓扑图基础篇
一.实验环境 1.1 zabbix 4.0.2 二.实验需求介绍 公司希望网络拓扑能够动态反应物理接口的状态或者业务的状态,希望将网络拓扑显示到大屏上 三.Zabbix在绘制拓扑的优缺点 3.1 优点 ...
- 在github上搭建个人博客并在线更新
换博客比更博还勤的我终于决定写一篇博客搭建教程了.. FAQ Q:\(hexo\)需要本地编译.\(jekyll\)虽然可以直接上传\(md\)..但是如果在github上直接编译也太难受了叭,毕竟不 ...