Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1004167
  • 博文数量: 150
  • 博客积分: 3017
  • 博客等级: 少校
  • 技术积分: 3829
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-19 14:40
个人简介

Now in Baidu WISE team

文章分类

全部博文(150)

文章存档

2014年(8)

2013年(31)

2012年(111)

分类: Python/Ruby

2012-04-12 15:36:52

Question:



Problem Description
平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数。
比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行)。
 


 

Input
输入数据包含多个测试实例,每个测试实例占一行,每行包含一个正整数n(n<=20),n表示直线的数量.

 
  1. sub f{
  2.  my ($m, $r, $s) = @_;
  3.  my @f = @{$s};
  4.  my @a;
  5.  foreach(@f){
  6.   my $n = ($m-$r)*$r + $_;
  7.   push(@a, $n );
  8.  }
  9.  return @a;
  10. }
  11. my @init2 = (0,1);
  12. my @init1 = (0);
  13. my @init0 = (0);
  14. my %tmphash;
  15. $tmphash{2} = \@init2;
  16. $tmphash{1} = \@init1;
  17. $tmphash{0} = \@init0;
  18. my $i = 3;
  19. while(1){
  20.  print "index is $i\n";
  21.  my @t;
  22.  for(my $r = 0; $r<$i; $r++){
  23.   foreach(f($i, $r, $tmphash{$r})){
  24.    
  25.    push (@t, $_);
  26.   }
  27.  }
  28.  @t = uniq(@t);
  29.  $tmphash{$i} = \@t;
  30.     for(@t){
  31.   print "$_ ";
  32.  }
  33.     print "\ntrack $i finished\n";
  34.  exit if( $i == 20);
  35.  $i++;
  36. }
  37. sub uniq { return sort keys %{{ map { $_ => 4 } @_ }}; }


 

阅读(1933) | 评论(5) | 转发(1) |
给主人留下些什么吧!~~

3783335812012-04-16 22:09:35

博主是用什么软件写的?

认真的鱼1232012-04-15 20:59:40

这个是竞赛的题目吧?

小小小毛驴2012-04-14 12:29:03

楼主用的哪个软件?

图片MM2012-04-13 23:57:48

楼主有没有注释? 本人新手啊~~

夏冰软件2012-04-13 17:05:44

写的不错,支持一下