zoukankan      html  css  js  c++  java
  • [ICPC2019西安A] City

    [ICPC2019西安A] City - 组合

    Description

    给一个 (n imes m (n,m le 1000)) 网格,问有多少条线段两端是格点,同时中点也是格点。

    Solution

    普通情况(斜的)可以拆成横的竖的分量独立贡献相乘

    其它情况(平的,竖的,一个点的)容斥加加减减

    #include <bits/stdc++.h>
    using namespace std;
    
    #define int long long
    
    int n, m;
    
    int solve(int n)
    {
        int ans = 0;
        for (int i = 0; i <= n; i++)
            ans += i / 2 + 1;
        return ans;
    }
    
    signed main()
    {
        ios::sync_with_stdio(false);
    
        cin >> n >> m;
        int ans = solve(n) * solve(m);
        cout << 2 * ans + 0 * (n + 1) * (m + 1) - (n + 1) * solve(m) - (m + 1) * solve(n) << endl;
    }
    
  • 相关阅读:
    正则表达式
    文件读写
    列表和数组变量
    Perl基础
    [转] bias和variance
    Chapter 1
    Come back to CNblogs
    SentenceGeneration
    句子生成器
    ant相关操作
  • 原文地址:https://www.cnblogs.com/mollnn/p/14567159.html
Copyright © 2011-2022 走看看