zoukankan      html  css  js  c++  java
  • P2261 [CQOI2007]余数求和(数论分块)

    传送门

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <algorithm>
     4 #include <vector>
     5 #include<set>
     6 #include <map>
     7 #include <string>
     8 using namespace std;
     9 
    10 #define ll long long
    11 #define pb push_back
    12 
    13 const ll MOD = 1e9 + 7;
    14 const int N = 1e6;
    15 
    16 
    17 // ∑(k - k / i * i) -> nk - ∑(k / i * i)
    18 
    19 void solve()
    20 {   
    21     ll n, k;
    22     cin >> n >> k;
    23     
    24     ll ans1 = n * k;
    25     ll ans2 = 0;
    26     ll l, r;
    27 
    28     for(l = 1, r = 0; l <= n; l = r + 1){
    29         if(l > k) break;
    30         r = min(n, k / (k / l));
    31         ans2 += (r - l + 1) * (r + l) / 2 * (k / l);
    32     }
    33     cout << ans1 - ans2 << endl;
    34 }
    35 
    36 int main()
    37 {   
    38     ios::sync_with_stdio(false);
    39     cin.tie(0);
    40     cout.tie(0);
    41     solve();
    42     //cout << "ok" << endl;
    43     return 0;
    44 }
  • 相关阅读:
    加载声音的过程
    onkeyup,onkeydown和onkeypress
    加载着色器的异常

    3
    1
    1
    java总结
    环路
    own address as source address
  • 原文地址:https://www.cnblogs.com/SSummerZzz/p/13436076.html
Copyright © 2011-2022 走看看