题意:铁人双项比赛由长跑和骑自行车组成,参赛选手必须先完成k公里的长跑,然后完成r公里的骑车,才能到达终点.参赛选手有的擅长长跑,有的擅长骑车. 如果总赛程s=k+r一定,那么K越大,对擅长长跑的选手越有利:k越小,对擅长骑车的选手越有利. 现在给定总赛程s,以及每个选手长跑和骑车的平均速度,请你求出对于某个指定的选手最有利的k和r. 所谓最有利,是指选择了这个k和r后,该选手可以获得冠军,且领先第2名尽量地多. 讲道理这题应该有SpecialJudge,但是BZOJ是在有多种方案时输出k最小的…
计算几何/半平面交 本来我是想去写POJ 1755的,然后想起了这道跟它很像的题,但应该是弱化版,所以就先写了这个…… 我们可以发现每个人的总用时,与k是呈一次函数关系的:$time_i=\frac{k}{Vrun_i}+\frac{S-k}{Vride_i}$ 然而我们要找的是某个k,使得$min(time_n-time_i)$最大 那么就是一个线性规划问题了……这个也可以用半平面交来做……(蒟蒻并不会单纯形) 下面的部分为了偷懒简洁我就用$a_i$和$b_i$来代替两种速度…… 我一开始想的…
Description 铁人双项比赛是吉林教育学院的一项传统体育项目.该项目比赛由长跑和骑自行车组成,参赛选手必须先完成k公里的长跑,然后完成r公里的骑车,才能到达终点.每个参赛选手所擅长的项目不同,有的擅长长跑,有的擅长骑车.如果总赛程s=k+r一定,那么K越大,对擅长长跑的选手越有利:k越小,对擅长骑车的选手越有利.   现在给定总赛程s,以及每个选手长跑和骑车的平均速度,请你求出对于某个指定的选手最有利的k和r.所谓最有利,是指选择了这个k和r后,该选手可以获得冠军,且领先第2名尽量地多.…
[APIO2018]铁人两项(圆方树,动态规划) 题面 UOJ 洛谷 BZOJ 题解 嘤嘤嘤,APIO的时候把一个组合数写成阶乘了,然后这题的70多分没拿到 首先一棵树是很容易做的,随意指定起点终点就只能在两点路径上选择第三点.那么考虑过中点的路径个数,就可以很方便的\(dp\)计算了. 对于仙人掌而言,把环全部缩成点,转成树,缩起来的点额外定义一个点权,同样可以直接在树上做\(dp\),额外考虑环自身内部的贡献. 那么对于一般图而言,构建圆方树,那么选定起点和终点后,还是只能选择两点路径之间的…
题目描述 比特镇的路网由 \(m\) 条双向道路连接的 \(n\) 个交叉路口组成. 最近,比特镇获得了一场铁人两项锦标赛的主办权.这场比赛共有两段赛程:选手先完成一段长跑赛程,然后骑自行车完成第二段赛程. 比赛的路线要按照如下方法规划: 1.先选择三个两两互不相同的路口 \(s\) ,\(c\) 和 \(f\) ,分别作为比赛的起点.切换点(运动员在长跑到达这个点后,骑自行车前往终点).终点. 2.选择一条从 \(s\) 出发,经过 \(c\) 最终到达 \(f\) 的路径.考虑到安全因素,选…
luogu 题目描述 比特镇的路网由 \(m\) 条双向道路连接的 \(n\) 个交叉路口组成. 最近,比特镇获得了一场铁人两项锦标赛的主办权.这场比赛共有两段赛程:选手先完成一段长跑赛程,然后骑自行车完成第二段赛程. 比赛的路线要按照如下方法规划: \(1\).先选择三个两两互不相同的路口 \(s, c\) 和 \(f\) ,分别作为比赛的起点.切换点(运动员在长跑到达这个点后,骑自行车前往终点).终点. \(2\).选择一条从 \(s\) 出发,经过 \(c\) 最终到达 \(f\) 的路径…
[APIO2018] Duathlon 铁人两项 LG传送门 圆方树+简单DP. 不会圆方树的话可以看看我的另一篇文章. 考虑暴力怎么写,枚举两个点,答案加上两个点之间的点的个数. 看到题面中的一句话: 考虑到安全因素,选择的路径经过同一个点至多一次. 换句话说就是简单路径,用(广义)圆方树的基本条件已经满足,可以把问题变到树上:令方点的权值为所在点双的大小,圆点会被算重所以点权为\(-1\),统计任意两点间的点权和就好了.直接做是\(n ^ 2\)的,考虑枚举每一个点看会产生多少贡献,对答案的…
 [APIO2018] 铁人两项 题目大意: 给定一张图,问有多少三元组(a,b,c)(a,b,c 互不相等)满足存在一条点不重复的以a为起点,经过b,终点为c的路径 如果你不会圆方树 ----------------------- 放弃是最好的选择(先学了再来吧) 如果你会圆方树 考虑\((a,...,c)\) 1.如果a,c不同属一个点双,不难发现答案为路上经过的(点双的节点个数)的和减去割点数 2.如果a,c同属一个点双,那么答案为本点双的节点个数 - 2 自然地想到方点的权值为内含节点个…
把这个图缩成圆方树,把方点的权值设成-1,圆点的权值设成点双的size,算 经过这个点的路径的数量*这个点的点权 的和即是答案. #include <iostream> #include <cstdio> #include <cstring> using namespace std; ; struct Edge{ int to[N],nxt[N],head[N],ecnt; Edge(){ecnt=;} void add(int bg,int ed) {nxt[++ec…
题目链接: [APIO2018]铁人两项 对于点双连通分量有一个性质:在同一个点双里的三个点$a,b,c$,一定存在一条从$a$到$c$的路径经过$b$且经过的点只被经过一次. 那么我们建出原图的圆方树,枚举中间点$b$,一对合法的$a,c$需要使这两个点位于与$b$直接相连的方点的不同子树中.树形$DP$,对圆点和方点分别统计答案即可. #include<set> #include<map> #include<queue> #include<stack>…