BZOJ 1800 [Ahoi2009]fly 飞行棋】的更多相关文章

1800: [Ahoi2009]fly 飞行棋 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=1800 Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input 第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的各…
O(N2)算出有x条直径然后答案就是x(x-1)/2...这个数据范围是闹哪样! ------------------------------------------------------------------------------------------ #include<cstdio> #include<cstring> #include<algorithm>   using namespace std;   const int maxn = 29;   in…
1800: [Ahoi2009]fly 飞行棋 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1689  Solved: 1335[Submit][Status][Discuss] Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input 第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的各个圆弧长度…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1800 原来只想到一个弧是一条边. 然后发现不是.差点不会做.经Zinn提醒,不用枚举那条边由多少弧组成,只要枚举四个端点在哪就行了! 因为矩形有四个角所以会被重复4遍. #include<iostream> #include<cstdio> #include<cstring> using namespace std; ; ],s[N<<],ans; i…
题目链接 思路 终于有一道自己想出来的题了,开心. 因为是矩形,一定有直角,所以考虑直径,之后由于矩形对角线是两条直径,所以考虑组合数. 直径有n条,矩形有c(n,2)个. #include<iostream> #include<cstdio> #include<map> using namespace std; ],a[]; map<int,int>mp; long long fac(int k) { ; ;i<=k;i++) ans*=i; ret…
Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input 第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的各个圆弧长度 Output 所构成不重复矩形的个数 Sample Input 812231133 Sample Output 3 HINT N<= 20 思路:唔 N<=20 逗我呢TUT #include<cstdio> #in…
在圆里所以没有平行四边形,n^4枚举点即可 #include<iostream> #include<cstdio> using namespace std; const int N=45; int n,a[N],s[N],ans; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]),s[i]=s[i-1]+a[i]; for(int i…
Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1767  Solved: 1395[Submit][Status][Discuss] Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input 第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的各个圆弧长度 Output 所构成不重复矩形的个数 Sampl…
#include<cstdio> #include<iostream> using namespace std; ],n,ans; int main() { scanf("%d",&n); ;i<=n;i++) scanf("%d",&sum[i]); ;i<=n;i++) sum[i]+=sum[i-]; ;i<=*n;i++) sum[i]=sum[n]+sum[i-n]; ;i<=n;i++) ;…
1800: [Ahoi2009]fly 飞行棋 题目:传送门 题解: 大水题,早上签个到 没什么好说的...搞个前缀和,算个周长... 周长为奇数肯定误解啊废话QWQ 那么看到n<=20,还不暴力枚举!!! 然后看一下对角点之间的弧长是不是半周长就好啦(判定定理啊) 然后...一A 代码: #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<a…