zoukankan      html  css  js  c++  java
  • 三角形

    源代码:
    
    #include<cstdio>
    #include<map>
    #define LL long long
    #define INF 1000000000 using namespace std; map <double,LL> i; //这个STL差不多就是一个反类型数组。 double f[100001]; LL n,Num(0); LL C(LL N,LL M) //排列组合。 { if (N<M) return 0; LL Sum=1; for (LL a=N;a>=N-M+1;a--) Sum*=a; for (LL a=1;a<=M;a++) Sum/=a; return Sum; } int main() { scanf("%lld",&n); //%lld这种东西我不想再见到它。 for (LL a=1;a<=n;a++) { LL A,B,C; //还有LL,you,too。 scanf("%lld%lld%lld",&A,&B,&C); if (!B) i[-INF]++; //i[中]的数(double)表示斜率,i[]存储的数表示斜率相同的边的条数。 else { double T=(double(A)/B)*0.01; //处理精度误差。 if (!i[T]) f[++Num]=T; //不同直线的斜率种类。 i[T]++; } } if (i[-INF]) //特判处理。 f[++Num]=-INF; LL Ans=C(n,3); for (LL a=1;a<=Num;a++) //处理不符合情况的方案。 { LL T=i[f[a]]; Ans-=C(T,3); //三边之重。 Ans-=C(T,2)*(n-T); //两边之重。 } printf("%lld",Ans); return 0; }
  • 相关阅读:
    DataGrid 应用合集
    [转]UBB C#完全版
    IE 7中的快捷键
    DataGrid 单击变色,鼠标经过变色 部分代码
    17种正则表达式
    单无格内强制换行
    图片上传,并自动生成缩略图!
    layout_weight学习心得
    android 手势
    java陷进一
  • 原文地址:https://www.cnblogs.com/Ackermann/p/5997218.html
Copyright © 2011-2022 走看看