Solutions of Square root sum - MarisaOJ: Marisa Online Judge

Solutions of Square root sum

Select solution language

Write solution here.


User Avatar tien063    Created at    2 likes

ta có thể thấy giữ 2 khi bình lên sẽ có khoảng cách nhất định thì các số trong khoảng đó sẽ có gtri nguyên là min của 2 số đó vậy ta chỉ cần tìm khoảng gia trị thì sẽ tìm được giá trị cần tìm vậy ta sẽ từ b tìm khoảng giảm dần về sau và tìm số chinh phương gần nhất với b ở mỗi lần vậy ở ta thấy ở mỗi lần b giảm xuống /sqrt(b) mỗi lần nên dpt tổng quat chỉnh là O(/sqrt(b)) ```cpp #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e6; #define fr(i,j,x,n) for (int i = j; i <= n; i += x) #define frn(i,j,x,n) for (int i = j; i >= n; i -= x) int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); ll a,b,n; cin >> a >> b; ll s = 0; while (b >= a){ ll q = sqrt(b); n = q; q *= q; if (q < a) q = a; s += n*(b - q + 1); b = q - 1; } cout << s; return 0; } ```