计蒜客 429(腾讯手机地图-pi的精确值)
2017-06-10 17:48
169 查看
腾讯手机地图的定位功能用到了用户手机的多种信号。这当中有的信号的作用范围近。有的信号作用的范围则远一些。有的信号相对于用户在不同的方位强度是不同的。有的则是在不论什么一个方向上信号强度都一致的。
已知用户面向北方拿着自己的手机,在不同方位的各种信号覆盖区域能够被抽象成以用户为圆心的一系列扇形。已知每一个扇形的半径 r,和每一个扇形的两条边相对于正东方向的夹角度数。
每一个信号覆盖区域抽象出的扇形都能够通过从第一条边逆时针旋转到第二条边画出。
![](http://img.blog.csdn.net/20150719004538672?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
输入格式
请计算一下,用户手机全部信号覆盖到的区域的总面积。
第一行输入一个整数 T (1 ≤ T ≤ 20),表示数据组数。
接下来一共 T 组数据,每组数据第一行输入一个整数 n (1 ≤ n ≤ 104),表示各种信号能够抽象出的不同扇形的总个数。接下来输入 n 行,每行 3 个整数表示扇形半径 r (1 ≤ r ≤ 105)、扇形第一条边与正东方向的夹角
α、扇形第二条边与正东方向的夹角 β (-90 ≤ α ≤ β < 270)。
输出格式
输出 T 行,每行一个非负浮点数。表示用户手机全部信号覆盖到的区域的范围的总面积。
每组输出与标准答案绝对误差在 10-3 内均觉得是正确的。
输出:
这题极端情况 pi*10^10 保留3位小数
所以 精度非常重要 pi的精度
-
已知用户面向北方拿着自己的手机,在不同方位的各种信号覆盖区域能够被抽象成以用户为圆心的一系列扇形。已知每一个扇形的半径 r,和每一个扇形的两条边相对于正东方向的夹角度数。
每一个信号覆盖区域抽象出的扇形都能够通过从第一条边逆时针旋转到第二条边画出。
输入格式
请计算一下,用户手机全部信号覆盖到的区域的总面积。
第一行输入一个整数 T (1 ≤ T ≤ 20),表示数据组数。
接下来一共 T 组数据,每组数据第一行输入一个整数 n (1 ≤ n ≤ 104),表示各种信号能够抽象出的不同扇形的总个数。接下来输入 n 行,每行 3 个整数表示扇形半径 r (1 ≤ r ≤ 105)、扇形第一条边与正东方向的夹角
α、扇形第二条边与正东方向的夹角 β (-90 ≤ α ≤ β < 270)。
输出格式
输出 T 行,每行一个非负浮点数。表示用户手机全部信号覆盖到的区域的范围的总面积。
每组输出与标准答案绝对误差在 10-3 内均觉得是正确的。
例子1
输入:1 4 2 -30 32 3 20 81 3 121 160 2 141 201
输出:
11.030
这题极端情况 pi*10^10 保留3位小数
所以 精度非常重要 pi的精度
#include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<functional> #include<iostream> #include<cmath> #include<cctype> #include<ctime> #include<iomanip> 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<n;i++) #define ForD(i,n) for(int i=n;i;i--) #define RepD(i,n) for(int i=n;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<<S/(long double)360.000000000*pi<<endl; } return 0; }
-
相关文章推荐
- 计蒜客 429(腾讯手机地图-pi的精确值)
- 计蒜客 腾讯手机地图(模拟 数学)
- 计蒜客 腾讯手机地图
- android跳转手机百度高德腾讯谷歌地图、地图传坐标、坐标偏移、base64解码相关
- 计蒜之道2015程序设计大赛初赛第三场——腾讯手机地图
- 计蒜客 初赛 第三场 A题:腾讯手机地图
- 计蒜之道 初赛 第三场--腾讯手机地图 题解
- 计蒜之道 初赛 第三场--腾讯手机地图 题解
- Google 手机地图定位原理分析
- 手机地图“接管”移动生活-成从武
- Java做的一个J2ME手机地图API,与j2Se地图API,以及地图服务器。
- 【腾讯TMQ】【测试左移专栏】手机管家PiTest测试左移实践
- 手机地图
- 腾讯内部深度文章曝光:微信向左 手机QQ向右
- hdu2179 求 PI,精确到小数点后1500位,麦金公式,java大数
- 腾讯手机QQ兴趣部落使用的Abstract.js框架初探
- 遇到的问题----腾讯qq地图系统异常
- 在手机页面中插入某度地图
- 解决百度地图+slidingmenu 切换黑边 ,切换Fragment闪黑屏,64位手机侧滑地图错位
- 高德地图V3.3.2在非arm64-v8a,armeabi的CPU架构手机上运行奔溃的问题