zoukankan      html  css  js  c++  java
  • BZOJ1257 [CQOI2007]余数之和sum

    Vj做不出的蒟蒻转战BC,然后被虐哭了。。。只做出了1001。。。还能不能愉快的玩耍了T_T

    算了算了,还是好好写我的题解吧。。。

    这道题貌似很难,后来看了CLJ的题解发现是我太弱了。

    对于k % i = k - (k div i) * i,

    有性质:k % i最多sqrt(n)个,而且相同的余数一定相邻,于是二分出每个余数有几个即可。

     1 /**************************************************************
     2     Problem: 1257
     3     User: rausen
     4     Language: Pascal
     5     Result: Accepted
     6     Time:32 ms
     7     Memory:224 kb
     8 ****************************************************************/
     9  
    10 var
    11   n, k, ans, i, l, r : int64;
    12  
    13 begin
    14   readln(n, k);
    15   i := k div n;
    16   l := k div (i + 1) + 1;
    17   r := n;
    18   while (l > 0) do begin
    19     inc(ans, k * (r - l + 1) - i * (l + r) * (r - l + 1) >> 1);
    20     if l = 1 then break;
    21     i := k div (l - 1);
    22     l := k div (i + 1) + 1;
    23     r := k div i;
    24   end;
    25   writeln(ans);
    26 end.
    View Code

    (p.s. 不知为何c++就是WA,于是改用Pascal写。。。)

    By Xs酱~ 转载请说明 博客地址:http://www.cnblogs.com/rausen
  • 相关阅读:
    样式的使用
    样式的使用
    jqurey基础一
    jQuery三天复习.md
    webstorm快捷键大全
    计算机的进制与编码
    2016-4-29HTML标记的使用
    HTML的基本概况
    Apache Maven 入门篇 ( 上 )
    ehcache.xml 分布试缓存
  • 原文地址:https://www.cnblogs.com/rausen/p/4007488.html
Copyright © 2011-2022 走看看