jzoj P4312 格点统计___思维+枚举

题目大意:

这里写图片描述
这里写图片描述

题解:

这题的题目是要求xy=k下方的格点数,这时候看数据K那么大该怎么办呢?
我们发现,对于任意一个格点而言,xy必定是≤k的
这时候显然啊,枚举!
不过k那么大,不可能枚举到K吧?
然后我们分析可以想到,能否以根号k为界去做呢?
没错,这就是正解!
枚举1~根号k,进而推出x≥根号k的情况即可

时间复杂度 :O(根号K)

代码:

const
      modn=998244353;
var
      i:longint;
      ans,k:int64;

begin
      assign(input,'count.in'); reset(input);
      assign(output,'count.out'); rewrite(output);
      readln(k);
      ans:=0;
      for i:=1 to trunc(sqrt(k)) do
      begin
          ans:=(ans+k div i) mod modn;
          if k div i>trunc(sqrt(k)) then
              ans:=(ans+(k div i-trunc(sqrt(k)))) mod modn;
      end;
      writeln(ans);
      close(input); close(output);
end.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值