码迷,mamicode.com
首页 > 其他好文 > 详细

BZOJ1257 [CQOI2007]余数之和sum

时间:2014-10-06 00:52:29      阅读:304      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   ar   sp   div   art   

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

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

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

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

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

 

bubuko.com,布布扣
 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写。。。)

BZOJ1257 [CQOI2007]余数之和sum

标签:style   blog   http   color   os   ar   sp   div   art   

原文地址:http://www.cnblogs.com/rausen/p/4007488.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!