SDOI2008仪仗队
这题应该注意到与b2818的不同
一个点能被看见当且仅当它与(1,1)的横纵坐标的距离gcd为1
所以问题转化为x,y<=n-1,求gcd(x,y)=1的方案数
最后要加上2
代码:
var i,n,tot:longint;
ans:int64;
phi:array[..] of int64;
p:array[..] of longint;
procedure get;
var i,j:longint;
begin
fillchar(phi,sizeof(phi),);
tot:=;
phi[]:=;
for i:= to n do
if phi[i]= then
begin
phi[i]:=i-;inc(tot);p[tot]:=i;
j:=i+i;
while j<=n do
begin
if phi[j]= then phi[j]:=j;
phi[j]:=(phi[j] div i)*(i-);
inc(j,i);
end;
end;
end;
procedure main;
begin
readln(n);dec(n);
get;
for i:= to n do inc(phi[i],phi[i-]);
writeln(*phi[n]+);
end;
begin
main;
end.
学了一种新的求欧拉函数的筛法——欧拉筛法
代码:
var i,n,tot:longint;
ans:int64;
fai:array[..] of int64;
p:array[..] of longint;
check:array[..] of boolean;
procedure getfai;
var i,j,k:longint;
begin
tot:=;
fillchar(check,sizeof(check),false);
for i:= to n do
begin
if not(check[i]) then
begin
inc(tot);
p[tot]:=i;
fai[i]:=i-;
end;
for j:= to tot do
begin
k:=i*p[j];
if k>n then break;
check[k]:=true;
if i mod p[j]= then
begin
fai[k]:=fai[i]*p[j];
break;
end
else
fai[k]:=fai[i]*(p[j]-);
end;
end;
end;
procedure main;
begin
readln(n);dec(n);
getfai;
for i:= to n do inc(fai[i],fai[i-]);
writeln(*fai[n]+);
end;
begin
main;
end.
又作了一个小优化,缩小了空间使用,去掉check数组,直接用fai是否为0来判断是否是质数
代码:
var i,n,tot:longint;
ans:int64;
fai:array[..] of int64;
p:array[..] of longint;
procedure getfai;
var i,j,k:longint;
begin
tot:=;
fillchar(fai,sizeof(fai),);
for i:= to n do
begin
if fai[i]= then
begin
inc(tot);
p[tot]:=i;
fai[i]:=i-;
end;
for j:= to tot do
begin
k:=i*p[j];
if k>n then break;
if i mod p[j]= then
begin
fai[k]:=fai[i]*p[j];
break;
end
else
fai[k]:=fai[i]*(p[j]-);
end;
end;
end;
procedure main;
begin
readln(n);dec(n);
getfai;
for i:= to n do inc(fai[i],fai[i-]);
writeln(*fai[n]+);
end;
begin
main;
end.
SDOI2008仪仗队的更多相关文章
- BZOJ 2190: [SDOI2008]仪仗队
2190: [SDOI2008]仪仗队 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 2689 Solved: 1713[Submit][Statu ...
- [SDOI2008]仪仗队
P2158 [SDOI2008]仪仗队 题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线 ...
- BZOJ 2190: [SDOI2008]仪仗队( 欧拉函数 )
假设C君为(0, 0), 则右上方为(n - 1, n - 1). 一个点(x, y) 能被看到的前提是gcd(x, y) = 1, 所以 answer = ∑ phi(i) * 2 + 2 - 1 ...
- P2158 [SDOI2008]仪仗队
P2158 [SDOI2008]仪仗队图是关于y=x对称的,横纵坐标一定是互质的否则在之前就被扫过了,所以就可以用欧拉函数再*2就完了. #include<iostream> #inclu ...
- 洛谷 P2158 [SDOI2008]仪仗队 解题报告
P2158 [SDOI2008]仪仗队 题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线 ...
- P2158/bzoj2190 [SDOI2008]仪仗队
P2158 [SDOI2008]仪仗队 欧拉函数 计算下三角的点数再*2+1 观察斜率,自行体会 #include<iostream> #include<cstdio> #in ...
- P2158 [SDOI2008]仪仗队 && 欧拉函数
P2158 [SDOI2008]仪仗队 题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线 ...
- [LuoguP2158][SDOI2008]仪仗队
[LuoguP2158][SDOI2008]仪仗队(Link) 现在你有一个\(N \times N\)的矩阵,求你站在\((1,1)\)点能看到的点的总数. 很简洁的题面. 这道题看起来很难,但是稍 ...
- [SDOI2008]仪仗队 (洛谷P2158)
洛谷题目链接:[SDOI2008]仪仗队 题目描述 作为体育委员,C君负责这次运动会仪仗队的训练.仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视 ...
- bzoj 2190: [SDOI2008]仪仗队 线性欧拉函数
2190: [SDOI2008]仪仗队 Time Limit: 10 Sec Memory Limit: 259 MB[Submit][Status][Discuss] Description 作为 ...
随机推荐
- vim使用总结
tar -xf vim.tar -C ~ vim /etc/vimrc vim /root/.vimrc set ts=4 设置tab有多少空格 set ai 自动对齐 set nu set mous ...
- IOS设备滑动事件
只要手指触摸屏幕,滑动,从屏幕离开,系统都会产生UIEvent对象类型的事件---当然包括UITouch事件 – touchesBegan:withEvent: 当用户触摸到屏幕时调用方法 – t ...
- 淘宝自己的前端框架KISSY(类似jquery) - 简易指南
KISSY 是由阿里集团前端工程师们发起创建的一个开源 JS 框架. 具备模块化.高扩展性.组件齐全,接口一致.自主开发.适合多种应用场景等特性. 在以下方面具有一定优势: A.拥有大量的中文文档: ...
- linux源码分析2
linux源码分析 这里使用的linux版本是4.8,x86体系. 这篇是 http://home.ustc.edu.cn/~boj/courses/linux_kernel/1_boot.html ...
- 1058: [ZJOI2007]报表统计 - BZOJ
Description 小Q的妈妈是一个出纳,经常需要做一些统计报表的工作.今天是妈妈的生日,小Q希望可以帮妈妈分担一些工作,作为她的生日礼物之一.经过仔细观察,小Q发现统计一张报表实际上是维护一个非 ...
- 1196: [HNOI2006]公路修建问题 - BZOJ
Description OI island是一个非常漂亮的岛屿,自开发以来,到这儿来旅游的人很多.然而,由于该岛屿刚刚开发不久,所以那里的交通情况还是很糟糕.所以,OIER Association组织 ...
- winform访问url传参有返回值
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;usi ...
- [转载]html5直接在网页上播放视频音频兼容所有浏览器
文章给大家分享一个html5直接在网页上播放视频兼容所有浏览器,有需要的同学可参考. HTML5可以用video标签来播放视频 当前,video 元素支持三种视频格式: 格式 IE Firefox O ...
- 免费素材:25套免费的 Web UI 设计的界面元素(转)
Web 元素是任何网站相关项目都需要的,质量和良好设计的元素对于设计师来说就像宝贝一样.如果您正在为您的网站,博客,Web 应用程序或移动应用程序寻找完美设计的网页元素,那么下面这个列表会是你需要的. ...
- install Nagios on Unbuntu Unix
Ubuntu Quickstart Up To: ContentsSee Also: Quickstart Installation Guides, Security Considerations I ...