思维

[I-Sky Garden_第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海)(重现赛)@hzy0227 (nowcoder.com)](https://codeforces.com/gym/103202/problem/I)

题意

有 \(n\;(1<=n<=500)\) 个同心圆,半径分别为 1,2,3 ... n

有 \(m\;(1<=m<=500)\) 条过原点的直线,把一个圆分为大小相同的 2 * m 部分

圆和直线都是路径,路径长为实际的长度,两两路径会有一个交点,求所有两两交点的最短路之和

思路

\(O(1),O(n),O(n^2),O(n^3)\) 都能写,给出一个 \(O(n^2)\) 的做法

特判!!!,当 m > 1 时两个直线会在圆心有交点,而 m = 1 时圆心没有交点

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef std::pair<int, int> PII;
#define ALL(x) x.begin(),x.end()
#define pb push_back
#define fi first
#define se second
// #define double long double
const double PI = acos(-1.0);
inline ll _read() {
static ll ans;
static unsigned int c;
static bool p;
for (c = getchar(); c != '-' && (c < '0' || c > '9'); c = getchar());
if (c == '-') p = false, c = getchar(); else p = true;
for (ans = 0; c <= '9' && c >= '0'; c = getchar()) ans = ans * 10 + c - '0';
return p ? ans :-ans;
} ll n, m;
double ans;
int main() {
cin >> n >> m;
for (ll r = 1; r <= n; r++)
{
double tmp1 = 0;
ll cnt = n - r;
//外圈除自身和直径
for (ll i = 1; i < m; i++)
{
double a = min((double)r * 2, PI * i * r / m) + 1;
tmp1 += cnt * a + (cnt - 1) * cnt / 2;
}
tmp1 *= 2;
//外圈直径
ll a = 2 * r + 1;
tmp1 += cnt * a + (cnt - 1) * cnt / 2;
//外圈自身
a = 1;
tmp1 += cnt * a + (cnt - 1) * cnt / 2;
tmp1 *= 2 * m; //同圈除直径
double tmp2 = 0;
for (ll i = 1; i < m; i++)
tmp2 += 2 * m * min((double)r * 2, PI * i * r / m);
//同圈直径
tmp2 += m * 2 * r;
ans += tmp1 + tmp2;
}
if (m > 1)
ans += (n + 1) * n * m;
printf("%.10lf\n", ans);
return 0;
}

2020ICPC上海I - Sky Garden的更多相关文章

  1. ASE19团队项目beta阶段Backend组 scrum6 记录

    本次会议于12月12日,19:30在微软北京西二号楼sky garden召开,持续10分钟. 与会人员:Zhikai Chen, Lihao Ran, Xin Kang 请假人员:Hao Wang 每 ...

  2. ASE19团队项目 beta阶段 model组 scrum7 记录

    本次会议于12月10日,19时30分在微软北京西二号楼sky garden召开,持续10分钟. 与会人员:Jiyan He, Lei Chai, Linfeng Qi, Xueqing Wu, Kun ...

  3. ASE19团队项目 beta阶段 model组 scrum6 记录

    本次会议于12月9日,19时30分在微软北京西二号楼sky garden召开,持续20分钟. 与会人员:Jiyan He, Lei Chai, Linfeng Qi, Xueqing Wu, Kun ...

  4. ASE19团队项目 beta阶段 model组 scrum5 记录

    本次会议于12月6日,19时30分在微软北京西二号楼sky garden召开,持续20分钟. 与会人员:Jiyan He, Lei Chai, Linfeng Qi, Xueqing Wu, Kun ...

  5. ASE19团队项目 beta阶段 model组 scrum4 记录

    本次会议于12月5日,19时30分在微软北京西二号楼sky garden召开,持续10分钟. 与会人员:Lei Chai, Linfeng Qi, Xueqing Wu, Yutong Ling (Z ...

  6. ASE19团队项目 beta阶段 model组 scrum3 记录

    本次会议于12月4日,19时30分在微软北京西二号楼sky garden召开,持续20分钟. 与会人员:Jiyan He, Lei Chai, Linfeng Qi, Xueqing Wu, Yuto ...

  7. ASE19团队项目 beta阶段 model组 scrum2 记录

    本次会议于12月3日,19时整在微软北京西二号楼sky garden召开,持续10分钟. 与会人员:Jiyan He, Kun Yan, Lei Chai, Linfeng Qi, Xueqing W ...

  8. ASE19团队项目 beta阶段 model组 scrum1 记录

    本次会议于12月2日,18时30分在微软北京西二号楼sky garden召开,持续25分钟. 与会人员:Jiyan He, Kun Yan, Lei Chai, Linfeng Qi, Xueqing ...

  9. ASE19团队项目beta阶段Backend组 scrum8 记录

    本次会议于12月17日,19:30在微软北京西二号楼sky garden召开,持续10分钟. 与会人员:Hao Wang, Lihao Ran, Xin Kang, Zhikai Chen 每个人的工 ...

  10. ASE19团队项目beta阶段Backend组 scrum7 记录

    本次会议于12月13日,19:30在微软北京西二号楼sky garden召开,持续10分钟. 与会人员:Hao Wang, Lihao Ran, Xin Kang 请假人员:Zhikai Chen 每 ...

随机推荐

  1. VUE学习-自定义修饰符

    自定义修饰符 组件 const myComponent = { template: `<input type="text" :value="modelValue&q ...

  2. Mysql 原生语句

    1.SQL语句 1.1什么是SQL语句: SQL:结构化查询语言.关系数据库语言的国际标准. 各个数据库厂商都支持ISO的SQL标准:如普通话 各个数据库厂商在标准基础做了自己的扩展:如方言 1.2 ...

  3. mysql主从故障跳过错误

    mysql主从故障跳过错误1.从库报错 21,22,23,25无法执行Retrieved_Gtid_Set: 265c6c2a-86ca-11ed-b07a-0242ac120002:1-25Exec ...

  4. Centos 7.9 基于二进制文件部署kubernetes v1.25.5集群

    简述 Kubernetes(简称为:k8s)是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器 ...

  5. 072_关于Dataloader导入Record的创建时间及修改时间并允许owner是Inactive

    1.在User interface 中 启用 Enable "Set Audit Fields upon Record Creation" and "Update Rec ...

  6. lowcodeEngine 组件面板的拖拽功能

    设计器和渲染器处在不同的 Frame 渲染器以单独的 iframe 嵌入,xxx-simulator-renderer 通过和 host进行通信来和设计器打交道,比如点击渲染画布任意一个位置,需要能计 ...

  7. SQL_TIP_JOIN_x

    没有条件的JOIN会导致数据数量变为两表的数据量的乘积结果. 用ON来在这些结果里进行筛选 on T1.A = T2.A的时候,如果T1的A是不重复的,则实际上是在对T2现有数据做筛选,结果数据量&l ...

  8. 3 - 标准数据加密(DES)及其备选

    标准数据加密(DES)及其备选 我的博客 原书:<Understanding Cryptography: A Text book for Students and Practitioners&g ...

  9. 【Java学习Day06】注释种类、符号及用法

    注释种类 单行注释:只能注释一行文字 多行注释:可以注释一段文字 文档注释:用来生成说明文件 注释符号及用法 单行注释:// //后面写注释 多行注释:/**/ /* 我是注释 我是注释 我是注释 * ...

  10. postgresql添加系统表报错

    1.添加系统表后,执行make install报如下错误,未自动生成下面两个文件cp: cannot stat './catalog/ux_user_status_d_compatible.h': N ...