问:移动向量的个数。

使得一部分点集可以同时加上移动向量,得到新的点集(与给出的点集完全重合)

我们这样想:

每个点要么是移动前的点,要么是移动后的点。

所以每个点要么+divf(移动向量)的点存在,要么-divf后的点存在。

问题转化为了判断这个条件。判这个条件复杂度nlogn

然后我们枚举第一个点与其他所有点组成的移动向量(1号节点要么移动前的点,要么移动后的点,所以方向向量最多有n-1个)

然后判断即可。

总复杂度n^2 logn

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define ls (o<<1)
#define rs (o<<1|1)
#define pb push_back
//#define a(i,j) a[(i)*(m+2)+(j)]  //m是矩阵的列数
const int M = 1e5+7;
/*
int head[M],cnt;
void init(){cnt=0,memset(head,0,sizeof(head));}
struct EDGE{int to,nxt,val;}ee[M*2];
void add(int x,int y,int z){ee[++cnt].nxt=head[x],ee[cnt].to=y,ee[cnt].val=z,head[x]=cnt;}
*/struct P
{int x,y;bool operator <(const P &p) const {return x < p.x || (x == p.x && y < p.y);}//set需要用到排序方式 P operator + (const P &p) const  {return {x + p.x, y + p.y};} P operator - (const P &p) const  {return {x - p.x, y - p.y};}
};
vector<P>v;
set<P>s;//存放移动向量 不能重复
set<P>a;//存放当前的向量  方便查找
bool ck(P tp)
{int ans=0;for(int i=0;i<v.size();i++){if((a.count(v[i]-tp))||(a.count(v[i]+tp)))ans++;}//cout<<ans<<"----"<<endl;return ans==v.size()?true:false;
}
int main()
{ios::sync_with_stdio(false);cin.tie(0);int n,x,y;cin>>n;for(int i=1;i<=n;i++)cin>>x>>y,v.pb(P{x,y}),a.insert(v[i-1]);for(int i=1;i<v.size();i++){P difv=v[i]-v[0];//   cout<<difv.x<<"  "<<difv.y<<endl;if(ck(difv))s.insert(difv),s.insert(P{-difv.x,-difv.y});//正反都行 }cout<<s.size()<<endl;return 0;
}

CTU Open Contest 2019 J. Beer Vision相关推荐

  1. CTU Open Contest 2019

    A. Beer Barrels 题意:给出四个整数:A,B,K,C,A,B,C 都是大于 0 的个位数,问在所有仅由 A 或 B 组成的 K 位数中(K 位数的每一位都是 A 或 B),数字 C 的个 ...

  2. CTU Open Contest 2019 计蒜客重现补题报告

    个人总结 寒假过完的第一场比赛,总是有很多问题.主要有以下两点:一是寒假做题有点依赖翻译,看不下去很长的英文题面,导致这次比赛的一些题目看很长时间也没看懂.二是发现了自己的做题量仍然很少,很多题目缺乏 ...

  3. Central Europe Regional Contest 2019 J. Saba1000kg (并查集+根号讨论)

    链接:https://ac.nowcoder.com/acm/contest/7817/I 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524 ...

  4. 2021年度训练联盟热身训练赛第二场(ICPC North Central NA Contest 2019,南阳师范学院),签到题ABCDEFGIJ

    A. Binarize It,简单枚举 链接:https://ac.nowcoder.com/acm/contest/12794/A 来源:牛客网 题目描述 Professor Boolando ca ...

  5. The 2019 ACM-ICPC China Shannxi Provincial Programming Contest( J. And And And)

    J题 题解:该题有好多种做法,我的比较low,因为正向的去推是不可行的,我们可以反向考虑每一条边权异或值为0的路径所产生的贡献,我们先把整棵树的根节点固定为1,然后我们可以考虑将满足条件的路径再细分为 ...

  6. Helvetic Coding Contest 2019 online mirror (teams allowed, unrated)

    http://codeforces.com/contest/1184 A1 找一对整数,使x^x+2xy+x+1=r 变换成一个分式,保证整除 #include<iostream> #in ...

  7. Yahoo Programming Contest 2019 F - Pass

    传送门 题目大意 给定一个只包含012序列,0表示这个人有2个红球,1表示一个红球一个蓝球,2表示两个蓝球.进行n*2次游戏,每次游戏所有有球的人选择一个球递给前一个人,第一个人把球放到一个序列中,' ...

  8. Yahoo Programming Contest 2019 自闭记

    A:签到. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> ...

  9. Atcoder Yahoo Programming Contest 2019 简要题解

    A-C 直接放代码吧. A int n,k; int main() {n=read();k=read();puts(k<=(n+1)/2?"YES":"NO&quo ...

  10. The 10th Shandong Provincial Collegiate Programming Contest 2019山东省赛游记+解题报告

    比赛结束了几天...这篇博客其实比完就想写了...但是想等补完可做题顺便po上题解... 5.10晚的动车到了济南,没带外套有点凉.酒店还不错. 5.11早上去报道,济南大学好大啊...感觉走了一个世 ...

最新文章

  1. 构建生产机器学习系统的一些考虑
  2. java的异常抛出throws和throw的简单使用
  3. glide等图片缓存框架替换缓存图片解决方案
  4. 电子邮件成企业主动营销的首选工具
  5. Oracle goldengate 11g错误汇总
  6. 列表-列表的排序和反转
  7. python contains类似函数_01--实际工作中,python基础理念和数据处理
  8. 持续集成持续部署持续交付_自动持续开发和交付混合移动应用程序
  9. 京东到家公布双十二成绩:销售额同比增长1.2倍
  10. ViewPager和Tabhost结合,可滑动的tabhost
  11. GAMBIT、ICEM、HYPERMESH耦合面的处理方法
  12. python爬虫js加密篇—搜狗微信公号文章的爬取
  13. Akka-CQRS(4)- CQRS Writer Actor 示范
  14. Windows 免密码登录
  15. [转载]走近 Jazzy
  16. 安装TDM-GCC时一直报错,大佬求解
  17. AsyncTask简介
  18. 解决 HDFS副本数不足问题
  19. 关注李敖神州文化之旅
  20. 20Python爬虫--Scrapy爬取和讯博客个人所有博客情况并保存到数据库

热门文章

  1. 商业银行2022年12月升级UKEY证书后故障
  2. qt清空qtablew_qt项目:员工信息管理系统
  3. 客户体验的时代(2001.12)
  4. RESTful接口开发规范以及注意事项
  5. git具体作用_GIT的工作原理、功能特点及其运用
  6. linux下启动spoon提示Could not load SWT library
  7. 数据分析实战(二):流浪地球8W多条评论分析
  8. DEM生成等高线及提取等高线3+1种方法
  9. OMG,史上最全的37个APP推广渠道来啦!
  10. 打破垄断!国产服务器操作系统正式发布,微软慌了。。