E - Daxia like acute triangle 【组合数】
半径为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 【组合数】相关推荐
- FZU 2242 - Daxia like acute triangle
Problem 2242 Daxia like acute triangle Accept: 26 Submit: 99 Time Limit: 1000 mSec Memory Lim ...
- FZU 2242 Daxia like acute triangle
半径为r的圆上有n个不重复的点,请你帮daxia计算这些点能构成多少个不同的锐角三角形. Input 测试包含多组数据,每组数据第一行包含两个整数:n(1<=n<=20000),r(1&l ...
- FOJ有奖月赛-2016年8月(daxia专场之过四题方有奖)
6/7 这里简单写个题解,由于源代码无法查看,所以过了的题目的代码就不贴了.... 题A Problem A Daxia & Wzc's problem 题意:略 题解:这个东西显然推公式,最 ...
- HUST 1555 A Math Homework
1555 - A Math Homework 时间限制:1秒 内存限制:128兆 338 次提交 131 次通过 题目描述 QKL is a poor and busy guy, and he was ...
- 三角形分类(洛谷P5717题题解,Java语言描述)
题目要求 P5717题目链接 分析 要明确各个条件之间的关系! 首先是要看是不是三角形,如果不是就不用也不能进行下面的判断,这是必须注意的. 判据是:三角形两边之和大于第三边. 接下来要通过三角形的三 ...
- 【入门2】分支结构 (今天刷洛谷了嘛)
[60天计划] 刷洛谷(题单广场) and Acwing算法基础课 P5710 [深基3.例2]数的性质 #include<iostream> #include<algorithm& ...
- 牛客 —— 湖南大学第十六届程序设计竞赛(重现赛)
文章目录 A Triangles B Yuki with emofunc and playf D Queuing F Team G Binbin's string I Binbin and Balls ...
- 菁英班OJ赛2022-2-24(第一周)
题目链接 目录 文章目录 目录 一.硬币塔 二.判断三角形 三.星图 四.非常大的N 五.两条线段 一.硬币塔 题目: 思路:预处理出每一级的总金币数,和每一级的规模.按照递归的思想进行dfs. 注意 ...
- p5727深基5.例3冰雹猜想c语言,深基
欸嘿,典型的求解第k小的数的问题 算法中使用了快速排序 关键之处在于原本快排需要两边都进行排序,但现在我们只关心第k小的数,所以,如果在ll比k大那么就排左半边,比k小就比右半边,从而实现时间复杂度的 ...
最新文章
- 计算机组成微程序设计,计算机组成原理微程序设计.doc
- 使用 Electron 从协议处理器启动应用程序
- 在win8上配置网站服务器,win8怎么配置web服务器地址
- 一周要闻:为什么从百度离职,程序员五件事.......
- EasyUI加载外部页面需要使用html片段
- Java代码输出到txt文件(申请专利贴源码的必备利器)
- bytecode java_Java 字节码解读
- 邓公数据结构C++语言版学习笔记1
- XGB的python实现
- matlab 切割图像像素,matlab – 使用图形切割与种子点的图像分割
- python prettytable格式设置_Python prettytable模
- Removing Nesting By Returning Early
- EF学习笔记-2 EF之支持复杂类型的实现
- 4.凤凰架构:构建可靠的大型分布式系统 --- 透明多级分流系统
- matlab中princ,基于MATLAB_SIMLINK的Turbo交织器的仿真实现
- 小米 win10 android 双系统,PC平板二合一 运行win10/安卓双系统
- 微信小程序之二级联动下拉列表
- 新版火狐 拖 功能_Firefox 33的新功能
- 破解SQLyog 30天试用
- 为什么你喜欢的妹子对你不感兴趣,该怎么破解?
热门文章
- 图片加水印转网络图片(COS)
- 使用Go语言编写区块链P2P网络(译)
- 可以做技术,切不可沉湎于技术。千万不可一门心思钻研技术!(转)
- Electron开发跨平台桌面应用
- linux apk 拆分 odex,android平台下,apk、jar、dex、odex、vdex、art文件相互转换,编译和反编译...
- Outlook-收件箱修复工具Inbox Repair tool (Scanpst.exe)
- AI开发第五课 python刷博客流量-2
- 数据存储需求骤变,联想凌拓多招齐发推动数以致用
- mtu蓝牙_一分钟读懂低功耗蓝牙(BLE)MTU交换数据包
- html自动裁剪图片宽度,html中如何让图片按比例响应式缩放、并自动裁剪的css技巧...