2020ICPC上海I - Sky Garden
思维
[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的更多相关文章
- ASE19团队项目beta阶段Backend组 scrum6 记录
		本次会议于12月12日,19:30在微软北京西二号楼sky garden召开,持续10分钟. 与会人员:Zhikai Chen, Lihao Ran, Xin Kang 请假人员:Hao Wang 每 ... 
- ASE19团队项目 beta阶段 model组 scrum7 记录
		本次会议于12月10日,19时30分在微软北京西二号楼sky garden召开,持续10分钟. 与会人员:Jiyan He, Lei Chai, Linfeng Qi, Xueqing Wu, Kun ... 
- ASE19团队项目 beta阶段 model组 scrum6 记录
		本次会议于12月9日,19时30分在微软北京西二号楼sky garden召开,持续20分钟. 与会人员:Jiyan He, Lei Chai, Linfeng Qi, Xueqing Wu, Kun ... 
- ASE19团队项目 beta阶段 model组 scrum5 记录
		本次会议于12月6日,19时30分在微软北京西二号楼sky garden召开,持续20分钟. 与会人员:Jiyan He, Lei Chai, Linfeng Qi, Xueqing Wu, Kun ... 
- ASE19团队项目 beta阶段 model组 scrum4 记录
		本次会议于12月5日,19时30分在微软北京西二号楼sky garden召开,持续10分钟. 与会人员:Lei Chai, Linfeng Qi, Xueqing Wu, Yutong Ling (Z ... 
- ASE19团队项目 beta阶段 model组 scrum3 记录
		本次会议于12月4日,19时30分在微软北京西二号楼sky garden召开,持续20分钟. 与会人员:Jiyan He, Lei Chai, Linfeng Qi, Xueqing Wu, Yuto ... 
- ASE19团队项目 beta阶段 model组 scrum2 记录
		本次会议于12月3日,19时整在微软北京西二号楼sky garden召开,持续10分钟. 与会人员:Jiyan He, Kun Yan, Lei Chai, Linfeng Qi, Xueqing W ... 
- ASE19团队项目 beta阶段 model组 scrum1 记录
		本次会议于12月2日,18时30分在微软北京西二号楼sky garden召开,持续25分钟. 与会人员:Jiyan He, Kun Yan, Lei Chai, Linfeng Qi, Xueqing ... 
- ASE19团队项目beta阶段Backend组 scrum8 记录
		本次会议于12月17日,19:30在微软北京西二号楼sky garden召开,持续10分钟. 与会人员:Hao Wang, Lihao Ran, Xin Kang, Zhikai Chen 每个人的工 ... 
- ASE19团队项目beta阶段Backend组 scrum7 记录
		本次会议于12月13日,19:30在微软北京西二号楼sky garden召开,持续10分钟. 与会人员:Hao Wang, Lihao Ran, Xin Kang 请假人员:Zhikai Chen 每 ... 
随机推荐
- notepad++ 配置Java 环境
			(1)设计新建文件的类型与编码方式: (2)安装插件NppExec (3)插件配置 (4)编辑并配置命令: 找到Advance Options; 在红中找到Java,点击 (5)运行结果查看: (6) ... 
- springboot集成xxl-job问题
			Client-error:unknown code for readObject at 0x3c (<) 原因之一是classNotFoundRxception :com.caucho.hess ... 
- 堆QAQ
			L2-012 关于堆的判断 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: x and y are si ... 
- CI2454 低成本高性能SOC产品 遥控产品的绝佳选择
			Ci2454 是一款集成无线收发器和 8 位 RISC(精简指令集)MCU 的 SOC 芯 片. 无线收发器特性:  工作在 2.4GHz ISM 频段.  调制方式:GFSK/FSK.  数据 ... 
- Spring基本概述
			Spring是一个开源框架,官方网站是http://spring.io/,Spring是2003年兴起的一个轻量级的Java开发框架,由lnterface21公司的JavaEE专家RodJohnson ... 
- NLog日志  富文本编辑器
			NLog日志 NLog是什么 NLog是一个基于.NET平台编写的类库,我们可以使用NLog在应用程序中添加极为完善的跟踪调试代码.NLog是一个简单灵活的.NET日志记录类库.通过使用NLog,我们 ... 
- 抽取JDBC工具类:JDBCUtils
			目的:简化书写 分析: 驱动注册,连接对象创建,其中包括输入驱动,数据库的地址,以及用户名和密码,每次编写代码都需要重复编写,如果每次使用的都是同一个账户的同一个数据库,代码的重复读很高,甚至 ... 
- spark structured streaming (结构化流)  join 操作( 官方文档翻译)
			spark 结构化流 join 连接 结构化流支持将流dataset/DataFrame与静态dataset/DataFrame,或者另一个流数据集-DataFrame连接起来.流式连接的结果是增量生 ... 
- JAVA集合框架特征介绍
			数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作.Java提供了几个能有效地组织和操作数据的数据结构,这些数据结构通常称为Java集合框架.在平常的学习开发中,灵 ... 
- 基于MIPI的高性能成像系统
			硬件组件Digilent Genesys ZU × 1 (FPGA平台) Digilent PCAM5 × 1 (MIPI摄像头) 软件组件AMD-Xilinx Vivado 设计套件 介绍从简单的嵌 ... 
