半径为r的圆上有n个不重复的点,请你帮daxia计算这些点能构成多少个不同的锐角三角形.

Input
测试包含多组数据,每组数据第一行包含两个整数:n(1<=n<=20000),r(1<=r<=20000).

接下来包含n行,每行包含一个整数x(-r<=x<=r)和一个不等式”y<=0”或”y>=0”.

Output
每组数据输出一行一个整数表示锐角三角形的总个数.

Sample Input
6 2
0 y<=0
1 y<=0
2 y<=0
-2 y>=0
-1 y>=0
0 y>=0
Sample Output
2
Hint
最好避开浮点运算

中文题意就不解释了

一开始的思路:根据上下开两个数组,然后去重,进行组合数取反面。
然而编码能力不过关一直WA,只好照着God 王的码了一发又吃了精度的亏。

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1e5 + 10;
int n, m;
char s[N];struct point
{int x, y;point(int x = 0, int y = 0) :x(x), y(y) {}bool operator<(const point&a)const{return y == a.y ? x*y > a.x*y : y > a.y;}
}a[N];int main()
{while (~scanf("%d%d", &n, &m)){for (int i = 1; i <= n; i++){scanf("%d%s", &a[i].x, s);if (s[1] == '<') a[i].y = -1;elsea[i].y = 1;}sort(a + 1, a + n + 1);long long ans = 1LL * n*(n - 1)*(n - 2) / 6;for (int i = 1; i <= n; i++){if (a[i].y == 1){int r = upper_bound(a + 1, a + n + 1, point(-a[i].x, -a[i].y)) - a - i - 1;ans -= 1LL * r*(r - 1) / 2;}else{int r = upper_bound(a + 1, a + n + 1, point(-a[i].x, -a[i].y)) - a - 1 + n - i;ans -= 1LL * r*(r - 1) / 2;}}cout << ans << endl;}return 0;
}

E - Daxia like acute triangle 【组合数】相关推荐

  1. FZU 2242 - Daxia like acute triangle

     Problem 2242 Daxia like acute triangle Accept: 26    Submit: 99 Time Limit: 1000 mSec    Memory Lim ...

  2. FZU 2242 Daxia like acute triangle

    半径为r的圆上有n个不重复的点,请你帮daxia计算这些点能构成多少个不同的锐角三角形. Input 测试包含多组数据,每组数据第一行包含两个整数:n(1<=n<=20000),r(1&l ...

  3. FOJ有奖月赛-2016年8月(daxia专场之过四题方有奖)

    6/7 这里简单写个题解,由于源代码无法查看,所以过了的题目的代码就不贴了.... 题A Problem A Daxia & Wzc's problem 题意:略 题解:这个东西显然推公式,最 ...

  4. HUST 1555 A Math Homework

    1555 - A Math Homework 时间限制:1秒 内存限制:128兆 338 次提交 131 次通过 题目描述 QKL is a poor and busy guy, and he was ...

  5. 三角形分类(洛谷P5717题题解,Java语言描述)

    题目要求 P5717题目链接 分析 要明确各个条件之间的关系! 首先是要看是不是三角形,如果不是就不用也不能进行下面的判断,这是必须注意的. 判据是:三角形两边之和大于第三边. 接下来要通过三角形的三 ...

  6. 【入门2】分支结构 (今天刷洛谷了嘛)

    [60天计划] 刷洛谷(题单广场) and Acwing算法基础课 P5710 [深基3.例2]数的性质 #include<iostream> #include<algorithm& ...

  7. 牛客 —— 湖南大学第十六届程序设计竞赛(重现赛)

    文章目录 A Triangles B Yuki with emofunc and playf D Queuing F Team G Binbin's string I Binbin and Balls ...

  8. 菁英班OJ赛2022-2-24(第一周)

    题目链接 目录 文章目录 目录 一.硬币塔 二.判断三角形 三.星图 四.非常大的N 五.两条线段 一.硬币塔 题目: 思路:预处理出每一级的总金币数,和每一级的规模.按照递归的思想进行dfs. 注意 ...

  9. p5727深基5.例3冰雹猜想c语言,深基

    欸嘿,典型的求解第k小的数的问题 算法中使用了快速排序 关键之处在于原本快排需要两边都进行排序,但现在我们只关心第k小的数,所以,如果在ll比k大那么就排左半边,比k小就比右半边,从而实现时间复杂度的 ...

最新文章

  1. 计算机组成微程序设计,计算机组成原理微程序设计.doc
  2. 使用 Electron 从协议处理器启动应用程序
  3. 在win8上配置网站服务器,win8怎么配置web服务器地址
  4. 一周要闻:为什么从百度离职,程序员五件事.......
  5. EasyUI加载外部页面需要使用html片段
  6. Java代码输出到txt文件(申请专利贴源码的必备利器)
  7. bytecode java_Java 字节码解读
  8. 邓公数据结构C++语言版学习笔记1
  9. XGB的python实现
  10. matlab 切割图像像素,matlab – 使用图形切割与种子点的图像分割
  11. python prettytable格式设置_Python prettytable模
  12. Removing Nesting By Returning Early
  13. EF学习笔记-2 EF之支持复杂类型的实现
  14. 4.凤凰架构:构建可靠的大型分布式系统 --- 透明多级分流系统
  15. matlab中princ,基于MATLAB_SIMLINK的Turbo交织器的仿真实现
  16. 小米 win10 android 双系统,PC平板二合一 运行win10/安卓双系统
  17. 微信小程序之二级联动下拉列表
  18. 新版火狐 拖 功能_Firefox 33的新功能
  19. 破解SQLyog 30天试用
  20. 为什么你喜欢的妹子对你不感兴趣,该怎么破解?

热门文章

  1. 图片加水印转网络图片(COS)
  2. 使用Go语言编写区块链P2P网络(译)
  3. 可以做技术,切不可沉湎于技术。千万不可一门心思钻研技术!(转)
  4. Electron开发跨平台桌面应用
  5. linux apk 拆分 odex,android平台下,apk、jar、dex、odex、vdex、art文件相互转换,编译和反编译...
  6. Outlook-收件箱修复工具Inbox Repair tool (Scanpst.exe)
  7. AI开发第五课 python刷博客流量-2
  8. 数据存储需求骤变,联想凌拓多招齐发推动数以致用
  9. mtu蓝牙_一分钟读懂低功耗蓝牙(BLE)MTU交换数据包
  10. html自动裁剪图片宽度,html中如何让图片按比例响应式缩放、并自动裁剪的css技巧...