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;
    }
  • 相关阅读:
    Razor 常用又容易忘记语法
    游览器 reflow
    正则表达式
    migration to end point routing
    js 翻译 c# 注意事项
    Angular 学习笔记 work with excel (导出 excel)
    html4,5 basic
    IIS 服务器配置
    meta 的用途
    正则表达 常用
  • 原文地址:https://www.cnblogs.com/hua-dong/p/10690591.html
Copyright © 2011-2022 走看看