zoukankan      html  css  js  c++  java
  • 洛谷 题解 2165 [AHOI2009]飞行棋

    本蒟蒻又来发题解了,

    看到这个题目,本蒟蒻直接开始推公式。。

    嗯,可以通过弧长,推出弦长(l = 2 * r * cos(90 * l / (r * Π));

    然后对比各条弦长的平方和与直径的平方。

    就可以了 QwQ

    以上纯属瞎掰,回到正题

    在我写完上面那种算法,然后苦苦调不出的时候。

    我开始,怀疑我是不是思路有问题。

    事实证明,好像确实有问题;

    以上纯属瞎掰,回到正题+1

    我们想一想,矩形有什么性质:

    四个角都是直角。

    嗯,如果在一个圆周内,什么样的角才是直角。

    嗯,直径所对应的圆周角肯定是直角。

    我没说是直角就一定对应直径。

    好,因为所以的角都是直角。

    那么两条边肯定都是直径。

    那不就好过了吗?

    上代码:

    #include<bits/stdc++.h>
    using namespace std;
    
    #define maxn 50
    int n, a[maxn], s[maxn], ans, sum;
    
    int main()
    {
    scanf("%d", &n);//输入 
    for(int i = 1; i <= n; ++ i)
    {
    scanf("%d", &a[i]);//输入 
    s[i] = s[i - 1] + a[i];//处理前缀和 
    sum += a[i];//sum是周长 
    }
    for(int i = 1; i <= n; ++ i)
    for(int j = i + 1; j <= n; ++ j)
    if(s[j] - s[i] == sum / 2)//判断是不是都是直径 
    ++ ans;
    printf("%d", ans * (ans - 1) / 2);
    return 0;
    }
    
  • 相关阅读:
    IBM Minus One(water)
    约瑟夫问题的循环链表实现
    双向链表(差不多)
    单向链表的建立,插入,删除(复习一下)
    找新朋友(欧拉函数)
    验证角谷猜想(hd1279)
    Wolf and Rabbit(gcd)
    Big Number(大数)
    字串数(高精度组合数)
    寻找素数对(hd1262)
  • 原文地址:https://www.cnblogs.com/Flash-plus/p/12028334.html
Copyright © 2011-2022 走看看