博客
关于我
AtCoder Beginner Contest 190 D - Staircase Sequences
阅读量:151 次
发布时间:2019-02-27

本文共 1349 字,大约阅读时间需要 4 分钟。

为了解决这个问题,我们需要计算满足特定条件的因数对(x, y)的数量。给定一个整数N,我们要找出所有满足x * y = 2N,并且x + y - 1是偶数的因数对。接下来,我们需要检查是否存在对应的(r, l)对使得r + l = (x + y - 1)/2,并且满足一定的条件。

方法思路

  • 枚举因数对:我们遍历所有可能的因数对(x, y),满足x * y = 2N。
  • 检查条件:对于每对(x, y),检查x + y - 1是否为偶数。如果不是,跳过。
  • 计算s:如果满足条件,计算s = (x + y - 1) / 2。
  • 检查(r, l)对:找到满足r + l = s且r >= l的(r, l)对,并确保它们满足一定的条件。
  • 统计结果:统计满足条件的因数对的数量。
  • 解决代码

    #include 
    using namespace std;typedef long long LL;set
    st;LL main() { LL N; scanf("%lld", &N); N *= 2; LL res = 0; for (LL i = 1; i * i <= N; ++i) { if (N % i == 0) { LL x = i, y = N / i; if ((x + y - 1) % 2 == 0) { LL s = (x + y - 1) / 2; LL r = s, l = 0; for (LL r = 1; r <= s; ++r) { l = s - r; if (r + l == s && l <= r) { if (st.find(make_pair(l, r)) == st.end()) { st.insert(make_pair(l, r)); res++; } } } } } } printf("%lld\n", res); return 0;}

    代码解释

  • 输入处理:读取输入的整数N,并将其乘以2,得到2N。
  • 因数枚举:遍历从1到sqrt(N)的所有整数i,检查i是否是N的因数。
  • 条件检查:对于每对因数(x, y),检查(x + y - 1)是否为偶数。
  • 计算s:如果满足条件,计算s = (x + y - 1) / 2。
  • 寻找(r, l)对:遍历可能的r值,计算对应的l,并检查是否满足条件。
  • 存储和统计:将满足条件的(r, l)对存入集合中,避免重复计数,并统计结果。
  • 通过这种方法,我们可以高效地计算出满足条件的因数对的数量。

    转载地址:http://jfcb.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现geometric series几何系列算法(附完整源码)
    查看>>
    Objective-C实现getline函数功能(附完整源码)
    查看>>
    Objective-C实现gnome sortt侏儒排序算法(附完整源码)
    查看>>
    Objective-C实现graph list图列算法(附完整源码)
    查看>>
    Objective-C实现GraphEdge图边算法(附完整源码)
    查看>>
    Objective-C实现GraphVertex图顶点算法(附完整源码)
    查看>>
    Objective-C实现greatest common divisor最大公约数算法(附完整源码)
    查看>>
    Objective-C实现greedy coin change贪心硬币找零算法(附完整源码)
    查看>>
    Objective-C实现greedy knapsack贪婪的背包算法(附完整源码)
    查看>>
    Objective-C实现GridGet算法(附完整源码)
    查看>>
    Objective-C实现half adder半加器算法(附完整源码)
    查看>>
    Objective-C实现hamiltonianCycle哈密尔顿图算法(附完整源码)
    查看>>
    Objective-C实现hamming code汉明码算法(附完整源码)
    查看>>
    Objective-C实现hamming numbers汉明数算法(附完整源码)
    查看>>
    Objective-C实现hammingDistance汉明距离算法(附完整源码)
    查看>>
    Objective-C实现hanning 窗(附完整源码)
    查看>>