GSM Base Station Identification 2017南宁网络赛

emmm......

我上小学开始就不打小报告了

emmm......

话太多就变菜了

 1 #include<bits/stdc++.h>
 2 #define cl(a,b) memset(a,b,sizeof(a))
 3 #define debug(a) cerr<<#a<<"=="<<a<<endl
 4 using namespace std;
 5 typedef long long ll;
 6 typedef pair<int,int> pii;
 7
 8 const int maxn=50+10;
 9 const double r=5.0*sqrt(3.0);
10
11 struct point
12 {
13     double x,y;
14 };
15
16 point p[maxn][maxn];
17
18 void init()
19 {
20     p[10][10]= {0,0};
21     for(int i=1; i<=10; i++)
22     {
23         p[i+10][10].x=p[i+9][10].x+r;
24         p[i+10][10].y=0;
25         p[-i+10][10].x=p[-i+11][10].x-r;
26         p[-i+10][10].y=0;
27     }
28     double tmpx=r/2.0,tmpy=15.0/2.0;
29     for(int i=-9; i<=10; i++)
30     {
31         for(int j=1; j<=10; j++)
32         {
33             p[i+10][j+10].x=p[i+10][j+9].x+tmpx;
34             p[i+10][j+10].y=p[i+10][j+9].y+tmpy;
35             p[i+10][-j+10].x=p[i+10][-j+11].x-tmpx;
36             p[i+10][-j+10].y=p[i+10][-j+11].y-tmpy;
37         }
38     }
39 }
40
41 double dis(point a,point b)
42 {
43     return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
44 }
45
46 point Search(point now)
47 {
48     double ans=100000;
49     point res;
50     for(int i=-9; i<=10; i++)
51     {
52         for(int j=-9; j<=10; j++)
53         {
54             if(ans>dis(now,p[i+10][j+10]))
55             {
56                 res.x=i,res.y=j;
57                 ans=dis(now,p[i+10][j+10]);
58             }
59         }
60     }
61     return res;
62 }
63
64 int main()
65 {
66     init();
67     int T=10;
68     while(T--)
69     {
70         point now;
71         scanf("%lf%lf",&now.x,&now.y);
72         point ans=Search(now);
73         printf("[%d,%d]",(int)ans.x,(int)ans.y);
74         if(T) printf(", ");
75         else printf("\n");
76     }
77     return 0;
78 }/*
79
80 1 0
81 0 15
82 2 0
83 13 7
84 5 5
85 10 15
86 25 15
87 -13 -8
88 12 -7
89 -10 0
90
91 */
时间: 2024-10-12 00:27:52

GSM Base Station Identification 2017南宁网络赛的相关文章

2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 GSM Base Station Identification (点在多边形内模板)

In the Personal Communication Service systems such as GSM (Global System for Mobile Communications), there are typically a number of base stations spreading around the service area. The base stations are arranged in a cellular structure, as shown in

2017南宁网络赛 Problem J Minimum Distance in a Star Graph ( 模拟 )

题意 : 乱七八糟说了一大堆,实际上就是问你从一个序列到另个序列最少经过多少步的变化,每一次变化只能取序列的任意一个元素去和首元素互换 分析 : 由于只能和第一个元素去互换这种操作,所以没啥最优的特别方法,只要乖乖模拟即可,如果第一个元素不在正确位置则将它和正确位置的元素交换使其回到正确位置,如果第一个元素的位置就是正确的,那么就往后找不在正确位置的元素将它互换到第一个去,然后再对第一个元素进行判断即可,直到序列变成最终满足条件的序列........ #include<bits/stdc++.h

hdu 6152 : Friend-Graph (2017 CCPC网络赛 1003)

题目链接 裸的结论题.百度 Ramsey定理.刚学过之后以为在哪也不会用到23333333333,没想到今天网络赛居然出了.顺利在题面更改前A掉~~~(我觉得要不是我开机慢+编译慢+中间暂时死机,我还能再早几分钟过掉它 #include<bits/stdc++.h> using namespace std; int g[8][8]; int n; void solve() { for(int i=1; i<=n; i++) for(int j=i+1; j<=n; j++) for

2017 icpc 南宁网络赛

2000年台湾大专题...英语阅读输入输出专场..我只能说很强势.. M. Frequent Subsets Problem The frequent subset problem is defined as follows. Suppose UU={1, 2,\ldots-,N} is the universe, and S_{1}S?1??, S_{2}S?2??,\ldots-,S_{M}S?M?? are MM sets over UU. Given a positive constan

2017西安网络赛 计蒜客 Trig Function 切比雪夫多项式

http://www.docin.com/p-385138324.html 用以表示cosnx的关于cosx的多项式的通项公式 http://www.docin.com/p-232710665.html?docfrom=rrela 数列通项公式的求法(论文) 问答里说这个是切比雪夫多项式 我查了一下哇.. 第一类切比雪夫多项式 #include <stdio.h> #include <cstring> #include <iostream> #include <m

HDU 6205 2017沈阳网络赛 思维题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6205 题意:给你n堆牌,原本每一堆的所有牌(a[i]张)默认向下,每次从第一堆开始,将固定个数的牌(b[i]张)翻上,然后下一堆继续,直到没有足够的牌翻上,然后你可以获得当前已经操作过的堆的所有牌.最初你可以调整堆的顺序,把第一堆放到最后一堆(逆时针旋转),你可以重复这个操作,问你要重复多少次这个操作,才能获得最多的牌. 解法:先把这个序列复制一遍放在原来的序列后面.当i=n的时候结束就可以了,每次

HDU 6200 2017沈阳网络赛 树上区间更新,求和

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6200 题意:给个图,有2种操作,一种是加一条无向边,二是查询u,v之间必须有的边的条数,所谓必须有的边就是对于u,v必须通过这条边才能到达. 解法:一个很简单的想法,搞出图上的一颗树,然后剩下的边当成询问点队加到更新点集,每加入一个更新点对,直接把u,v区间的值置为0即可,查询就直接区间求和,可以直接树剖来维护,简单暴力,读入挂卡过.还有1个log的做法,可以用LCT维护(这个没写,口胡的) #in

HDU 6198 2017沈阳网络赛 线形递推

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6198 题意:给出一个数k,问用k个斐波那契数相加,得不到的数最小是几. 解法:先暴力打表看看有没有规律. #include <bits/stdc++.h> using namespace std; int dp[2000][2000]; typedef long long LL; int main() { LL c[50]; c[0]=0; c[1]=1; c[2]=1; for(int i=2;

HDU 6201 2017沈阳网络赛 树形DP或者SPFA最长路

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6201 题意:给出一棵树,每个点有一个权值,代表商品的售价,树上每一条边上也有一个权值,代表从这条边经过所需要的花费.现在需要你在树上选择两个点,一个作为买入商品的点,一个作为卖出商品的点,当然需要考虑从买入点到卖出点经过边的花费.使得收益最大.允许买入点和卖出点重合,即收益最小值为0. 解法:我们设1为根节点,假设一开始一个人身上的钱为0.我们设dp[i][0]表示从根节点走到i及其子树并中任一点买