Codeforces 552D Vanya and Triangles
来源:互联网 发布:乐乎的图片怎么保存 编辑:程序博客网 时间:2024/05/16 14:18
Vanya got bored and he painted n distinct points on the plane. After that he connected all the points pairwise and saw that as a result many triangles were formed with vertices in the painted points. He asks you to count the number of the formed triangles with the non-zero area.
Input
The first line contains integer n (1 ≤ n ≤ 2000) — the number of the points painted on the plane.
Next n lines contain two integers each xi, yi ( - 100 ≤ xi, yi ≤ 100) — the coordinates of the i-th point. It is guaranteed that no two given points coincide.
Output
In the first line print an integer — the number of triangles with the non-zero area among the painted points.
Sample test(s)
Input
40 01 12 02 2
Output
3
Input
30 01 12 0
Output
1
Input
11 1
Output
0
解题思路:一开始还在想怎么去优化统计的方法,结果越做越乱,到最后直接来了一发暴力统计,1300+ms,我现在很想知道CF那个49ms是怎么整的,代码我实在是没看懂。
#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <string>#include <vector>#include <deque>#include <queue>#include <stack>#include <map>#include <set>#include <utility>#include <algorithm>#include <functional>using namespace std;typedef long long ll;const int maxn = 210;vector<int> G[maxn];int main() { int n, x, y; ll ans = 0; scanf("%d", &n); for(int i = 0; i < n; ++i) { scanf("%d %d", &x, &y); G[x+100].push_back(y+100); } for(int i = 0; i <= 200; ++i) { int size = G[i].size(); if(size == 0) continue; if(size > 1) { ans += 1LL*size*(size-1)/2*(n-size); } for(int j = i + 1; j <= 200; ++j) { if(G[j].size() == 0) continue; for(int k = j + 1; k <= 200; ++k) { if(G[k].size() == 0) continue; for(int s1 = 0; s1 < (int)G[i].size(); ++s1) { for(int s2 = 0; s2 < (int)G[j].size(); ++s2) { for(int s3 = 0; s3 < (int)G[k].size(); ++s3) { if((G[k][s3]-G[j][s2])*(j-i)==(G[j][s2]-G[i][s1])*(k-j)) continue; ans++; } } } } } } cout << ans << endl; return 0;}
0 0
- Codeforces 552D Vanya and Triangles
- CodeForces 552D Vanya and Triangles
- 【25.33%】【codeforces 552D】Vanya and Triangles
- CodeForces 552D — Vanya and Triangles 暴力枚举
- Codeforces 552D. Vanya and Triangles【向量判三点共线】
- Codeforces 552D Vanya and Triangles【暴力枚举+思维】
- codeforces #308 D.Vanya and Triangles(枚举+斜率分块)
- D. Vanya and Triangles(Codeforces Round #308 (Div. 2))
- Codeforces Round #308 (Div. 2) D. Vanya and Triangles
- Codeforces Round #308 (Div. 2) D Vanya and Triangles
- CodeForces 552D-Vanya and Triangles【计算整数三点能否组成三角形】
- CodeForces - 552D Vanya and Triangles (数学几何求三角形个数)水
- Codeforce 552D Vanya and Triangles(暴力枚举)
- #308 (div.2) D. Vanya and Triangles
- cf #308 D. Vanya and Triangles (几何)
- Codeforces Round #308 (Div. 2) D. Vanya and Triangles (判断三角形数量)
- 552D Vanya and Triangles (求任意三点组成的三角形个数)
- CodeForces 492D Vanya and Computer Game
- 【转】unity5 animation 如何实现pingpong效果
- LR经典面试题
- cuda并行编程之求解ConjugateGradient(共轭梯度迭代)丢失dll解决方案
- Spring注解@Component、@Repository、@Service、@Controller区别
- SOAP详解
- Codeforces 552D Vanya and Triangles
- 大自然的分形几何--中文翻译(一)
- 互联网思维思考与学习(1)
- python 中文编码问题 文件
- Codeforces 552E Vanya and Brackets
- [leetcode] Validate Binary Search Tree
- Service-Oriented Architecture,SOA
- Oracle sequence cache简析
- 三角形