zoukankan      html  css  js  c++  java
  • 【NJU749D】triple(莫比乌斯反演)

    题意:

    cas<=100 n<=10^5

    思路:与两个数的没什么区别

    F(d)=(n div d)*(n div d-1)*(n div d-2) div 6

    再加上喜闻乐见的下底函数分块

    又是一个不能测P的萎靡题库……

     1 const max=1000000;
     2 var mu,flag,prime:array[0..max]of longint;
     3     sum:array[0..max]of int64;
     4     n,m,v,pos,i,j,t,cas:longint;
     5     ans,x:int64;
     6 begin
     7  assign(input,'triple.in'); reset(input);
     8  assign(output,'triple.out'); rewrite(output);
     9  mu[1]:=1;
    10  for i:=2 to max do
    11  begin
    12   if flag[i]=0 then
    13   begin
    14    inc(m); prime[m]:=i;
    15    mu[i]:=-1;
    16   end;
    17   j:=1;
    18   while (j<=m)and(prime[j]*i<=max) do
    19   begin
    20    t:=prime[j]*i; flag[t]:=1;
    21    if i mod prime[j]=0 then
    22    begin
    23     mu[t]:=0;
    24     break;
    25    end;
    26    mu[t]:=-mu[i];
    27    inc(j);
    28   end;
    29  end;
    30  for i:=1 to max do sum[i]:=sum[i-1]+mu[i];
    31  readln(cas);
    32  for v:=1 to cas do
    33  begin
    34   readln(n,m);
    35   ans:=0; i:=1;
    36   n:=n div m;
    37   while i<=n do
    38   begin
    39    x:=n div i; pos:=n div x;
    40    ans:=ans+x*(x-1)*(x-2) div 6*(sum[pos]-sum[i-1]);
    41    i:=pos+1;
    42   end;
    43   writeln(ans);
    44  end;
    45  close(input);
    46  close(output);
    47 end.
  • 相关阅读:
    数组协变性
    tomcat源码阅读23
    用枚举来实现单例模式
    CSS 的 zindex 属性
    屏幕大小与视区大小
    CSS 生成的模态窗口
    事件处理程序的绑定
    事件对象的属性和使用
    android打电话,接电话,挂电话过程
    ubuntu 12.04编译ics
  • 原文地址:https://www.cnblogs.com/myx12345/p/6728274.html
Copyright © 2011-2022 走看看