• BZOJ 1800: [Ahoi2009]fly 飞行棋【思维题,n^4大暴力】


    1800: [Ahoi2009]fly 飞行棋

    Time Limit: 10 Sec  Memory Limit: 64 MB
    Submit: 1689  Solved: 1335
    [Submit][Status][Discuss]

    Description

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

    Input

    第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的各个圆弧长度

    Output

    所构成不重复矩形的个数

    Sample Input

    8
    1
    2
    2
    3
    1
    1
    3
    3


    Sample Output

    3

    HINT

    N<= 20

    Source

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1800

    分析:n^4大暴力,随便搞,学卿学姐的,开始写了个O(n)的,WA了QAQ

    下面给出AC代码:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int m;
     4 int a[30];
     5 int main()
     6 {
     7     cin>>m;
     8     for(int i=1;i<=m;i++)
     9     {
    10         cin>>a[i];
    11         a[i]+=a[i-1];
    12     }
    13     int ans=0;
    14     for(int i=1;i<=m;i++)
    15     {
    16         for(int j=i+1;j<=m;j++)
    17         {
    18             for(int k=j+1;k<=m;k++)
    19             {
    20                 for(int t=k+1;t<=m;t++)
    21                 {
    22                     if((a[j]-a[i]==a[t]-a[k])&&(a[m]+a[i]-a[t]==a[k]-a[j]))
    23                         ans++;
    24                 }
    25             }
    26         }
    27     }
    28     cout<<ans<<endl;
    29     return 0;
    30 }
  • 相关阅读:
    ping 原理与ICMP协议
    ARP详解
    TCP,UDP,IP数据包的大小限制
    Java7--try
    递归,尾递归,回溯
    OLEDB数据源
    hexo next主题为博客添加分享功能
    Windows数据库编程接口简介
    2017总结与2018规划
    为 MariaDB 配置远程访问权限
  • 原文地址:https://www.cnblogs.com/ECJTUACM-873284962/p/7114811.html
Copyright © 2020-2023  润新知