UVA_10820_send a table
When participating in programming contests, you sometimes face the following problem: You know how to calcutale the output for the given input values, but your algorithm is way too slow to ever pass the time limit. However hard you try, you just can’t discover the proper break-off conditions that would bring down the number of iterations to within acceptable limits. Now if the range of input values is not too big, there is a way out of this. Let your PC rattle for half an hour and produce a table of answers for all possible input values, encode this table into a program, submit it to the judge, et voila: Accepted in 0.000 seconds! (Some would argue that this is cheating, but remember: In love and programming contests everything is permitted). Faced with this problem during one programming contest, Jimmy decided to apply such a ’technique’. But however hard he tried, he wasn’t able to squeeze all his pre-calculated values into a program small enough to pass the judge. The situation looked hopeless, until he discovered the following property regarding the answers: the answers where calculated from two integers, but whenever the two input values had a common factor, the answer could be easily derived from the answer for which the input values were divided by that factor. To put it in other words:
Say Jimmy had to calculate a function Answer(x,y) where x and y are both integers in the range [1,N]. When he knows Answer(x,y), he can easily derive Answer(k∗x,k∗y), where k is any integer from it by applying some simple calculations involving Answer(x,y) and k. For example if N = 4, he only needs to know the answers for 11 out of the 16 possible input value combinations: Answer(1,1), Answer(1,2), Answer(2,1), Answer(1,3), Answer(2,3), Answer(3,2), Answer(3,1), Answer(1,4), Answer(3,4), Answer(4,3) and Answer(4,1). The other 5 can be derived from them (Answer(2,2), Answer(3,3) and Answer(4,4) from Answer(1,1), Answer(2,4) from Answer(1,2), and Answer(4,2) from Answer(2,1)). Note that the function Answer is not symmetric, so Answer(3,2) can not be derived from Answer(2,3).
Now what we want you to do is: for any values of N from 1 upto and including 50000, give the number of function Jimmy has to pre-calculate.
Input
The input file contains at most 600 lines of inputs. Each line contains an integer less than 50001 which indicates the value of N. Input is terminated by a line which contains a zero. This line should not be processed.
Output
For each line of input produce one line of output. This line contains an integer which indicates how many values Jimmy has to pre-calculate for a certain value of N.
Sample Input
2
5
0
Sample Output
3
19
这道题很简单,,,,,一开始推就发现是在求互质数目*2。直接欧拉函数打表ok
#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
#define N 1000010
#define maxn 50010
using namespace std;
bool vis[N];
int val[N];
int prime[N];
long long p[N];
int pn=0;
void gp()
{
for (int i = 2; i < N; i++) {
if (vis[i]) continue;
prime[pn++] = i;
val[i]=1;
for (int j = i; j < N; j += i)
vis[j]=1;
}
}
int main()
{
//freopen("datain.txt","r",stdin);
//freopen("dataout.txt","w",stdout);
p[1]=1;
//gp();
int i,j;
for(i=1; i<=maxn; i++)
p[i]=i;
for(i=2; i<=maxn; i+=2)
p[i]/=2;
for(i=3; i<=maxn; i+=2)
if(p[i]==i)
{
for(j=i; j<=maxn; j+=i)
p[j]=p[j]/i*(i-1);
}
for(int i=2;i<maxn;i++)
{
p[i]=p[i-1]+2*p[i];
}
int m,n;
while(~scanf("%d",&n),n)
{
cout<<p[n]<<endl;
}
}
UVA_10820_send a table的更多相关文章
- 散列表(hash table)——算法导论(13)
1. 引言 许多应用都需要动态集合结构,它至少需要支持Insert,search和delete字典操作.散列表(hash table)是实现字典操作的一种有效的数据结构. 2. 直接寻址表 在介绍散列 ...
- React使用antd Table生成层级多选组件
一.需求 用户对不同的应用需要有不同的权限,用户一般和角色关联在一起,新建角色的时候会选择该角色对应的应用,然后对应用分配权限.于是写了一种实现的方式.首先应用是一个二级树,一级表示的是应用分组,二级 ...
- 创建几个常用table展示方式插件
这次和大家分享的是自己写的一个table常用几种展示格式的js插件取名为(table-shenniu),样式使用的是bootstrap.min.css,还需要引用jquery.min.js包,这个插件 ...
- html中table边框属性
1.向右(横向)合并: <td colspan="5"><span>后台管理系统</span></td> 2.向下(纵向)合并: & ...
- MySQL中You can't specify target table for update in FROM clause一场
mysql中You can't specify target table <tbl> for update in FROM clause错误的意思是说,不能先select出同一表中的某些值 ...
- 打印Lua的Table对象
小伙伴们再也不用为打印lua的Table对象而苦恼了, 本人曾也苦恼过,哈哈 不过今天刚完成了这个东西, 以前在网上搜过打印table的脚本,但是都感觉很不理想,于是,自己造轮子了~ 打印的效果,自己 ...
- React中使用Ant Table组件
一.Ant Design of React http://ant.design/docs/react/introduce 二.建立webpack工程 webpack+react demo下载 项目的启 ...
- css设置table表格tr分离
table { border-collapse:separate; border-spacing:10px 50px; }
- MySQL: Table 'mysql.plugin' doesn't exist的解决
安装解压版MySQL以后,不能启动,日志里面出现了这个错误: MySQL: Table 'mysql.plugin' doesn't exist 这是因为mysql服务启动时候找不到内置数据库&quo ...
随机推荐
- Murano Weekly Meeting 2016.06.07
Meeting time: 2016.June.7 1:00~2:00 Chairperson: Kirill Zaitsev, from Mirantis Meeting summary: 1.A ...
- Murano Weekly Meeting 2015.08.25
Meeting time: 2015.August.25th 1:00~2:00 Chairperson: Serg Melikyan, PTL from Mirantis Meeting summ ...
- 搭建Activemq集群
首先搭建zookeeper集群: 参考URL: http://www.cnblogs.com/feiyun126/p/7244394.html 三台服务器:先设置hosts 10.0.0.231 n ...
- EasyUI 数据网格 - 设置排序并自定义排序
数据网格(DataGrid)的所有列可以通过点击列表头来排序.您可以定义哪列可以排序.默认的,列是不能排序的,除非您设置 sortable 属性为 true. 当排序时,数据网格(DataGrid)将 ...
- npm EPERM: operation not permitted, rename解决
此问题并非权限问题! 执行如下3条命令解决: 1.清理npm缓存 npm cache clean --force 2.升级npm版本 npm install -g npm@latest --force ...
- 连接数据库报错:1130-Host 'xxx' is not allowed to connect to this MySQL server解决
出现这个问题的同学都很奇怪,为啥用localhost就可以连接上,但是使用本地ip就不行.出现这个问题的原因就是mysql未开启mysql远程访问权限导致. 这时候我们就用cmd去访问下你的mysql ...
- intellijidea课程 intellijidea神器使用技巧 5-2 localhistory
Ctrl shift A ==>localhistory ==> show history 查看文件本地历史记录(idea每次修改在本地会生成历史记录) Ctrl shift A == ...
- Flask文件目录----- auth/blog 文件
import functools from flask import (Blueprint, flash, g, redirect, render_template, url_for, request ...
- 洛谷P3372 【模板】线段树 1(树状数组)
题意 题目链接 Sol Get到了这题树状数组的做法,感觉非常nice 区间加:直接差分 区间求和:考虑每一位的贡献 \(sum_{i = 1}^x (x+1 - i) d_i\) \(= sum_{ ...
- Eclipse reference
http://download.csdn.net/download/ling_min/4318719 http://www.qualityeclipse.com/eclipse-gef http:// ...