bzoj1800】的更多相关文章

[BZOJ1800][AHOI2009]飞行棋(暴力) 题面 BZOJ 洛谷 题解 预处理一下前缀和就可以\(O(1)\)计算两点间的距离了,直接\(O(n^4)\)暴力枚举即可. #include<iostream> #include<cstdio> using namespace std; int n,s[50],ans; int Dis(int l,int r){if(r<l)r+=n;return s[r]-s[l];} int main() { scanf(&quo…
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1800 题意概括 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. 题解 点数<=20. 我们发现, 圆周上有矩形的充要条件是它的两条对角线一定是它的直径. 如果不是,那就不会有直角了. 所以搜素在同一直径上的点对数然后C函数即可. 代码 #include <cstring> #inc…
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input 第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的…
找了道bzoj的水题,千年难得一遇. 建议初学者做做,然而我个蒟蒻初学时应该A不了..... < http://www.lydsy.com/JudgeOnline/problem.php?id=1800 > 地址啦啦啦就来了. 进入正题,先看题目 Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input 第一行为正整数N,表示点的个数,接下来N行分别为这N个点所…
这道题感觉就是乱搞,O(n^4)都毫无问题 1800: [Ahoi2009]fly 飞行棋 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1172 Solved: 959 [Submit][Status][Discuss] Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input 第一行为正整数N,表示点的个数,接下…
pro: 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. N<20; sol:很可能被数据量误导,以为是个难题. 以为圆内接矩形的对角线经过圆中间,所以我们枚举对角线,然后组合数即可.  求过圆心的对角线可以暴力或者双指针. #include<bits/stdc++.h> #define ll long long #define rep(i,a,b) for(int i=a;i&l…
http://www.lydsy.com/JudgeOnline/problem.php?id=1800 圆上两条直径构成矩形的对角线 #include<cstdio> using namespace std; ]; int main() { int n; scanf("%d",&n); ; ;i<=n;++i) scanf("%d",&sum[i]),tot+=sum[i]; ;i<=n;++i) sum[i]+=sum[i…
题解: 暴力枚举,然后判断是否是矩形 代码: #include<iostream> #include<cstdio> using namespace std; ],dis[]; int read() { char ch=getchar(); ,x=; ;ch=getchar();} +(ch-');ch=getchar();} return x*f; } int main() { n=read(); ;i<=n;i++)a[i]=read(); ;i<=n;i++) {…
这道题其实并不难,主要原因是数据范围很小,当然数据如果大来也可以优化,但重点是在做的时候用的思路很通用, 所以本题是一道思想题(当然思想也不难) 标题里的“+”体现在一些边界处理中. 直接甩题目 Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input 第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的各个圆弧长度 Output 所构成不重复矩形的个…
题目链接 简单模拟 真的不敢相信ahoi09年的题竟然是这个难度 首先,一个必须要知道的定理是:圆上只有直径所对的圆周角是直角. 然后就很显然了, 只有两条不重合的直径上的四个点才能组成一个矩形, 所以统计有多少条直径,答案就是$\frac{n(n-1)}{2}$ 直径的话,就意味着左半边长度$=$右半边的长度$=$ $\frac{\text{周长}}{2}$ 首先,当圆周长是奇数的时候,显然正整数内不存在任何一条直径. 对于周长是偶数 那么怎么统计有多少条直径呢? 维护一个前缀和就好了啊$………