几何向量gcd+暴力枚举——cf552
两两枚举点(xi,yi)(xj,yj)对于第三个点(xk,yk),只要向量ik和ij方向不同即可
只要(xj-xi,yj-yi) 和 (xk-xi,yk-yi)化简后不相同即可,用每个点开个map存下一个gcd的pair即可
#include<bits/stdc++.h>
using namespace std;
#define N 2005
map<pair<int,int>,int>mp[N];
pair<int,int>p[N];
int n;
int main(){
cin>>n;
for(int i=;i<=n;i++){
int x,y;
scanf("%d%d",&x,&y);
p[i]=make_pair(x,y);
}
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)if(i!=j){
int dx=p[j].first-p[i].first;
int dy=p[j].second-p[i].second;
if(dx==||dy==){
if(dx)dx=;if(dy)dy=;
mp[i][make_pair(dx,dy)]++;
}
else {
int d=__gcd(dx,dy);
mp[i][make_pair(dx/d,dy/d)]++;
}
}
long long ans=;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)if(i!=j){
int dx=p[j].first-p[i].first;
int dy=p[j].second-p[i].second;
if(dx==||dy==){
if(dx==){
dy=;
ans+=n--(mp[i][make_pair(dx,dy)]-);
}
else{
dx=;
ans+=n--(mp[i][make_pair(dx,dy)]-);
}
}
else {
int d=__gcd(dx,dy);
ans+=n--(mp[i][make_pair(dx/d,dy/d)]-);
}
}
cout<<ans/<<'\n';
}
几何向量gcd+暴力枚举——cf552的更多相关文章
- UVA.12716 GCD XOR (暴力枚举 数论GCD)
UVA.12716 GCD XOR (暴力枚举 数论GCD) 题意分析 题意比较简单,求[1,n]范围内的整数队a,b(a<=b)的个数,使得 gcd(a,b) = a XOR b. 前置技能 ...
- こだわり者いろはちゃん / Iroha's Obsession (暴力枚举)
题目链接:http://abc042.contest.atcoder.jp/tasks/arc058_a Time limit : 2sec / Memory limit : 256MB Score ...
- uva10892(暴力枚举)
把n的所有因子求出来,总数不会太多,所以直接O(n2)的暴力枚举所有对行不行. 有几个细节要注意,详见代码. #include<iostream> #include<cstdio&g ...
- 蓝桥杯 2014本科C++ B组 奇怪的分式 暴力枚举
蓝桥杯 枚举 奇怪的分式 标题:奇怪的分式 上小学的时候,小明经常自己发明新算法.一次,老师出的题目是: 1/4 乘以 8/5 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见图1 ...
- Gym 100299C && UVaLive 6582 Magical GCD (暴力+数论)
题意:给出一个长度在 100 000 以内的正整数序列,大小不超过 10^ 12.求一个连续子序列,使得在所有的连续子序列中, 它们的GCD值乘以它们的长度最大. 析:暴力枚举右端点,然后在枚举左端点 ...
- UVa 1642 Magical GCD (暴力+数论)
题意:给出一个长度在 100 000 以内的正整数序列,大小不超过 10^ 12.求一个连续子序列,使得在所有的连续子序列中, 它们的GCD值乘以它们的长度最大. 析:暴力枚举右端点,然后在枚举左端点 ...
- [bzoj1610][Usaco2008 Feb]Line连线游戏_暴力枚举
Line连线游戏 bzoj-1610 Usaco-2008 Feb 题目大意:Farmer John最近发明了一个游戏,来考验自命不凡的贝茜.游戏开始的时 候,FJ会给贝茜一块画着N (2 <= ...
- CodeForces 742B Arpa’s obvious problem and Mehrdad’s terrible solution (暴力枚举)
题意:求定 n 个数,求有多少对数满足,ai^bi = x. 析:暴力枚举就行,n的复杂度. 代码如下: #pragma comment(linker, "/STACK:1024000000 ...
- 2014牡丹江网络赛ZOJPretty Poem(暴力枚举)
/* 将给定的一个字符串分解成ABABA 或者 ABABCAB的形式! 思路:暴力枚举A, B, C串! */ 1 #include<iostream> #include<cstri ...
随机推荐
- SQL Server 管理套件(SSMS)
SQL Server 管理套件(SSMS) 当您按照之前章节的步骤顺利安装完 SQL Server 2014 后,要做的第一件事就是需要打开 SQL Server 管理套件,并且要知道怎样去使用它. ...
- parse_str()函数怎么用?
php parse_str()函数 语法 parse_str()函数怎么用? php parse_str()函数表示将字符串解析成多个变量,语法是parse_str(string,array),如果未 ...
- 基于Tomcat如何显示服务器上的图片或文件?
修改tomcat中conf文件夹下的server.xml文件,在 <Valve className="org.apache.catalina.valves.AccessLogValve ...
- CSS 设置鼠标显示形状
CSS 设置鼠标显示形状 <style type="text/css"><!-- span {display:block;line-height:30px;mar ...
- Hive 数据类型转换(转)
原文连接:https://www.iteblog.com/archives/892.html 在<Hive内置数据类型>文章中,我们提到了Hive内置数据类型由基本数据类型和复杂数据类型组 ...
- 关于radio选中或者反选
关注点:一.attr()和prop()的区别 <!DOCTYPE html> <html> <head> <title>JavaScript对文字按 ...
- (54) C# 调用 kernel32.dll
https://www.cnblogs.com/cwy173/archive/2010/10/02/1841321.html Kernel32 API AddAtom 向本地原子表添加一个字符串 Al ...
- Codeforces 388C Fox and Card Game (贪心博弈)
Codeforces Round #228 (Div. 1) 题目链接:C. Fox and Card Game Fox Ciel is playing a card game with her fr ...
- 点读系列《流畅的python》
第1章 python数据模型 python的写法是由背后的魔法方法实现的,比如obj[key],解释器实际调用的是obj.__getitem__(key) 作者把魔法方法叫做双下方法,因为有两个下划线 ...
- 3.Jmeter 快速入门教程(三-1) --添加响应断言(即loadrunner中所指的检查点)
上一节课,我们创建了一个测试场景,并进行了少量vuser的负载测试. 有时候我们执行了测试,但是发现并不是所有事务都执行成功了. 那是因为我们只是发起了测试,但并没有对每次请求测试的返回作校验. 所以 ...