博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计蒜客 429(腾讯手机地图-pi的精确值)
阅读量:6292 次
发布时间:2019-06-22

本文共 1967 字,大约阅读时间需要 6 分钟。

腾讯手机地图的定位功能用到了用户手机的多种信号。这当中有的信号的作用范围近。有的信号作用的范围则远一些。有的信号相对于用户在不同的方位强度是不同的。有的则是在不论什么一个方向上信号强度都一致的。

已知用户面向北方拿着自己的手机,在不同方位的各种信号覆盖区域能够被抽象成以用户为圆心的一系列扇形。已知每一个扇形的半径 r,和每一个扇形的两条边相对于正东方向的夹角度数。

每一个信号覆盖区域抽象出的扇形都能够通过从第一条边逆时针旋转到第二条边画出。

输入格式

请计算一下,用户手机全部信号覆盖到的区域的总面积。

第一行输入一个整数 T (1 ≤ T ≤ 20),表示数据组数。

接下来一共 T 组数据,每组数据第一行输入一个整数 n (1 ≤ n ≤ 104),表示各种信号能够抽象出的不同扇形的总个数。接下来输入 n 行,每行 3 个整数表示扇形半径 r (1 ≤ r ≤ 105)、扇形第一条边与正东方向的夹角 α、扇形第二条边与正东方向的夹角 β (-90 ≤ α ≤ β < 270)。

输出格式

输出 T 行,每行一个非负浮点数。表示用户手机全部信号覆盖到的区域的范围的总面积。

每组输出与标准答案绝对误差在 10-3 内均觉得是正确的。

例子1

输入:

142 -30 323 20 813 121 1602 141 201

输出:

11.030

这题极端情况 pi*10^10 保留3位小数

所以 精度非常重要  pi的精度

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#define Rep(i,n) for(int i=0;i
=0;i--)#define Forp(x) for(int p=pre[x];p;p=next[p])#define Forpiter(x) for(int &p=iter[x];p;p=next[p]) #define Lson (x<<1)#define Rson ((x<<1)+1)#define MEM(a) memset(a,0,sizeof(a));#define MEMI(a) memset(a,127,sizeof(a));#define MEMi(a) memset(a,128,sizeof(a));#define INF (2139062143)#define F (100000007)#define MAXN (100000+10)#define eps (1e-6) typedef long long ll;ll mul(ll a,ll b){return (a*b)%F;}ll add(ll a,ll b){return (a+b)%F;}ll sub(ll a,ll b){return (a-b+(a-b)/F*F+F)%F;}void upd(ll &a,ll b){a=(a%F+b%F)%F;}int n;struct seg{ int a,b,r;}a[MAXN];ll maxr[5000]={0};int main(){ freopen("A.in","r",stdin);// freopen(".out","w",stdout); int T; cin>>T; cout.setf(ios::fixed); cout.precision(3); while(T--) { cin>>n; For(i,n) scanf("%d%d%d",&a[i].r,&a[i].a,&a[i].b); MEM(maxr) For(i,n) { Fork(j,a[i].a,a[i].b-1) maxr[j+90]=max(maxr[j+90],(ll)a[i].r); } long double pi=3.141592653589793238462643383279,S=0; Rep(i,361) { S+=maxr[i]*maxr[i]; } cout<
-

转载于:https://www.cnblogs.com/gavanwanggw/p/6979413.html

你可能感兴趣的文章
Android开发 - 掌握ConstraintLayout(九)分组(Group)
查看>>
springboot+logback日志异步数据库
查看>>
Typescript教程之函数
查看>>
Android 高效安全加载图片
查看>>
vue中数组变动不被监测问题
查看>>
3.31
查看>>
类对象定义 二
查看>>
收费视频网站Netflix:用户到底想要“点”什么?
查看>>
MacOS High Sierra 12 13系统转dmg格式
查看>>
关于再次查看已做的多选题状态逻辑问题
查看>>
动态下拉菜单,非hover
查看>>
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>
简单易懂的谈谈 javascript 中的继承
查看>>
iOS汇编基础(四)指针和macho文件
查看>>
Laravel 技巧锦集
查看>>
Android 使用 ViewPager+RecyclerView+SmartRefreshLayout 实现顶部图片下拉视差效果
查看>>
Flutter之基础Widget
查看>>
写给0-3岁产品经理的12封信(第08篇)——产品运营能力
查看>>
ArcGIS Engine 符号自动化配置工具实现
查看>>
小程序 · 跳转带参数写法,兼容url的出错
查看>>