首页 > 代码库 > SDOI2008仪仗队
SDOI2008仪仗队
这题应该注意到与b2818的不同
一个点能被看见当且仅当它与(1,1)的横纵坐标的距离gcd为1
所以问题转化为x,y<=n-1,求gcd(x,y)=1的方案数
最后要加上2
代码:
1 var i,n,tot:longint; 2 ans:int64; 3 phi:array[0..50000] of int64; 4 p:array[0..50000] of longint; 5 procedure get; 6 var i,j:longint; 7 begin 8 fillchar(phi,sizeof(phi),0); 9 tot:=0;10 phi[1]:=0;11 for i:=2 to n do12 if phi[i]=0 then13 begin14 phi[i]:=i-1;inc(tot);p[tot]:=i;15 j:=i+i;16 while j<=n do17 begin18 if phi[j]=0 then phi[j]:=j;19 phi[j]:=(phi[j] div i)*(i-1);20 inc(j,i);21 end;22 end;23 end;24 procedure main;25 begin26 readln(n);dec(n);27 get;28 for i:=2 to n do inc(phi[i],phi[i-1]);29 writeln(2*phi[n]+3);30 end;31 begin32 main;33 end.34
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。