class Coins {
private $matrix = array();
private $count = 0;
private function compute($n) {
if (!isset($this->matrix[$n])) {
$this->count++;
if ($n >= 0 && $n < 12) {
$this->matrix[$n] = $n;
} else {
$a = $n >> 1;
$b = floor($n/3);
$c = $n >> 2;
$this->matrix[$a] = !isset($this->matrix[$a]) ? $this->compute($a) : $this->matrix[$a];
$this->matrix[$b] = !isset($this->matrix[$b]) ? $this->compute($b) : $this->matrix[$b];
$this->matrix[$c] = !isset($this->matrix[$c]) ? $this->compute($c) : $this->matrix[$c];
$this->matrix[$n] = max(($this->matrix[$a] + $this->matrix[$b] + $this->matrix[$c]), $n);
}
}
return $this->matrix[$n];
}
public function init() {
$tests = stream_get_line(STDIN, 10000000000, PHP_EOL);
for ($i=0; $i
$n = stream_get_line(STDIN, 20000000000, PHP_EOL);
echo $this->compute($n) . PHP_EOL;
}
}
}
$lps = new Coins();
$lps->init();
?>
问题是这个任务的spoj上的WA(错误答案)状态,我不明白为什么会发生这种情况 .
第二件事我设置内存限制与spoj任务相同,就我测试而言,它似乎不是内存分配的问题,也不是整数溢出 . 你可以在spoj上测试代码并给我一些可能出错的想法