转载https://www.luogu.org/problemnew/solution/P1665,http://bailian.openjudge.cn/practice/2002/的新解法
不知道为什么O(n^4)O(n4)的玄学方法能过,正解显然是O(n^2)O(n2)的,枚举对角线,然后算出另外两点判断存不存在。
关键就在怎么通过对角线算出另外两点的坐标。
先贴公式。
int midx = (x[i] + x[j]) / 2;
int midy = (y[i] + y[j]) / 2;
int x1 = midx - (midy - y[i]), y1 = midy + (midx - x[i]);
int x2 = midx + (midy - y[i]), y2 = midy - (midx - x[i]);
(x[i],y[i]),(x[j],y[j])(x[i],y[i]),(x[j],y[j])是对角线的两个点,
(x1,y1),(x2,y2)(x1,y1),(x2,y2)是我们算出来的另两个点的坐标。
怎么来的呢?
如图, 
黑点是我们枚举的对角线,红点就是我们要算的另外两点。
我们算出对角线的重点(midx,midy)(midx,midy)。
然后做几条辅助线,如图: 
图中的OCOC,OBOB是垂直于xx轴和yy轴,并不一定垂直于正方形的边。
易得△ABOABO ≌ △DCODCO,于是,这两个三角形以ABAB,CDCD为底的高也相等,现在是不是就能理解这个公式了。
贴代码O(n^2)O(n2)常数小
#include <cstdio>
#define Open(s) freopen(s".in","r",stdin);freopen(s".out","w",stdout);
#define Close fclose(stdin);fclose(stdout);
int n, ans;
int x[60000], y[60000], vis[1100][1100], xs[1100][1100];
int main(){
Open("count");
scanf("%d", &n);
for(int i = 1; i <= n; ++i){
scanf("%d%d", &x[i], &y[i]);
x[i] = (x[i] + 51) << 1; //防止负数和小数
y[i] = (y[i] + 51) << 1;
vis[x[i]][y[i]] = 1;
}
for(int i = 1; i < n; ++i)
for(int j = i + 1; j <= n; ++j){
int midx = (x[i] + x[j]) / 2;
int midy = (y[i] + y[j]) / 2;
int x1 = midx - (midy - y[i]), y1 = midy + (midx - x[i]);
int x2 = midx + (midy - y[i]), y2 = midy - (midx - x[i]);
if(x1 <= 0) continue; if(x2 <= 0) continue;
if(y1 <= 0) continue; if(y2 <= 0) continue;
if(vis[x1][y1] && vis[x2][y2]) ++ans;
}
printf("%d\n", ans >> 1);
return 0;
}
转载https://www.luogu.org/problemnew/solution/P1665,http://bailian.openjudge.cn/practice/2002/的新解法的更多相关文章
- 新手村,学会做人选数 https://www.luogu.org/problemnew/show/P1036
#include<cstdio> #include<cmath> #include<string.h> using namespace std; int n,k,s ...
- [**P2766** 最长不下降子序列问题](https://www.luogu.org/problemnew/show/P2766)
P2766 最长不下降子序列问题 考虑我们是如何\(dp\)这个\(LIS\)的. 我们是倒着推,设置\(dp(i)\)代表以\(i\)为起点的\(LIS\)是多少.转移太显然了 \[ dp(i)=m ...
- 个人洛谷账号地址——https://www.luogu.org/space/show?uid=181909 附上NOIP查分系统
个人洛谷地址: https://www.luogu.org/space/show?uid=181909 NOPI查分地址: http://bytew.net/OIer/
- https://www.luogu.org/blog/An-Amazing-Blog/mu-bi-wu-si-fan-yan-ji-ge-ji-miao-di-dong-xi
https://www.luogu.org/blog/An-Amazing-Blog/mu-bi-wu-si-fan-yan-ji-ge-ji-miao-di-dong-xi
- Mui本地打包笔记(一)使用AndroidStudio运行项目 转载 https://blog.csdn.net/baidu_32377671/article/details/79632411
转载 https://blog.csdn.net/baidu_32377671/article/details/79632411 使用AndroidStudio运行HBuilder本地打包的Mui项目 ...
- 转载 https协议和http协议的区别
转载原地址: http://aajs800.blog.51cto.com/519255/109555 什么是HTTPS: HTTPS(Secure Hypertext Transfer Protoco ...
- 爬虫出现Forbidden by robots.txt(转载 https://blog.csdn.net/zzk1995/article/details/51628205)
先说结论,关闭scrapy自带的ROBOTSTXT_OBEY功能,在setting找到这个变量,设置为False即可解决. 使用scrapy爬取淘宝页面的时候,在提交http请求时出现debug信息F ...
- 转载 HTTPS 之fiddler抓包、jmeter请求
转载自 http://suixiang0923.github.io/2016/01/12/%E6%B5%85%E8%B0%88HTTPS%E4%BB%A5%E5%8F%8AFiddler%E6%8A% ...
- Asp.Net Core 第01局:项目创建和部署 转载https://www.jianshu.com/p/9c9750e23b3e
总目录 一.前言 本文通过从项目创建到部署,简单介绍Asp.Net Core. 二.环境 1.Visual Studio 2017 2.Asp.Net Core 2.2 三.开局 第一手:创建项目 ...
随机推荐
- mysql的几种启动方式
mysql的四种启动方式: 1.mysqld 启动mysql服务器:./mysqld --defaults-file=/etc/my.cnf --user=root 客户端连接: mysql --de ...
- MySQL Download
{ http://www.wampserver.com/#wampserver-64-bits-php-5-6-25-php-7 }
- django笔记(python web框架)
1.Python 下载地址:https://www.python.org/downloads/ 2.Django 下载地址:https://www.djangoproject.com/download ...
- 0926CSP-S模拟测试赛后总结
又一次垫底.持续低迷.20分. 赛时状态还可以.但是过于保守而不思进取.三道题目打了暴力就滚粗了. 暴力还挂掉了. T1暴力因为开小了数组挂成了0.1000的点,子序列个数我开了1e5以为足够了.结果 ...
- Codeforces-GYM101873 G Water Testing 皮克定理
题意: 给定一个多边形,这个多边形的点都在格点上,问你这个多边形里面包含了几个格点. 题解: 对于格点多边形有一个非常有趣的定理: 多边形的面积S,内部的格点数a和边界上的格点数b,满足如下结论: 2 ...
- VS2010-MFC(MFC常用类:CTime类和CTimeSpan类)
转自:http://www.jizhuomi.com/software/230.html 上一节讲了MFC常用类CString类的用法,本节继续讲另外两个MFC常用类-日期和时间类CTime类和CTi ...
- vue-router 基本操作
安装 vue-router 在命令行中进入 vue 的项目目录里,运行命令 npm install vue-router --save 来进行安装 npm install vue-router - ...
- centos一些故障解决方法
1. vmware下虚拟机centos,root登录时候提示鉴定故障解决方法 - lippor - 博客园 https://www.cnblogs.com/lippor/p/5537931.html ...
- AutowireCapableBeanFactory 根据名称:自动装配的BeanFactory,其实也是对BeanFactory的增强
//自动装配的Bean 工厂 public interface AutowireCapableBeanFactory extends BeanFactory { //工厂没有自动装配的Bean int ...
- 最全Linux常用命令大全
查看系统系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMB ...