poj 3090 Visible Lattice Points 法利系列||通过计
因为图像关于对角线对称。所以我们仅仅看下三角区域。
将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 法利系列||通过计的更多相关文章
- 数论 - 欧拉函数的运用 --- poj 3090 : Visible Lattice Points
Visible Lattice Points Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5636 Accepted: ...
- POJ 3090 Visible Lattice Points 欧拉函数
链接:http://poj.org/problem?id=3090 题意:在坐标系中,从横纵坐标 0 ≤ x, y ≤ N中的点中选择点,而且这些点与(0,0)的连点不经过其它的点. 思路:显而易见, ...
- POJ 3090 Visible Lattice Points (ZOJ 2777)
http://poj.org/problem?id=3090 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1777 题目大意: ...
- poj 3090 Visible Lattice Points(离线打表)
这是好久之前做过的题,算是在考察欧拉函数的定义吧. 先把欧拉函数讲好:其实欧拉函数还是有很多解读的.emmm,最基础同时最重要的算是,¢(n)表示范围(1, n-1)中与n互质的数的个数 好了,我把规 ...
- POJ 3090 Visible Lattice Points 【欧拉函数】
<题目链接> 题目大意: 给出范围为(0, 0)到(n, n)的整点,你站在(0,0)处,问能够看见几个点. 解题分析:很明显,因为 N (1 ≤ N ≤ 1000) ,所以无论 N 为多 ...
- [poj] 3090 Visible Lattice Points
原题 欧拉函数 我们发现,对于每一个斜率来说,这条直线上的点,只有gcd(x,y)=1时可行,所以求欧拉函数的前缀和.2*f[n]+1即为答案. #include<cstdio> #def ...
- POJ 3090 Visible Lattice Points | 其实是欧拉函数
题目: 给一个n,n的网格,点可以遮挡视线,问从0,0看能看到多少点 题解: 根据对称性,我们可以把网格按y=x为对称轴划分成两半,求一半的就可以了,可以想到的是应该每种斜率只能看到一个点 因为斜率表 ...
- poj 3060 Visible Lattice Points
http://poj.org/problem?id=3090 Visible Lattice Points Time Limit: 1000MS Memory Limit: 65536K Tota ...
- 【POJ】3090 Visible Lattice Points(欧拉函数)
Visible Lattice Points Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7705 Accepted: ...
随机推荐
- HDU 2063 过山车 第一道最大二分匹配
http://acm.hdu.edu.cn/showproblem.php?pid=2063 题目大意: m个女生和n个男生一起做过山车,每一排必须一男一女,而每个女孩愿意和一些男生坐一起,, 你要找 ...
- 【Codeforces Round #299 (Div. 2) E】Tavas and Pashmaks
[链接] 我是链接,点我呀:) [题意] 游泳+跑步比赛. 先游泳,然后跑步. 最先到终点的人是winner. 但是现在游泳的距离和跑步的距离长度都不确定. S和R. 给你n个人,告诉你每个人游泳的速 ...
- Maven 使用Eclipse构建Maven的SpringMVC项目
首先Eclipse需要安装Maven的插件,地址:http://m2eclipse.sonatype.org/sites/m2e. 用MyEclipse安装Maven插件,建出的Maven项目有些问题 ...
- 4、runtime电源管理模式(内核文档runtime_pm.txt有详细描述)
系统睡眠模型是让整个系统休眠,而runtime是在系统正常工作的时候单独控制某个设备休眠和唤醒 1. runtime PM流程怎样动态地打开或关闭设备的电源?最简单的方法:在驱动程序里,在open函数 ...
- iOS8新特性
1. App Extension Programming Guide 2.LocalAuthentication.framework - Touch ID Authentication 3.Local ...
- 【UIL框架】Universal-Image-Loader全然解析(一)之介绍与使用具体解释
转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50439814 本文出自:[江清清的博客] (一).前言: [好消息] ...
- 3、linux下Socket编程-TCP/UDP
1.什么是Socket 网络的 Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符.Socket也具有一个类似于打开文件的函数调用Socket(),该函数返 回一个整型的Socke ...
- Spring中@Async用法详解及简单实例
Spring中@Async用法 引言: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的:但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类 ...
- spring项目启动后,获取bean的方法总结
如果在web项目中,用到定时器的朋友可能会遇到使用spring注解的方式获取bean的时候报空指针的异常.这是就可以使用手工的方法获取spring容器中的bean了. 下面是具体的方法: 1.先说一个 ...
- HDU 1010 Tempter of the Bone (ZOJ 2110) DFS+剪枝
传送门: HDU:http://acm.hdu.edu.cn/showproblem.php?pid=1010 ZOJ:http://acm.zju.edu.cn/onlinejudge/showPr ...