洛谷——P1227 [JSOI2008]完美的对称
P1227 [JSOI2008]完美的对称
题目描述
在峰会期间,必须使用许多保镖保卫参加会议的各国代表。代表们除了由他自己的随身保镖保护外,组委会还指派了一些其他的特工和阻击手保护他们。为了使他们的工作卓有成效,使被保卫的人的安全尽可能得到保障,保镖被分配到被保护人的各个方向。
保镖的最佳站立位置应该是这样的:被保护人应站在所有保镖的对称中心。但是,只要被保
护人一移动,保镖就很难根据要人的新位置调整位置。大多数的特工都很难对此作出实时调整。
因此,安全部长决定将该过程逆转一下,保镖先站好自己的位置,然后要人在他们的对称中心找到合适的位置。如果要人随便走动,我们就对他的安全不必负责。
你的工作是使这个过程自动操作。给出一组N个点(保镖的位置),你要找出它们的对称中心S,在这儿被保护人将相对安全。下面以此类推。
首先我们给定一点A以及对称中心S,点A'是点A以S为对称中心形成的像点,即点S是线段AA'的对称中心。
点阵组(X)以S为中心的像点是由每个点的像点组成的点阵组。X是用来产生对称中心S的,即点阵X以S为中心的像点的集合即为点阵X本身。

输入输出格式
输入格式:
输入文件第一行是一个整数N,1<=N<=20000,接下来的N行每行包含用空格隔开的两个整数Xi和Yi,-100000<=Xi,Yi<=100000,表示这组点阵中第I个点的笛卡尔坐标值。
因为任何两个保镖都不会站在同一个位置上,所以在给定的作业中,任何两点都不相同。但注意保镖可以站在被保护人相同的位置。
输出格式:
输出文件仅有一行。如果给定的点阵能产生一个对称中心,则输出“V.I.P. should stay at (x,y).”,其中X和Y代表中心的笛卡尔坐标值,格式为四舍五入保留至小数点后一位。
如果该组点阵无对称中心,输出"This is a dangerous situation!",注意输出时除了两个单词之间用一个空格隔开外,不要输出多余空格。
输入输出样例
8 1 10 3 6 6 8 6 2 3 -4 1 0 -2 -2 -2 4
V.I.P. should stay at (2.0,3.0).
说明
[JSOI2008]第二轮
宝宝不明白这个题为什么会是省选的题、、
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 20001
using namespace std;
double xx,yy;
int n,sx,sy,x[N],y[N];
int read()
{
,f=; char ch=getchar();
;ch=getchar();}
+ch-',ch=getchar();
return x*f;
}
int main()
{
n=read();
;i<=n;i++)
x[i]=read(),y[i]=read(),sx+=x[i],sy+=y[i];
xx=1.0*sx/n,yy=1.0*sy/n;
printf("V.I.P. should stay at (%.1lf,%.1lf).",xx,yy);
;
}
64分代码(没有考虑没有对称中心的情况,其实我认为应该是都有对称中心的)
我们知道对称中心一定是一组对称数的中间位置,如果这些数有对称中心的话,所有的对称点到对称中心的位置是相同的,对称中心的位置即为这两个数x的中间,y为这两个数y的中间,我们可以直接将这些直接加起来然后在除以数的个数,这算出来的应该是对称中心,然后我们在判断这些点的对称中心在不在这个地方
一对对称点一定是如果一个点的x小,那么另一个的x一定大,这样我们排一下序,看一下是对称点的两个数的对称点是否在这个位置
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 20001
using namespace std;
double xx,yy;
int n,sx,sy;
int read()
{
,f=; char ch=getchar();
;ch=getchar();}
+ch-',ch=getchar();
return x*f;
}
struct A
{
int x,y;
}a[N];
int cmp(A a,A b)
{
if(a.x!=b.x) return a.x<b.x;
if(a.y!=b.y) return a.y<b.y;
}
int main()
{
n=read();
;i<=n;i++)
a[i].x=read(),a[i].y=read(),sx+=a[i].x,sy+=a[i].y;
xx=1.0*sx/n,yy=1.0*sy/n;
sort(a+,a++n,cmp);
;i<=n;i++)
].x)/!=xx||].y)/!=yy)
{
printf("This is a dangerous situation!");
;
}
printf("V.I.P. should stay at (%.1lf,%.1lf).",xx,yy);
;
}
AC代码
洛谷——P1227 [JSOI2008]完美的对称的更多相关文章
- 洛谷 P1227 [JSOI2008]完美的对称
传送门 题目大意:求一些点集的公共对称中心 题解:对称中心是可以确定的,再判断. 代码: #include<iostream> #include<cstdio> #includ ...
- 洛谷 P1198 [JSOI2008]最大数
洛谷 P1198 [JSOI2008]最大数 题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值. ...
- 洛谷P1198 [JSOI2008]最大数(单点修改,区间查询)
洛谷P1198 [JSOI2008]最大数 简单的线段树单点问题. 问题:读入A和Q时,按照读入一个字符会MLE,换成读入字符串就可以了. #include<bits/stdc++.h> ...
- 「线段树」「单点修改」洛谷P1198 [JSOI2008]最大数
「线段树」「单点修改」洛谷P1198 [JSOI2008]最大数 题面描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数, ...
- 洛谷P1198 [JSOI2008]最大数
P1198 [JSOI2008]最大数 267通过 1.2K提交 题目提供者该用户不存在 标签线段树各省省选 难度提高+/省选- 提交该题 讨论 题解 记录 最新讨论 WA80的戳这QwQ BZOJ都 ...
- 洛谷P1198 [JSOI2008]最大数(BZOJ.1012 )
To 洛谷.1198 最大数 题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值. 限制:L不超过当 ...
- BZOJ1015或洛谷1197 [JSOI2008]星球大战
BZOJ原题链接 洛谷原题链接 发现正着想毫无思路,所以我们可以考虑倒着思考,把摧毁变成建造. 这样很容易想到用并查集来维护连通块,问题也变的很简单了. 建原图,先遍历一遍所有边,若某条边的两端点未被 ...
- 洛谷P4035 [JSOI2008]球形空间产生器(高斯消元)
洛谷题目传送门 球啊球 @xzz_233 qaq 高斯消元模板题,关键在于将已知条件转化为方程组. 可以发现题目要求的未知量有\(n\)个,题目却给了我们\(n+1\)个点的坐标,这其中必有玄机. 由 ...
- bzoj 1014: 洛谷 P4036: [JSOI2008]火星人
题目传送门:洛谷P4036. 题意简述: 有一个字符串,支持插入字符,修改字符. 每次需要查询两个后缀的LCP长度. 最终字符串长度\(\le 100,\!000\),修改和询问的总个数\(\le 1 ...
随机推荐
- mysql之面试问题总结
问题1.char 与varchar的区别? varchar是变长而char的长度是固定的.如果你的内容是固定的大小,char性能更好. char[4] 与varchar[4] 存储字母a a占一个 ...
- 设计模式之第13章-职责链模式(Java实现)
设计模式之第13章-职责链模式(Java实现) “请假都那么麻烦,至于么.”“咋的了?”“这不快过年了么,所以我想早两天回去,准备一下,买买东西什么的,然后去给项目经理请假,但是他说快过年了,所以这个 ...
- leetcode 【 Best Time to Buy and Sell Stock III 】python 实现
题目: Say you have an array for which the ith element is the price of a given stock on day i. Design a ...
- leetcode 【 Two Sum 】python 实现
题目: Given an array of integers, find two numbers such that they add up to a specific target number. ...
- Bug的类型
美国计算机科学家.图灵奖获得者詹姆斯·尼古拉·格雷(Jim Gray),在他的著名的论文“Why do computers stop and what can be done about it?”中首 ...
- C语言其他知识总结
1.常指针与指针常量 诀窍:观察const修饰的是谁,那谁就不可更改. const int *p;//const 修饰*p,所以*p不能更改.通过指针不可更改指向的值 int const *p;//同 ...
- Mac 如何删除应用、软件
首先需要跟刚接触Mac的小白分享一下卸载软件常用的两种方法: 1.点击Finder(访达)—应用程序—选择所要删除的软件—拖拽到右下方的废纸篓或者单击右键选择“移除到废纸篓”. 2.打开Launchp ...
- pythonic编程示例及简析
1.列表 list[起始:结尾:增量] 值传递与地址传递 a = [2,1] b = a #地址传递 b = a[:] 值传递 a.sort() print a #[1,2] print b #[1, ...
- mysql 连接超时的问题
项目中用mycat做的分表分库,异步通知系统会连接mycat去查数据库数据,有时会抛异常提示mysql server has gone away.最初以为是mycat的问题,在修改了mycat的配置, ...
- 编译linux kernel及制作initrd ( by quqi99 )
编译linux kernel及制作initrd ( by quqi99 ) 作者:张华 发表于:2013-01-27 ( http://blog.csdn.net/quqi99 ) 运行一个l ...