题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1800 说实话我这几天运气不错,随便在bzoj上找题都可以找到水题,这题在代码上没有丝毫难度,只是如果没想通的话可能做起来会比较吃力,因为暴力也是需要技巧的 方法: 这个图形是个圆,要在圆上找矩形. 然后矩形的特征是啥?四个角90度?好吧这不是重点,重点是矩形的对角线相等. 然后矩形是内接与这个圆的,所以我们又可以想到,圆的内接矩形对角线等于圆的直径. 直径,圆的任何一条直径将圆的面积分成…
[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…
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个点所分割的各…
找了道bzoj的水题,千年难得一遇. 建议初学者做做,然而我个蒟蒻初学时应该A不了..... < http://www.lydsy.com/JudgeOnline/problem.php?id=1800 > 地址啦啦啦就来了. 进入正题,先看题目 Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input 第一行为正整数N,表示点的个数,接下来N行分别为这N个点所…
题目描述 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. 输入输出格式 输入格式: 第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的各个圆弧长度 输出格式: 所构成不重复矩形的个数 输入输出样例 输入样例#1: 复制 8 1 2 2 3 1 1 3 3 输出样例#1: 复制 3 说明 N<=20 #include<iostream> #include<cstd…
题目描述 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. 输入输出格式 输入格式: 第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的各个圆弧长度 输出格式: 所构成不重复矩形的个数 输入输出样例 输入样例#1: 8 1 2 2 3 1 1 3 3 输出样例#1: 3 说明 N<=20 Solution: 本题看似很水(确实很水),自己的想法却不够简便. 开始写了个暴力枚举$…
传送门 Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input 第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的各个圆弧长度 Output 所构成不重复矩形的个数 Sample Input 8 1 2 2 3 1 1 3 3 Sample Output 3 HINT N<=20 Solution 每两组间隔为半周长的点对都能组成矩形(相当于两直径…
嘟嘟嘟 刚开始想这道题的时候确实很蒙,只想到矩形对边做对应的弧长相等,然后想办法凑出相等的弧长.其实正解很简单,不要去想边,应该想对角线,因为根据初中园的知识,这个矩形的对角线是圆的直径,而直径所对的弧是周长的一半,所以只要每局两个指针 i,j,如果这两个的距离是周长一半的话,就cnt++,所以最终的cnt就是直径的个数,所以答案就是C(2, cnt). 用前缀和预处理距离. #include<cstdio> #include<iostream> #include<cmath…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1800   https://www.luogu.org/problemnew/show/P2165 n 才20,所以模拟: 一开始是这样写的,惨WA2个点: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; type…
本蒟蒻又来发题解了, 看到这个题目,本蒟蒻直接开始推公式.. 嗯,可以通过弧长,推出弦长(l = 2 * r * cos(90 * l / (r * Π)); 然后对比各条弦长的平方和与直径的平方. 就可以了 QwQ 以上纯属瞎掰,回到正题 在我写完上面那种算法,然后苦苦调不出的时候. 我开始,怀疑我是不是思路有问题. 事实证明,好像确实有问题: 以上纯属瞎掰,回到正题+1 我们想一想,矩形有什么性质: 四个角都是直角. 嗯,如果在一个圆周内,什么样的角才是直角. 嗯,直径所对应的圆周角肯定是直…
1800: [Ahoi2009]fly 飞行棋 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1689  Solved: 1335[Submit][Status][Discuss] Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input 第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的各个圆弧长度…
1800: [Ahoi2009]fly 飞行棋 题目:传送门 题解: 大水题,早上签个到 没什么好说的...搞个前缀和,算个周长... 周长为奇数肯定误解啊废话QWQ 那么看到n<=20,还不暴力枚举!!! 然后看一下对角点之间的弧长是不是半周长就好啦(判定定理啊) 然后...一A 代码: #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<a…
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…
这道题感觉就是乱搞,O(n^4)都毫无问题 1800: [Ahoi2009]fly 飞行棋 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1172 Solved: 959 [Submit][Status][Discuss] Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input 第一行为正整数N,表示点的个数,接下…
O(N2)算出有x条直径然后答案就是x(x-1)/2...这个数据范围是闹哪样! ------------------------------------------------------------------------------------------ #include<cstdio> #include<cstring> #include<algorithm>   using namespace std;   const int maxn = 29;   in…
BZOJ_1800_[Ahoi2009]fly 飞行棋_乱搞 Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input 第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的各个圆弧长度 Output 所构成不重复矩形的个数 Sample Input 8 1 2 2 3 1 1 3 3 Sample Output 3 HINT N<= 20 分析:此题数…
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Pachee { class Program { #region 静态字段 // 关卡数量 ]; // 玩家坐标 ]; // 玩家名称 ]; // 判断玩家是否暂停 ]; #endregion /// <summary> /// 输出游戏头 //…
C#小程序飞行棋,程序效果图 1.设计分析 这个程序界面大致分为四部分: ① 最上面游戏名字界面 ②信息提示区 ③游戏界面区 ④游戏操作提示区 2.分区设计实现 一.游戏界面显示区,由于只需要显示出图形即可,因此直接用Console.Writeline()输出即可. 二.信息提示区,此处用于显示 游戏对战双方的姓名等信息,在游戏开始时需要由用户录入对战双方的姓名信息,因此可用Console.Readline()来读取 用户键入的值,<注:需要检查验证对战双方的姓名不可相同!> 三.游戏界面区,…
最近看见一个骑士飞行棋的小游戏代码,感觉这个代码中将大多数C#的基础知识都运用到了,是一个新手检验学习成果的有效方法,特此将这个代码整理一遍.这是一个控制台程序.这是代码下载地址,代码中的注释非常详细介绍了每段代码的作用: http://files.cnblogs.com/files/xiaohua92/%E9%AA%91%E5%A3%AB%E9%A3%9E%E8%A1%8C%E6%A3%8B.zip 首先要了解一下 骑士飞行棋 这个游戏的游戏规则: 1)参与游戏的一共有两个人,暂且称之为A和B…
NIIT第十一天 上午 多维数组 1.数组是引用数据类型 排序 1.冒泡排序法 2.类冒泡排序法 下午 飞行棋游戏 1.项目策划 2.项目规则确认 3.项目模块确认 晚上 1.飞行棋游戏,项目框架的编写 笔记 1.数组也是引用数据类型 2.冒泡排序法:嵌套for循环,外层循环控制冒泡的轮数,内层循环负责将本轮循环的最小值调换到末尾 3.在equals()方法使用上,应该将不会发生空值写在前面,因为在a.equals(b)时,如果a是空值,将不可能调用equals()方法,导致空指针报错,而b为空…
无邪的飞行棋 Time Limit 1s Memory Limit 64KB Judge Program Standard Ratio(Solve/Submit) 15.38%(4/26) Description: 大家还记得小时候玩过的飞行棋游戏吧,和小伙伴们一起体验飞行的乐趣!随着岁月的流逝我们换个方法重温这个游戏. 开始我们都在起点0,我们的目标是到达目的地M(0 < M < 1000).现在我们手中有N(0 < N < 100)种点数,每种点数的大小为K(0 < k…
在写程序中遇到如下问题:如果有人知道,请您一定要指点迷津.小白. 1.在运行暂停功能时,这个暂停功能可以实现,但是无法显示提示信息. case 3: Console.Clear(); Program.drawmap(); isstop[0] = true; msg = string.Format("{0}走到了地雷,暂停一次!", name[0]); break; 2.下面这行代码没有效果:(我换了一下console.clear()的位置不行,但去掉可以实现,但是也没有清屏了.) Co…
飞行棋业务:我们要能够让2个玩家 在地图上 按照游戏规则 进行游戏 玩家类 变量:玩家位置,玩家名称,玩家标识,玩家是否在陷阱中 方法:投骰子,移动 地图类 变量:地图数据数组 方法:初始化地图数据,绘制地图,显示Logo 游戏规则类 变量: 方法:第一次游戏说明,判断玩家位置是否有障碍物,根据不同障碍物执行不同操作,判断游戏是否结束 using System; using System.Collections.Generic; using System.Linq; using System.T…
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _05.飞行棋游戏 { class Program { //用静态字段来模拟全局变量 ]; //声明一个静态数组来存储玩家A和玩家B的坐标 ]; //存储两个玩家的姓名 ]; static void Main(string[] args) { //…
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 飞行棋Ver1._0 { class Program { //如果元素的值是0 代表这是1个普通 //1 幸运轮盘 ◎ //2 暂停 ▲ //3 地雷 ● //4. 时光隧道 卍 ]; ];//第一个元素代表的是玩家A的位置 第2个元素代表的是玩家B的位置 static bool[] isStop = {f…
using System; namespace Game{ class Program { //用静态字段模拟全局变量 public static int[] Maps = new int[100]; //申明一个数组来存储玩家A和B public static int[] PlayerPos = new int[2]; //存储玩家姓名 public static string[] PlayNames = new string[2]; //两个玩家的标记 static bool[] Flags…
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1800 题意概括 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. 题解 点数<=20. 我们发现, 圆周上有矩形的充要条件是它的两条对角线一定是它的直径. 如果不是,那就不会有直角了. 所以搜素在同一直径上的点对数然后C函数即可. 代码 #include <cstring> #inc…
暴力枚举. #include<cstdio> #include<algorithm> using namespace std; ],sum[],half,ans; int query(const int &A,const int &B) { ]-sum[y-]; if(res>half) return sum[n]-res; else return res; } int main() { scanf("%d",&n); ;i<…
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input 第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的…
题目 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. 输入格式 第一行为正整数N,表示点的个数,接下来N行分别为这N个点所分割的各个圆弧长度 输出格式 所构成不重复矩形的个数 输入样例 8 1 2 2 3 1 1 3 3 输出样例 3 解释 N<= 20 题解 四个点abcd能构成矩形,当且仅当 弧ab=弧cd 且 弧bc=弧ad 顺序枚举判断一下就好了 #include<iostrea…