暂无链接

下落的圆盘

题目描述

有n个圆盘从天而降! 虽然后面落下的可以盖住前面落下的,可是天神
小O觉得这样很不美观,于是他规定:所有的圆盘两两不能相交!(可以相
切)当然,陆地的大小是有限制的,具体的说,每个圆盘的圆心的x坐标必须
在[0, W]以内,y坐标必须在[0, L]以内。

天神小O想要你帮他构造一个方案。当然,因为他觉得你非常naive,他做
出了一点限制:所有圆盘的面积和不超过15WL15WL\frac{1}{5}W L。

输入格式

第一行有三个整数:n, W, L。

第二行有n个整数,分别表示n个圆盘的半径。

输出格式

输出n行,每行2个实数,表示第i个圆盘的圆心位置。

样例输入

2 6 6
1 1

样例输出

0.0 0.0
6.0 6.0

数据范围与约定

1≤W,L≤1091≤W,L≤1091\le W,L\le 10^9

1≤ri≤1051≤ri≤1051\le r_i\le 10^5

5×π×(∑ni=1r2i)≤w×L5×π×(∑i=1nri2)≤w×L5 × \pi × (\sum_{i=1}^{n}r_i^2) \le w × L

对于40%40%40\% 的数据,1≤n≤101≤n≤101\le n\le 10。

对于100%100%100\%的数据,1≤n≤1031≤n≤1031 \le n \le 10^3。

题目保证有解。

在检验答案合法性时,如果两个实数的差小于10−610−610^{−6},我们认为它们相等。

题解

考场上写了个模拟退火,居然有707070分,觉得自己很强,结果人家直接randrandrand就能过。。。

正解是非常暴力的乱搞,大概可能是先按半径从大到小排个序,然后就一直randrandrand,直到合法。。。

代码
#include<bits/stdc++.h>
#define db double
#define eps 1e-6
#define random(i) cir[i].x=rand()%(w+1),cir[i].y=rand()%(l+1)
using namespace std;
const int M=1005;
struct sd{db x,y,r,id;}cir[M];
bool cmp1(sd a,sd b){return a.r>b.r;}
bool cmp2(sd a,sd b){return a.id<b.id;}
int n,w,l;
db sqr(db x){return x*x;}
db dis(sd a,sd b){return sqrt(sqr(a.x-b.x)+sqr(a.y-b.y));}
bool check(int x){for(int i=1;i<x;++i)if(dis(cir[i],cir[x])<cir[i].r+cir[x].r-eps)return 1;return 0;}
void in(){scanf("%d%d%d",&n,&w,&l);for(int i=1;i<=n;++i)scanf("%lf",&cir[i].r),cir[i].id=i;}
void ac()
{sort(cir+1,cir+1+n,cmp1);cir[1].x=cir[1].y=0;for(int i=2;i<=n;++i)for(random(i);check(i);random(i));sort(cir+1,cir+1+n,cmp2);for(int i=1;i<=n;++i)printf("%.1lf %.1lf\n",cir[i].x,cir[i].y);
}
int main(){in();ac();}

[2018.09.12 T1] 下落的圆盘相关推荐

  1. 2018年12月份学习总结,PMP学习总结

    本文摘录2018年12月份学习总结,创建日期:2019-04-15 17:09:30,有修改. 这是一个在2018年报考.学习PMP的总结,小小的在内网的分享.2021-01-21 22:11:20 ...

  2. 【BZOJ1043】下落的圆盘 [计算几何]

    下落的圆盘 Time Limit: 10 Sec  Memory Limit: 162 MB [Submit][Status][Discuss] Description 有n个圆盘从天而降,后面落下的 ...

  3. 数据库系统期末总结(三)(往届试卷2018年12月A卷、B卷、E卷,2019年5月A卷,选择题终篇)

    接着上次的总结:https://blog.csdn.net/qq_41938259/article/details/103532401 这是我对<数据库系统基础>第三次期末总结.这次是剩下 ...

  4. 2018年12月,华为HCNP大面积更新题目,军哥独家解题咯

    2018年12月,华为HCNP大面积更新题目,乾颐堂军哥独家解题咯 2018年是华为认证变动比较大的一年,华为认证走过这几年不得不说是有一定进步的,而且最近华为孟女侠确实让我也小小的骄傲了一把,所以当 ...

  5. 20172319 2018.10.12《Java程序设计教程》第6周课堂实践(补写博客)

    20172319 2018.10.12 <Java程序设计教程>第6周课堂测验 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...

  6. 【活动(深圳)】告别2018之12.22 大湾区.NET Meet 大会 ,同时有网络直播

    今年的 Connect(); 主题更加聚焦开发者工具生产力.开源,以及无服务器(Serverless)云服务. Visual Studio 2019 AI 智能加持的 IntelliCode.实时代码 ...

  7. 实习期间的一些思考整理(3)2018.4.12~4.13

    青云诀游戏体验日报-2018.4.12 今日关键点:核心玩法 青云诀的核心玩法是"战斗"."成长"."探索"(这三点也是RPG类型的要素), ...

  8. 训练日志 2018.9.12

    大二的课确实是紧,每天除了上课就是写作业,一直没有连续的时间能坐下来写题,这几天用教练交的方法,利用零碎的时间重新好好看了一遍数位 DP,晚上 A 了两道题感觉还不错,也算比较得心应手,接下来的尽量每 ...

  9. 暑期训练日志----2018.8.12

    训练第14天. 基本咸鱼了一个星期,一直划水... 明天开始爆肝... 2018.8.12

  10. 2018年12月份GitHub上最热门的Java开源项目

    2018年12月份GitHub上最热门的Java开源项目 又到了公布 GitHub 上热门项目的时候啦~在 12 月的排行中,现在,一起来看看这些项目你使用过哪些呢? JavaGuide https: ...

最新文章

  1. ggbiplot-最好看的PCA作图:样品PCA散点+分组椭圆+变量贡献与相关
  2. SMRT测序技术及其在微生物研究中的应用
  3. DRV8301的使用
  4. [BZOJ 2555] SubString
  5. 使用Charles为Android设备抓取https请求的包
  6. 方法有多少个参数才算多?
  7. 面试官留步!听我跟你侃会儿Docker原理
  8. 一款高速的NET版的离线免费OCR
  9. 用spss进行数据的标准化处理_如何用SPSS对数据进行标准化处理
  10. 计算机应用 课件 .doc,计算机应用基础(计算机应用基础)课件.doc
  11. python操作redis集群是连接池么_Python如何操作redis使用连接池
  12. 记C++坑:3.结构体和类对齐补齐
  13. 南阳oj 28 大数阶乘
  14. 有的项目是没有seting ,.project文件的,import时not project found处理办法
  15. The Shawshank Redemption-19
  16. DBA到底要做什么?
  17. Windows命令:ipconfig
  18. 题目1022:游船出租(hash简单应用)
  19. 50hz 60hz 级联 陷波器_自适应陷波器级联神经网络抗干扰算法
  20. Android多媒体开发-stagefright及AwesomePlayer相关知识梳理

热门文章

  1. 应急响应系统日志及日志分析四
  2. Hvv近期0day总结二
  3. 95.不同的二叉搜索数II(力扣leetcode) 博主可答疑该问题
  4. 20165223 《JAVA程序设计》第三周学习总结
  5. SSAO + FXAA
  6. Android NavigationView中设置menu中的item字体颜色
  7. DELPHI 对象的本质 VMT
  8. 移动前端开发一定会遇上的事
  9. Android Service使用需要注意事项
  10. 事务(进程 ID )与另一个进程已被死锁在 lock 资源上,且该事务已被选作死锁牺牲品...