2018-2019 ACM-ICPC, Asia East Continent Finals

总体情况

本次训练共3小时20分钟,通过题数4。

解题报告

D. Deja vu of … Go Players

题意

\(A,B\)博弈,\(A\)有\(N\)堆石子,第\(i\)堆数量\(a_i\); \(B\)有\(M\)堆石子,第\(i\)堆数量\(b_i\)。每次每个人可以从自己拥有的石子堆中选取任意一堆并拿走任意正整数个石子。先拿完的人赢。求胜负情况。$N,M \leq 100, $ $a_i,b_i \leq 10^9, $ \(T \leq 100\)

题解

很显然贪心跑得快,只和堆数有关。根据\(N,M\)的大小关系决定胜负。

L. Eventual … Journey

题意

有\(n\)个点,\(m\)条双向边长度都是\(1\),同时点被分为两类,每类点可以花费\(1\)的代价到任何一个自己同类的点。对所有\(i\),求

\[\sum_{j=1}^n {dist(i \to j)}
\]

数据范围\(n,m \leq 10^5\)

题解

我们设\(d_i\)为点\(i\)与不同于自己类别的点直接相连的数量。设\(a_i\)为点\(i\)的类别,取值\(0\)或\(1\)。设\(s_i\)为第\(i\)类点的数量。设\(c_i\)为第\(i\)类点中有多少个点与另一类点有边直接相连。

对于任意的\(i\),如果

  • \(d_i > 0\),那么显然点\(i\)可以花费\(1\)的代价到任何一个自己同类的点,以及任何一个与自己直接相连的不同类的点,其余的点代价为\(2\),于是答案为

\[n-1+s_{1-a_i}-d_i
\]

  • \(d_i = 0\),那么显然点\(i\)可以花费\(1\)的代价到任何一个与自己同类的点,花费\(2\)的代价到另一类点中与\(i\)所在类别点集有边直接相连的点,花费\(3\)的代价到其余的点。于是答案为

\[3(n-1) - 2(s_i - 1) - c_{1-a_i}
\]

时间复杂度 \(O(n+m)\)

F. Interstellar … Fantasy

题意

给出三维欧几里得空间中两个点的坐标,求不经过一个给定球体的最短路长。

题解

稍作思考,发现如果两点连线段与球体不相交则为线段长,若相交,则答案必然为两线段和一弧的和。保留原来的线段并不是最优解,很容易发现,当两线段与球相切时最优。更准确地,整条路经一定在给定三个点确定的平面上,并且平面与球交出的圆与两条线段相切时就是最优解。

利用点积叉积和矢量定比分点讨论一下即可。

P3 delt=p-q;
db len=delt.abs();
db d=(cross(p-c,q-c).abs())/(len);
if(d<r) {
db d1=(p-c).abs(), d2=(q-c).abs();
db l1=sqrt(d1*d1-r*r), l2=sqrt(d2*d2-r*r);
db theta = acos(dot(p-c,q-c)/(d1*d2)) - acos(r/d1) - acos(r/d2); if(abs(((sqrt(d1*d1-d*d)+sqrt(d2*d2-d*d)))*d - (cross(p-c,q-c).abs()) ) < 1e-5) {
if(d<1e-5) {
if(dot(p-c,q-c)>0) cout<<setiosflags(ios::fixed)<<setprecision(10)<<len<<endl;
else cout<<setiosflags(ios::fixed)<<setprecision(10)<<r*theta + l1 + l2<<endl;
}
else cout<<setiosflags(ios::fixed)<<setprecision(10)<<r*theta + l1 + l2<<endl;
}
else cout<<setiosflags(ios::fixed)<<setprecision(10)<<len<<endl;
}
else cout<<setiosflags(ios::fixed)<<setprecision(10)<<len<<endl;

训练20191009 2018-2019 ACM-ICPC, Asia East Continent Finals的更多相关文章

  1. 2019 ACM/ICPC Asia Regional shanxia D Miku and Generals (二分图黑白染色+01背包)

    Miku is matchless in the world!” As everyone knows, Nakano Miku is interested in Japanese generals, ...

  2. 2018-2019 ACM-ICPC, Asia East Continent Finals I. Misunderstood … Missing(dp)

    题目链接: http://codeforces.com/gym/102056/problem/I 题意: 人物有l两个属性分别是$A,D$ 每个回合人物$A\pm D$ 每个回合有三个选择分别是: 1 ...

  3. 2018-2019 ACM-ICPC, Asia East Continent Finals部分题解

    C:显然每p2个数会有一个0循环,其中22 32 52 72的循环会在200个数中出现,找到p2循环的位置就可以知道首位在模p2意义下是多少,并且循环位置几乎是唯一的(对72不满足但可能的位置也很少) ...

  4. 2018-2019 ACM-ICPC, Asia East Continent Finals Solution

    D. Deja vu of … Go Players 签. #include <bits/stdc++.h> using namespace std; int t, n, m; int m ...

  5. 2016 ACM/ICPC Asia Regional Shenyang Online 1009/HDU 5900 区间dp

    QSC and Master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  6. hdu 5444 Elven Postman(二叉树)——2015 ACM/ICPC Asia Regional Changchun Online

    Problem Description Elves are very peculiar creatures. As we all know, they can live for a very long ...

  7. (二叉树)Elven Postman -- HDU -- 54444(2015 ACM/ICPC Asia Regional Changchun Online)

    http://acm.hdu.edu.cn/showproblem.php?pid=5444 Elven Postman Time Limit: 1500/1000 MS (Java/Others)  ...

  8. 2015 ACM/ICPC Asia Regional Changchun Online HDU 5444 Elven Postman【二叉排序树的建树和遍历查找】

    Elven Postman Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)T ...

  9. hduoj 4710 Balls Rearrangement 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4710 Balls Rearrangement Time Limit: 6000/3000 MS (Java/Ot ...

随机推荐

  1. css基础-盒子模型+背景和列表

    border-style的值: none 无 dotted 点状 dashed 虚线 solid 实线 double 双实线 margin: 垂直方向两个相邻元素都设置了外边距,那么外边距会发生合并 ...

  2. 洛谷P1880 [NOI1995]石子合并 纪中21日c组T4 2119. 【2016-12-30普及组模拟】环状石子归并

    洛谷P1880 石子合并 纪中2119. 环状石子归并 洛谷传送门 题目描述1 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石 ...

  3. centos7 升级sqlite3

    升级sqlite3 官网 点击 1.下载源码 wget https://www.sqlite.org/2019/sqlite-autoconf-3300100.tar.gz 2.解压,编译 .tar. ...

  4. adworld python-trade | python反编译

    附件是.pyc格式的文件. Python程序中,原始程序代码存储在.py文件里,而Python会在执行.py文件的时候,会将.py形式的程序编译成中间式文件(byte-compiled)的.pyc文件 ...

  5. beego的请求数据处理

    我们经常需要获取用户传递的数据,包括 Get.POST 等方式的请求,beego 里面会自动解析这些数据,你可以通过如下方式获取数据: GetString(key string) string Get ...

  6. jquery form表单赋值封装

    ;!(function ($) { $.fn.setFormValue = function (options) { var $this = $(this); $.each(options, func ...

  7. gulp常用插件之gulp-htmlmin使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-htmlmin这是一款HTML文件压缩插件. 更多使用文档请点击访问gulp-htmlmin工具官网. 安装 一键安装不多解释 npm ...

  8. CF573E Bear and Bowling(6-1)

    题意 洛谷 做法一 考虑一种贪心(先别管对不对),设当前已选择的集合为\(A\),这是考虑该集合的补集,每个元素加进来后的增量为\(V_i\),则挑选最大的那个加入该集合 结论1:遵循上述贪心,\(\ ...

  9. mysql 数据备份。pymysql模块

    阅读目录 一 IDE工具介绍 二 MySQL数据备份 三 pymysql模块 一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具 下载链接:https:/ ...

  10. 0级搭建类009-Fedora 30 安装(F30) 公开

    项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...