首页 > 代码库 > HNU 12885 Bad Signal(模拟)
HNU 12885 Bad Signal(模拟)
题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12885&courseid=274
解题报告:一共有n个发射装置,有一个接收装置,接收装置能够正确接收并把接收到的信号准确的译码出来的条件是:
Ti > 6 * (B +(T1 + T2 + .... Ti-1 + Ti+1.....Tn))
然后Ti = si / (Pi - p)
si是信号强度
pi - p的意思是发射器跟接收器之间的直线距离的平方
暴力模拟就行了
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #include<map> 6 #include<string> 7 #include<cmath> 8 using namespace std; 9 #define maxn 10000510 struct node11 {12 int si,x,y;13 double t;14 }que[maxn];15 int main()16 {17 int T,n,B,x,y;18 scanf("%d",&T);19 while(T--)20 {21 scanf("%d",&n);22 scanf("%d%d%d",&B,&x,&y);23 double tot = 0;24 for(int i = 1;i <= n;++i)25 {26 scanf("%d%d%d",&que[i].x,&que[i].y,&que[i].si);27 que[i].t = 1.0 * que[i].si / ((que[i].x - x)*(que[i].x - x) + (que[i].y - y) * (que[i].y - y));28 tot += que[i].t;29 }30 int l = 0;31 for(int i = 1;i <= n;++i)32 {33 double temp = 6 * (B + tot - que[i].t);34 if(que[i].t > temp)35 {36 l = i;37 break;38 }39 }40 printf(l? "%d\n":"NOISE\n",l);41 }42 return 0;43 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。