因为图像关于对角线对称。所以我们仅仅看下三角区域。

将x轴看做分母,被圈的点看成分子

依次是{1/2},{1/3,1/2},{1/4,3/4},{1/5,2/5,3/5,4/5}

写成前缀和的形式就是 {1/2},{1/2,1/3,2/3},{1/2,1/3,2/3,1/4,3/4},{1/2,1/3,2/3,1/4,3/4,1/5,2/5,3/5,4/5}

发现。这就是一个法雷级数,即第k项添加的数就是phi[k]。

最后的答案*2+(0,1)+(1,0),(1,1)三个点就好了

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
#define N 1009
int phi[N];
int Farey[N]={0,0,1};
void init()
{
int i, j;
for(i = 1; i < N; i++)
phi[i] = i; for(i = 2; i < N; i++)
if(i == phi[i])
for(j = i; j < N; j += i)
phi[j] = (phi[j] / i) * (i - 1);
}
int main()
{
init();
for(int i=3;i<N;i++)
{
Farey[i]=Farey[i-1]+phi[i];
}
int cas,n,ca=1;
scanf("%d",&cas);
while(cas--)
{
scanf("%d", &n);
printf("%d %d %d\n",ca++,n,Farey[n]*2+3);
}
return 0;
}

没有发现这个规律的话,也能够递推打表做,类似矩阵和的存储,用gcd推断当前点是否被之前的点挡住。

#include <iostream>
#include <cstdio>
#include <cmath>
#include<cstring>
#include<cstdlib>
using namespace std;
int mp[1005][1005];
bool vis[1005][1005];
int gcd(int a,int b) {return a%b==0?b:gcd(b,a%b);}
int a[1005][1005];
int main()
{
memset(vis,0,sizeof(vis));
int ans=0;
for(int i=1;i<=1000;i++)
{
for(int j=1;j<=1000;j++)
{
int gg=gcd(i,j);
if(vis[i/gg][j/gg])
{
a[i][j]+=a[i-1][j]+a[i][j-1];
a[i][j]-=a[i-1][j-1];
continue;
}
else
{
vis[i][j]=1;
a[i][j]+=a[i-1][j]+a[i][j-1]+1;
a[i][j]-=a[i-1][j-1];
}
}
}
int n;
int ca=1;
int cas;
scanf("%d",&cas);
while(cas--)
{
scanf("%d",&n);
printf("%d %d %d\n",ca++,n,a[n][n]+2);
}
return 0;
}

版权声明:本文博主原创文章,博客,未经同意不得转载。

poj 3090 Visible Lattice Points 法利系列||通过计的更多相关文章

  1. 数论 - 欧拉函数的运用 --- poj 3090 : Visible Lattice Points

    Visible Lattice Points Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5636   Accepted: ...

  2. POJ 3090 Visible Lattice Points 欧拉函数

    链接:http://poj.org/problem?id=3090 题意:在坐标系中,从横纵坐标 0 ≤ x, y ≤ N中的点中选择点,而且这些点与(0,0)的连点不经过其它的点. 思路:显而易见, ...

  3. POJ 3090 Visible Lattice Points (ZOJ 2777)

    http://poj.org/problem?id=3090 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1777 题目大意: ...

  4. poj 3090 Visible Lattice Points(离线打表)

    这是好久之前做过的题,算是在考察欧拉函数的定义吧. 先把欧拉函数讲好:其实欧拉函数还是有很多解读的.emmm,最基础同时最重要的算是,¢(n)表示范围(1, n-1)中与n互质的数的个数 好了,我把规 ...

  5. POJ 3090 Visible Lattice Points 【欧拉函数】

    <题目链接> 题目大意: 给出范围为(0, 0)到(n, n)的整点,你站在(0,0)处,问能够看见几个点. 解题分析:很明显,因为 N (1 ≤ N ≤ 1000) ,所以无论 N 为多 ...

  6. [poj] 3090 Visible Lattice Points

    原题 欧拉函数 我们发现,对于每一个斜率来说,这条直线上的点,只有gcd(x,y)=1时可行,所以求欧拉函数的前缀和.2*f[n]+1即为答案. #include<cstdio> #def ...

  7. POJ 3090 Visible Lattice Points | 其实是欧拉函数

    题目: 给一个n,n的网格,点可以遮挡视线,问从0,0看能看到多少点 题解: 根据对称性,我们可以把网格按y=x为对称轴划分成两半,求一半的就可以了,可以想到的是应该每种斜率只能看到一个点 因为斜率表 ...

  8. poj 3060 Visible Lattice Points

    http://poj.org/problem?id=3090 Visible Lattice Points Time Limit: 1000MS   Memory Limit: 65536K Tota ...

  9. 【POJ】3090 Visible Lattice Points(欧拉函数)

    Visible Lattice Points Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7705   Accepted: ...

随机推荐

  1. Oracle 排序问题(null带来的)

    null 导致排序有问题, 对于数字的,一定要用nvl来解决.

  2. 字符集和编码II: fat/msdos/vfat (文件名乱码的问题)

    具体到文件名乱码的问题,需要明确两点 第一,文件名作为一个字符串,需要被编码后存入文件系统: 第二,Linux内核无非是个特殊的应用程序,它读取文件名,再把文件名以编码后的形式传递出去. 但Linux ...

  3. 每日技术总结:Toast组件,eslint,white-space,animate,$emit

    1.一个优雅的提示是网站必不可少的. 请参考:vue2.0 自定义 提示框(Toast)组件 2.ESLint使用总结 (1)在.eslintrc.js里关闭某条规则, '规则名': 'off'或0 ...

  4. 5、regulator系统的概念及测试

    概念:Regulator : 电源芯片, 比如电压转换芯片Consumer : 消费者,使用电源的部件, Regulator是给Consumer供电的machine : 单板,上面焊接有Regulat ...

  5. shiro 中的filterChainDefinitions详解(转)

    springrain使用shiro控制权限,配置filterChainDefinitions结合数据库校验权限. 我们在web.xml中配置一个全局过滤器,也就是在springrain配置的是一个sp ...

  6. ORACEL上传BLOB,深度遍历文件夹

    // uploadingDlg.cpp : 实现文件// #include "stdafx.h"#include "uploading.h"#include & ...

  7. 【Codeforces Round #439 (Div. 2) C】The Intriguing Obsession

    [链接] 链接 [题意] 给你3种颜色的点. 每种颜色分别a,b,c个. 现在让你在这些点之间加边. 使得,同种颜色的点之间,要么不连通,要么连通,且最短路至少为3 边是无向边. 让你输出方案数 [题 ...

  8. stm32的DMA重新工作

    下面是在战舰V3寄存器程序例子中找到的: //开启一次DMA传输void MYDMA_Enable(DMA_Channel_TypeDef*DMA_CHx){    DMA_CHx->CCR&a ...

  9. php修改SESSION的有效生存时间

    如何修改SESSION的生存时间 我们来手动设置 Session 的生存期: <?phpsession_start(); // 保存一天 $lifeTime = 24 * 3600; setco ...

  10. bc -l 对于 %取模计算出错

    https://yq.aliyun.com/articles/279384 expr % expr    The  result of the expression is the "rema ...