博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 3090 坐标系上的视线遮蔽问题
阅读量:5055 次
发布时间:2019-06-12

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

Description

A lattice point (x, y) in the first quadrant (x and y are integers greater than or equal to 0), other than the origin, is visible from the origin if the line from (0, 0) to (x, y) does not pass through any other lattice point. For example, the point (4, 2) is not visible since the line from the origin passes through (2, 1). The figure below shows the points (x, y) with 0 ≤ x, y ≤ 5 with lines from the origin to the visible points.

 

Write a program which, given a value for the size, N, computes the number of visible points (x, y) with 0 ≤ x, yN.

Input

The first line of input contains a single integer C (1 ≤ C ≤ 1000) which is the number of datasets that follow.

Each dataset consists of a single line of input containing a single integer N (1 ≤ N ≤ 1000), which is the size.

Output

For each dataset, there is to be one line of output consisting of: the dataset number starting at 1, a single space, the size, a single space and the number of visible points for that size.

Sample Input

4245231

Sample Output

1 2 52 4 133 5 214 231 32549 这题目求的是视线所及未挡住的点 因为如(4,2)这样的点,gcd(4,2)=2!=1,有(2,1)将其挡住了。所以这题变向再求下x,y互质的点 可以从斜对角线对半分开,算一半最后乘2即可 代码如下:
1 #include 
2 #include
3 #include
4 using namespace std; 5 #define LL long long 6 #define N 1010 7 int phi[1020]; 8 int F[1020]; 9 10 void get_phi()11 {12 memset(phi,0,sizeof(phi));13 phi[1]=1;14 for(int i=2;i<=N;i++)15 {16 if(!phi[i])17 for(int j=i;j<=N;j+=i)18 {19 if(!phi[j]) phi[j]=j;20 phi[j]=phi[j]*(i-1)/i;21 }22 }23 }24 25 int main()26 {27 F[1]=1;28 get_phi();29 for(int i=2;i<=N;i++) F[i]=F[i-1]+phi[i];30 int n,T;31 cin>>T;32 for(int i=1;i<=T;i++){33 cin>>n;34 cout<
<<' '<
<<' '<
<

转载于:https://www.cnblogs.com/CSU3901130321/p/3863413.html

你可能感兴趣的文章
App弱网测试方式
查看>>
PHP zendstudio framework2配置过程
查看>>
Xor Sum 01字典树 hdu4825
查看>>
数据访问:三大范式
查看>>
Python基础-----random随机模块(验证码)
查看>>
手机端fixed底部跟着窗口动问题
查看>>
树专题(伸展树 / 树链剖分 / 动态树 学习笔记)
查看>>
HTML图像、超链接标签
查看>>
[国嵌攻略][164][USB驱动程序设计]
查看>>
C# 实现Bresenham算法(vs2010)
查看>>
基于iSCSI的SQL Server 2012群集测试(一)--SQL群集安装
查看>>
list 容器 排序函数.xml
查看>>
存储开头结尾使用begin tran,rollback tran作用?
查看>>
Activity启动过程中获取组件宽高的五种方式
查看>>
java导出Excel表格简单的方法
查看>>
SQLite数据库简介
查看>>
利用堆实现堆排序&amp;优先队列
查看>>
Mono源码学习笔记:Console类(四)
查看>>
Android学习路线(十二)Activity生命周期——启动一个Activity
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>