设为首页 加入收藏

TOP

UVa: 1595 - Symmetry
2015-07-20 17:22:19 来源: 作者: 【 】 浏览:4
Tags:UVa: 1595 Symmetry

?

题目描述:给出平面上N(N<=1000)个点。问是否可以找到一条竖线,使得所有点左右对称,如图所示:

\ 则左边的图形有对称轴,右边没有。
思路:如点集存在对称轴,则对称轴为点集x坐标和的平均。然后用set存储每个点(输入点不同),遍历每一个点,通过求得的对称轴,计算它的对称点,若不存在则输出“NO”。
代码如下:
#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include
       #include 
       
         #include 
        
          using namespace std; #define FILE typedef pair
         
           point; int main(int argc, char* argv[]) { #ifdef FILE ifstream in(data.txt); ofstream out(output.txt); cin.rdbuf(in.rdbuf()); cout.rdbuf(out.rdbuf()); #endif int T; cin>>T; for(int i=0;i
          
            data; cin>>n; int sum = 0; for(int j=0;j
           
            >x>>y; sum+=x; data.insert(point(x*n,y)); } bool flag = true; for(set
            
             ::iterator i=data.begin();i!=data.end();i++) { point p = *i; if(data.find(point(2*sum-p.first,p.second))==data.end()) { flag = false; break; } } if(flag==true) { cout<
              
             
            
           
          
         
        
       
     
    
   
  
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇POJ 3177 Redundant Paths(边双联.. 下一篇Codeforces 508D Tanya and Passw..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·怎样用 Python 写一 (2025-12-27 02:49:19)
·如何学习python数据 (2025-12-27 02:49:16)
·想要自学数据分析, (2025-12-27 02:49:14)
·Java 集合框架 - 菜 (2025-12-27 02:19:36)
·Java集合框架最全详 (2025-12-27 02:19:33)