思维

[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. javaweb同一个项目打包两次放在同一个tomcat下

    web.xml中配置: <context-param> <param-name>webAppRootKey</param-name> <param-value ...

  2. 部署mall电商系统踩坑记录

    一. mysql docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/d ...

  3. Spring的AOP源码解析(二)

    Spring AOP 源码解析 目录 Spring AOP 源码解析 前言 本文使用的调试代码 IOC 容器管理 AOP 实例 ProxyFactory 详解 基于注解的 Spring AOP 源码分 ...

  4. Unity 打包到XCode自动化设置参数

    [PostProcessBuild] public static void OnPostprocessBuild(BuildTarget buildTarget, string buildPath) ...

  5. didi-笔试

    import java.util.*; /** * 正整数,没有前导0 * 相邻的数字不能相同 * 可以被3整除 * 输入:?12?0?9?? * 输出:212101902 */ public cla ...

  6. 微信小程序隐私指引完整填写范本(开发者收集你选中的照片或视频信息,用于?)

    为了分辨用户,开发者将在获取你的明示同意后,收集你的微信昵称.头像.为了显示距离,开发者将在获取你的明示同意后,收集你的位置信息.开发者收集你的地址,用于获取位置信息.开发者收集你的发票信息,用于维护 ...

  7. 25 String 对象中的属性

    <!DOCTYPE html> <html lang="en">   <head>     <meta charset="UTF ...

  8. Python学习的第一次总结

    执行Python的方式:1.交互器(不易保存,闪现,不方便看)2.用win-cmd 来执行(用notepad++保存后执行) 开始 >> cmd >> cd c:\ #切c盘& ...

  9. 前端之Vue day07 混入、插件、elementui、Router、Vuex

    一.Props补充 1.父传子在子组件标签上起自定义属性 使用数组 就不演示了,太简单了 2.限制传入的数据类类型 使用对象 同样,展示过的 3.props补充 就是套对象,加以限制 props:{ ...

  10. Django初识(一)

    一.Django简介 Django是一个开放源代码的Web应用框架,由Python写成.采用了MTV的设计模式,即模型M,视图V和模版T 1.框架介绍 具体介绍Django之前,必须先介绍Web框架的 ...