Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65320
  • 博文数量: 115
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-08 19:09
文章分类
文章存档

2015年(115)

我的朋友

分类: Python/Ruby

2015-08-06 16:52:27

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 } @_ }}; }


 

阅读(566) | 评论(0) | 转发(0) |
0

上一篇:[ACM] Bone collector(01背包问题)

下一篇:没有了

给主人留下些什么吧!~~