10/2 PKU
3012 A Number from Yanghui Triangle
パスカルの三角形上の数値を、桁揃えの0を入れた上で並べたものをMで割った余りを求めよ。
(10K+1)N mod Mを求めるだけ。
3213 PM3
行列A,B,Cがある。Cは、計算機がA*Bを計算した値である。しかし、計算機はたまに計算ミスをするので、Cが間違っているかもしれない。計算ミスをするときは、必ず1箇所だけ間違える。Cが正しいかどうかと、間違っていれば誤りを指摘せよ。
AはN*P、BはP*M、CはN*Mの行列である。Xを適当に作ったM*1の行列とすると、A*B*XはA*(B*X)として計算できる。C*Xも計算できる。答えとしてともにN*1の行列が生じるが、A*(B*X)とC*Xで違う箇所があるならそれはCのその行に誤りがあるからであるとわかる。A*B≠CなのにA*(B*X)=C*Xとなる確率は極めて低い(乱択アルゴリズム)。
同様に、Yを1*Nの行列として、Y*A*BとY*Cを比べると、Cの誤りの存在する列がわかる。
誤りの位置がわかったら、その位置だけ正しい値を計算してやればよい。
1694 An Old Stone Game
木構造の上でゲームをする。まずK個の石をバケットに入れておく。木構造の葉ノードにはいつでもバケットから石を持ってくることができる。子を持つノードは、すべての直接の子に石が置いてある時、それらをバケットに戻して、そのノードに石を置くことができる。根に石を置けば勝ちである。勝てるような最小のKを求めよ。
木DP
3978 Primes
[A,B]に含まれる素数の数を数えるだけの問題。自明