zoukankan      html  css  js  c++  java
  • 2020 camp-day-6-F

    反证:对于一个角,如果两边为不同色,则组成的三角形必定不符要求,则统计每个顶点的黑白边数,二者相乘即为此顶点不合要求的角,

    对于一个不合要求的三角形,存在两个不合要求的角,

    统计所有顶点组出来不合要求的角的和,除以二就是不合要求三角形

    #include <cstdio>
    
    #define RE register
    #define FOR(i,a,b) for(RE int i=a;i<=b;++i)
    #define ROF(i,a,b) for(RE int i=a;i>=b;--i)
    #define sc(n) scanf("%lld",&n)
    #define ll long long
    
    using namespace std;
    
    ll a, b, c, d, p, ans, n;
    int mp[5005][2];
    
    inline bool check(int i, int j)
    {
        return ((i + j) * (i + j) * a % p + (i - j) * (i - j) * b % p + c) % p > d;
    }
    
    int main()
    {
        sc(n),sc(a), sc(b), sc(c), sc(p), sc(d);
        FOR(i, 1, n)FOR(j, i + 1, n)if (check(i, j)) ++mp[i][1], ++mp[j][1]; else ++mp[i][0], ++mp[j][0];
        FOR(i, 1, n)ans +=  mp[i][0] * mp[i][1];
        printf("%lld", 1ll * n * (n - 1) * (n - 2) / 6 - ans / 2);
        return 0;
    }
    

      

  • 相关阅读:
    我的DBDA类文件
    登录时的验证码怎么写?
    phpcms 制作简单企业站的常用标签
    HTML 基础知识
    目标
    split函数的实现
    myString操作符重载
    cout中的执行顺序_a++和++a
    二叉树的层次遍历法
    树的前中序遍历_求后续遍历
  • 原文地址:https://www.cnblogs.com/2aptx4869/p/12216717.html
Copyright © 2011-2022 走看看