AtCoder Beginner Contest 190 D - Staircase Sequences
生活随笔
收集整理的這篇文章主要介紹了
AtCoder Beginner Contest 190 D - Staircase Sequences
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
D - Staircase Sequences
https://atcoder.jp/contests/abc190/tasks/abc190_d
分解因數,枚舉
#include<bits/stdc++.h> using namespace std;typedef long long LL;set<pair<LL, LL>> st; //(r + l)*(r - l + 1) = 2 * N; // x * y = 2 * N; //分解因子int main() {LL N;scanf("%lld", &N);N *= 2;LL res = 0;pair<LL, LL> t;for(LL i = 1; i * i <= N; i++) { //別忘了i也要LL;if(N % i == 0) {LL x = i, y = N / i;if((x + y - 1) % 2 == 0) {LL r = (x + y - 1) / 2;LL l = (x - r);t.first = l, t.second = r;if(l <= r && st.find(t) == st.end()) {//printf("ok: %d %d\n", l, r);res ++;st.emplace(t);}swap(x, y);l = (x - r);t.first = l;if(l <= r && st.find(t) == st.end()) {//printf("ok: %d %d\n", l, r);res ++;st.emplace(t);}}}} printf("%lld\n", res);return 0; }總結
以上是生活随笔為你收集整理的AtCoder Beginner Contest 190 D - Staircase Sequences的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 土豆皮,蒜苗长短,胡萝卜
- 下一篇: SegeX SgxVariantArra