两两枚举点(xi,yi)(xj,yj)对于第三个点(xk,yk),只要向量ik和ij方向不同即可

只要(xj-xi,yj-yi) 和 (xk-xi,yk-yi)化简后不相同即可,用每个点开个map存下一个gcd的pair即可

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define N 2005
  4. map<pair<int,int>,int>mp[N];
  5. pair<int,int>p[N];
  6. int n;
  7. int main(){
  8. cin>>n;
  9. for(int i=;i<=n;i++){
  10. int x,y;
  11. scanf("%d%d",&x,&y);
  12. p[i]=make_pair(x,y);
  13. }
  14. for(int i=;i<=n;i++)
  15. for(int j=;j<=n;j++)if(i!=j){
  16. int dx=p[j].first-p[i].first;
  17. int dy=p[j].second-p[i].second;
  18. if(dx==||dy==){
  19. if(dx)dx=;if(dy)dy=;
  20. mp[i][make_pair(dx,dy)]++;
  21. }
  22. else {
  23. int d=__gcd(dx,dy);
  24. mp[i][make_pair(dx/d,dy/d)]++;
  25. }
  26. }
  27. long long ans=;
  28. for(int i=;i<=n;i++)
  29. for(int j=;j<=n;j++)if(i!=j){
  30. int dx=p[j].first-p[i].first;
  31. int dy=p[j].second-p[i].second;
  32. if(dx==||dy==){
  33. if(dx==){
  34. dy=;
  35. ans+=n--(mp[i][make_pair(dx,dy)]-);
  36. }
  37. else{
  38. dx=;
  39. ans+=n--(mp[i][make_pair(dx,dy)]-);
  40. }
  41. }
  42. else {
  43. int d=__gcd(dx,dy);
  44. ans+=n--(mp[i][make_pair(dx/d,dy/d)]-);
  45. }
  46. }
  47. cout<<ans/<<'\n';
  48. }

几何向量gcd+暴力枚举——cf552的更多相关文章

  1. UVA.12716 GCD XOR (暴力枚举 数论GCD)

    UVA.12716 GCD XOR (暴力枚举 数论GCD) 题意分析 题意比较简单,求[1,n]范围内的整数队a,b(a<=b)的个数,使得 gcd(a,b) = a XOR b. 前置技能 ...

  2. こだわり者いろはちゃん / Iroha's Obsession (暴力枚举)

    题目链接:http://abc042.contest.atcoder.jp/tasks/arc058_a Time limit : 2sec / Memory limit : 256MB Score ...

  3. uva10892(暴力枚举)

    把n的所有因子求出来,总数不会太多,所以直接O(n2)的暴力枚举所有对行不行. 有几个细节要注意,详见代码. #include<iostream> #include<cstdio&g ...

  4. 蓝桥杯 2014本科C++ B组 奇怪的分式 暴力枚举

    蓝桥杯 枚举 奇怪的分式 标题:奇怪的分式 上小学的时候,小明经常自己发明新算法.一次,老师出的题目是: 1/4 乘以 8/5 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见图1 ...

  5. Gym 100299C && UVaLive 6582 Magical GCD (暴力+数论)

    题意:给出一个长度在 100 000 以内的正整数序列,大小不超过 10^ 12.求一个连续子序列,使得在所有的连续子序列中, 它们的GCD值乘以它们的长度最大. 析:暴力枚举右端点,然后在枚举左端点 ...

  6. UVa 1642 Magical GCD (暴力+数论)

    题意:给出一个长度在 100 000 以内的正整数序列,大小不超过 10^ 12.求一个连续子序列,使得在所有的连续子序列中, 它们的GCD值乘以它们的长度最大. 析:暴力枚举右端点,然后在枚举左端点 ...

  7. [bzoj1610][Usaco2008 Feb]Line连线游戏_暴力枚举

    Line连线游戏 bzoj-1610 Usaco-2008 Feb 题目大意:Farmer John最近发明了一个游戏,来考验自命不凡的贝茜.游戏开始的时 候,FJ会给贝茜一块画着N (2 <= ...

  8. CodeForces 742B Arpa’s obvious problem and Mehrdad’s terrible solution (暴力枚举)

    题意:求定 n 个数,求有多少对数满足,ai^bi = x. 析:暴力枚举就行,n的复杂度. 代码如下: #pragma comment(linker, "/STACK:1024000000 ...

  9. 2014牡丹江网络赛ZOJPretty Poem(暴力枚举)

    /* 将给定的一个字符串分解成ABABA 或者 ABABCAB的形式! 思路:暴力枚举A, B, C串! */ 1 #include<iostream> #include<cstri ...

随机推荐

  1. 测试demo 配置

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...

  2. boost scope exit

    Boost.ScopeExit provides the macro BOOST_SCOPE_EXIT, which can be used to define something that look ...

  3. 在 MacBook 上安装 Ubuntu

    建立ubuntu 安裝U盤,加入usb port,按住option key 開機,正常安裝. 完成後,會缺少wifi drive sudo apt-get install bcmwl-kernel-s ...

  4. HTML-参考手册: 画布

    ylbtech-HTML-参考手册: 画布 1.返回顶部 1. HTML5 <canvas> 参考手册 描述 HTML5 <canvas> 标签用于绘制图像(通过脚本,通常是 ...

  5. ceph-pg

    版本:mimic https://192.168.1.5:8006/pve-docs/chapter-pveceph.html#pve_ceph_osds As a rule of thumb, fo ...

  6. 项目集成swagger,并暴露指定端点给swagger

    项目集成swagger 一:思考: 1.swagger解决了我们什么问题? 传统开发中,我们在开发完成一个接口后,为了测试我们的接口,我们通常会编写单元测试,以测试我们的接口的可用性,或者用postm ...

  7. spring相关注解

    spring相关注解: 使用之前需要<context:annotation-config/>在配置文件中启用 @Required 应用于类属性的set方法,并且要求该属性必须在xml容器里 ...

  8. linux命令行光标移动技巧

    看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同的滚动.在这里强烈建立适应GUI节目的开发者尝试一下在提示符下面工作.但是事情也不是那么简单,还是需要知道“如何去做” ...

  9. %matplotlib inline 被注释掉后,pycharm不能生成图

    目录 问题描述 解决方案 @ 问题描述 在 jupyter 编译器中 程序的开头,有这么一行 %matplotlib inline import numpy as np import matplotl ...

  10. Rust <2>:函数、方法与注释的格式

    rust 函数定义格式如下: fn function_name(a: i64, b: u32, c: bool) -> (d: f64, e: &str) { ... (1, " ...