4063: [Cerc2012]Darts

4063: [Cerc2012]Darts

Time Limit: 10 Sec  Memory Limit: 128 MB

Submit: 85  Solved: 53

[Submit][Status][Discuss]

Description

考虑一个扔飞镖的游戏。板子由十个环组成,半径分别为20, 40, 60, 80, 100, 120, 140, 160, 180和200(单位:mm),均以原点为中心。每次投掷的得分取决于飞镖所击中的位置。如果包含飞镖的最小环(可以在圆上)的半径是20 * (11 - p),则得分是p。不在最外环以内的点不得分。你的任务是计算n次投掷之后的得分。

Input

第一行一个正整数T,表示有T组数据。

每组数据第一行一个正整数n,表示有n次投掷,1 <= n <= 10^6。

接下来n行,每行两个整数x和y,表示一次投掷击中的位置为(x, y),-200 <= x, y <= 200。

Output

对于每组数据输出一行,即n次投掷得分的总和。

Sample Input

1 5 32 -39 71 89 -60 80 0 0 196 89

Sample Output

29

HINT

Source

鸣谢Tjz

题解:其实是道水题= =,不过我由于担心卡精度,所以还是全部不开方,之后一个个判断,然后居然还A掉了= =

AC程序如下

 1 /**************************************************************
 2     Problem: 4063
 3     User: HansBug
 4     Language: Pascal
 5     Result: Accepted
 6     Time:1372 ms
 7     Memory:224 kb
 8 ****************************************************************/
 9  
10 var i,j,k,l,m,n,ans:longint;
11 function doit(x,y:longint):longint;
12          var z,i:longint;
13          begin
14               doit:=0;z:=x*x+y*y;
15               for i:=10 downto 1 do if z<=(400*(11-i)*(11-i)) then exit(i)
16          end;
17 begin
18      readln(m);
19      for i:=1 to m do
20          begin
21               readln(n);ans:=0;
22               for j:=1 to n do
23                   begin
24                        readln(k,l);
25                        inc(ans,doit(k,l));
26                   end;
27               writeln(ans);
28          end;
29 end.

但是按照我原来思路的程序却狂WA不止,求神犇解释orz:

 1 /**************************************************************
 2     Problem: 4063
 3     User: HansBug
 4     Language: Pascal
 5     Result: Wrong_Answer
 6 ****************************************************************/
 7 var i,j,k,l,m,n,ans:longint;
 8 function doit(x,y:longint):longint;
 9          begin
10               doit:=(10-(trunc(sqrt(sqr(x)+sqr(y)))-1) div 20);
11               if doit<0 then doit:=0;
12          end;
13 begin
14      readln(m);
15      for i:=1 to m do
16          begin
17               readln(n);ans:=0;
18               for j:=1 to n do
19                   begin
20                        readln(k,l);
21                        inc(ans,doit(k,l));
22                   end;
23               writeln(ans);
24          end;
25 end.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏书山有路勤为径

Keras tutorialThe Happy House

Why are we using Keras? Keras was developed to enable deep learning engineers to...

10810
来自专栏数据结构与算法

HDU 3078 Network

Problem Description The ALPC company is now working on his own network system,...

35870
来自专栏小樱的经验随笔

BZOJ 1800: [Ahoi2009]fly 飞行棋【思维题,n^4大暴力】

1800: [Ahoi2009]fly 飞行棋 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 1689  So...

31080
来自专栏chenjx85的技术专栏

leetcode-458-Poor Pigs

18940
来自专栏算法修养

POJ--1050--To the Max(线性动规,最大子矩阵和)

To the Max Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 4...

37650
来自专栏锦小年的博客

复杂网络(1)--图论的基本理论

1 图论的基本概念 1.1 图(graph)及其分类 (1) 图的定义:图是由点集V={vi}以及V中元素无序对的集合E={ek}所构成的二元组,记为G=(...

286100
来自专栏ml

mxnet框架样本,使用C++接口

哇塞,好久么有跟进mxnet啦,python改版了好多好多啊,突然发现C++用起来才是最爽的. 贴一个mxnet中的C++Example中的mlp网络和实现,感...

1K50
来自专栏用户2442861的专栏

FAST Algorithm for Corner Detection

We saw several feature detectors and many of them are really good. But when look...

9310
来自专栏数据结构与算法

洛谷P3209 [HNOI2010]PLANAR(2-SAT)

题目描述 若能将无向图G=(V,E)画在平面上使得任意两条无重合顶点的边不相交,则称G是平面图。判定一个图是否为平面图的问题是图论中的一个重要问题。现在假设你要...

35360
来自专栏小樱的经验随笔

HDU 2080 夹角有多大II

夹角有多大II Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (J...

281100

扫码关注云+社区

领取腾讯云代金券