zoukankan      html  css  js  c++  java
  • BZOJ1800:fly 飞行棋 (双指针 组合数)

    pro: 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列。 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形。 N<20;

    sol:很可能被数据量误导,以为是个难题。 以为圆内接矩形的对角线经过圆中间,所以我们枚举对角线,然后组合数即可。  求过圆心的对角线可以暴力或者双指针。

    #include<bits/stdc++.h>
    #define ll long long
    #define rep(i,a,b) for(int i=a;i<=b;i++)
    using namespace std;
    const int maxn=400010;
    const double pi=acos(-1.0);
    ll sum[maxn],a[maxn],Now,ans;
    int main()
    {
        int N,head=0;
        scanf("%d",&N);
        rep(i,1,N){
            scanf("%lld",&a[i]);
            sum[i]=sum[i-1]+a[i];
        }
        rep(i,1,N-1)
         rep(j,i,N-1) {
            if((sum[j]-sum[i-1])*2==sum[N]) ans++;
        }
        ans=ans*(ans-1)/2;
        printf("%lld
    ",ans);
        return 0;
    }
  • 相关阅读:
    MathML
    Redux counterpart rematch dva
    flow
    pauseable 库
    a simple machine learning system demo, for ML study.
    react图工具集成
    SQLite
    Celery
    RabbitMQ installation
    Thunk
  • 原文地址:https://www.cnblogs.com/hua-dong/p/10690591.html
Copyright © 2011-2022 走看看