zoukankan      html  css  js  c++  java
  • 直角三角形 (Standard IO)

    题意/Description:

           平面上给定N个两两不同的整点,统计以给定的点为顶点,且直角边平行于坐标轴的直角三角形数。

     

    读入/Input

           输入文件right.in第一行为一个整数N。
      以下N行,每行给出一个点的坐标。

     

    输出/Output

           输出文件名为right.out。输出一个整数表示统计结果。

     

    题解/solution

           枚举直角顶点(x,y),设横坐标为x的点有a个,纵坐标为y的点有b个。那么对答案的贡献为(a-1) * (b-1)。a和b可以事先全部统计出来,最后累加统计。

     

    代码/Code

    const
      maxn=137127;
    var
      n,ans:longint;
      a,b,x,y,xnum,dx,ynum,dy:array [0..maxn] of longint;
    function hashx(o:longint):longint;
    var
      i:longint;
    begin
      i:=o mod maxn;
      while (x[i]<>0) and (x[i]<>o) do
        i:=i mod maxn+1;
      exit(i);
    end;
    
    function hashy(o:longint):longint;
    var
      i:longint;
    begin
      i:=o mod maxn;
      while (y[i]<>0) and (y[i]<>o) do
        i:=i mod maxn+1;
      exit(i);
    end;
    
    procedure init;
    var
      i,o,p,numx,numy:longint;
    begin
      readln(n);
      numx:=0; numy:=0;
      for i:=1 to n do
        begin
          readln(a[i],b[i]);
          o:=hashx(b[i]);
          if x[o]<>b[i] then
            begin
              inc(numx);
              xnum[o]:=numx;
              inc(dx[xnum[o]]);
              x[o]:=b[i];
            end else inc(dx[xnum[o]]);
          p:=hashy(a[i]);
          if y[p]<>a[i] then
            begin
              inc(numy);
              ynum[p]:=numy;
              inc(dy[ynum[p]]);
              y[p]:=a[i];
            end else inc(dy[ynum[p]]);
        end;
      ans:=0;
    end;
    
    procedure main;
    var
      i:longint;
    begin
      for i:=1 to n do
        ans:=(dx[xnum[hashx(b[i])]]-1)*(dy[ynum[hashy(a[i])]]-1)+ans;
      write(ans);
    end;
    
    begin
      init;
      main;
    end.
    



  • 相关阅读:
    刚才遇到了关于C#使用外部DLL函数上的char*的问题。
    重新整理过的 《C#编码规范》
    晕,完全晕了。
    Microsoft Visual Studio 2010 支持html5和css3的补丁包
    [mysql] 修改root密码和查看连接数
    Visual Studio统计有效代码行数
    [c#] 邮件附件为中文名的bug
    游戏名词解释
    [SVN] 以下后缀文件不应该提交入库
    [c#] 语言新特性
  • 原文地址:https://www.cnblogs.com/zyx-crying/p/9319619.html
Copyright © 2011-2022 走看看