PKU

1511 Invitation Cards

PKU

概要 有向グラフが与えられて,エッジにはコストがついている. N頂点あったら,1番の頂点からN人の人をすべての頂点に行き渡るように移動させて, そこから1番に返ってくるような,すべての人についてのコストの和の最小値を答えるという問題. 頂点も辺も…

サブミッションスクリプト

PKU

今更だけどサブミッション用のスクリプトを公開してみる…w submit 1000.cc みたいな感じでコマンドを実行すると,1000にサブミットできるだけという低機能(^p^)↓のrubyスクリプトをpku用のディレクトリに置く http://halwhite.s352.xrea.com/pku.txt ファイ…

3228 Gold Transportation

PKU

概要 100個の町とそれをつなぐ双方向のエッジがいくつかある. すべての町に,発掘された金の量と,金をしまっておける量が設定されている. すべての金をしまえるように,金を移動したい. すべての金の移動パスの中で,一番離れているエッジの長さ,を最小…

2840 Big Clock

なんか簡単な問題 main(m,h){for(gets(&m); ~scanf("%d:%d",&h,&m); m?puts("0"):printf("%d\n",h<13?h+12:h-12));} 89Bgets(&m)とかテキトウなことやってみたら動いたwでもテキトウにやってたんじゃだめだよね… 研究室にあったショートコーディングの本読…

3085 Quick Change

なんかけいたんがゴルフしてたから真似してみる! 初ゴルフです. main(i,c){ for(scanf("%d",&c); ~scanf("%d",&c); printf("%d %d QUARTER(S), %d DIME(S), %d NICKEL(S), %d PENNY(S)\n", i++,c/25,c%25/10,c%25%10/5,c%5));} 146B(改行除く) テストケ…

3243 Clever Y

PKU

概要 x^y == k (mod Z) となるyを求める. 解法 素因数分解と同じで離散対数問題を解くのは大変なんだけど,Hashtableを使うとO(√Z)で計算できるというのを初めて知った. Baby-step Giant-stepアルゴリズムと言うらしい. http://en.wikipedia.org/wiki/Bab…

3108 Horn Clauses

PKU

概要 ホーン節とは,(n1&n2&... => p) という形をした論理式.(niもpも否定がつかない) ホーン節の論理積が与えられ,それを充足するような真理値割り当てを求める. 式の長さは,20000文字以内. 解法 構文解析をして,ホーン節の集合を求める. 右辺に変数…

2458 Rigging the Bovine Election

PKU

概要 5x5のフィールドが与えられて,7つの連続するマスを選ぶ. マスにはHかJが書いてあって,7こ選んだとき,Jの方が多くなる選び方は何とおりあるか. 解法 まず,ダメだった解法は,25C7 = 480700 なので,全部生成して,それが条件を満たしているか,Uni…

2436 Disease Management

PKU

概要 1 乳搾りをすると病原菌が混ざり合うが,Kまでは混ざってもOK. 最大何匹までokか? 解法 DこのうちK個,混ざってもいい病原体を選んで,全部チェック. bit combinationの列挙が役に立った. // bit combination // comb(N, K) int N, K; for(int comb…

3678 Katu Puzzle

PKU

解法 変数がN a op b = c 1 と言う式が1000000個与えられる. これらの式を充足出来るか答える. 解法 2-satになる.

1674 Sorting by Swapping

PKU

概要 n この数列は,1〜nの順列になっている. この数列を,任意の場所との交換だけでソートする. 最低何回交換操作をしないといけないか. 解法 順列になっているので,ある数字がどこにあるか,と言うのがすぐに分かる. そのため,1番目から順番に正しい…

2112 Optimal Milking

PKU

概要 K個の搾乳機とC匹の牛がいる. 搾乳機はそれぞれ,1日につきM匹まで搾乳できる. それぞれの搾乳機と牛のあいだに距離が設定されている. すべての牛を搾乳するために,動かなければいけない牛の距離の,最小値を求める. 解法 ウォーシャルフロイド+2…

1056 IMMEDIATE DECODABILITY

PKU

概要 2進数の符号が与えられる. それらの符号が瞬時符号か答える. 解法 trieとかをつくって,ある符号が他の符号の途中の場所で終わらないか確かめる.

3525 Most Distant Point from the Sea

PKU

概要 n 海岸線から一番遠い点は,海岸線からどれだけ離れているかもとめる. 解法 コンベックスカットという,凸多角形を直線で2つに分ける操作がO(n)でできる. ある直線から距離がd離れた直線は簡単に求められるから,距離に関して2分探索すればいい.

1412 Equals are Equals

PKU

概要 多項式2つが与えられるので,それらが恒等式か判定する. 式は,足し算引き算掛け算,変数のべき乗で,べき乗は10乗まで. 解法 いくつか値の割り当てを試して,いつでも等しい値かチェックするといいが, 10乗とか出てくるので,BigInteger必須. 本当…

3111 K Best

PKU

概要 N個の宝石があって,それぞれに価値v[i],重さw[i]が決められている. この中からK個の宝石を選んで,sum(v[j]) / sum(w[j]) の値を最大化したい. その時の,K個の宝石のidを答える. 1 sum(v), sum(w) 解法 二分探索キター! あるxについて,sum(v[j])…

3523 The Morning after Halloween

PKU

概要 お化けが3体いて,1ターンに各お化けは高々1マス動く. また,お化けは3体同時に動く. お化け同士が同じマスになったり,入れ違いになってはいけない. 必ずゴールに動かす方法があるので,最短手数を答える. マップは16x16,お化けは3体まで. …

1703 Find them, Catch them

概要 クエリーが来て,動的に2部グラフを構築,ある時点での2つgangの色の関係を答えるという操作を繰り返す問題. 点が100000,クエリーが10000くる. 解法 解法は,UnionFindに,各点の色をつけて,経路圧縮とunion時に,色の計算を行う. でも,いまいち…

2911 Simplified λ-evaluations

PKU

概要 ラムダ式を簡約して,最簡な式に変形する問題. 解法 構文解析が書き終わって,それからどうしよう…と思って,環境とか持たせてevalとかしてみたけどうまくいかず,問題をよく見ると,簡約の仕方のルールがちゃんと書いてあるというw 僕の解法は,Expr…

3524 Bug Hunt

PKU

概要 配列の宣言、参照、自然数の代入のみができるプログラムが与えられる。 実行したときに、配列の範囲外アクセスまたは未定義値の参照が最初に起こる行番号を調べる。 プログラムは1000行まで、添字は2^31-1まで。 解法 構文解析。 添字の範囲は大きいけ…

3522 Slim Span

PKU

概要 全域木のslimnessを、その木の中の一番重い辺と一番軽い辺の差と定義する。 単純無向グラフが与えられるので、slimnessが一番小さい全域木を求める。 点の数はN=100個まで、辺はM=N(N-1)/2まで。 解法 辺を重さでソートして、あとはO(M^2)くらい全域木…

3727 Newton’s Method

PKU

概要 方程式が与えられ、ニュートン法で解を求めたい。 与えられた初期値から、何回ニュートン法の反復を行うと解が得られるか求める。 1000回繰り返しても解が得られないとは、ダメって出す。 解法 構文解析してやるだけなのだけれど、なぜかWAを出しまくっ…

2002 Squares

PKU

概要 2次元平面上に点が1000個ある。 このなかに、正方形がいくつあるか数える。 座標は整数、2点間の距離は20000以下。 解法 点をpairとかに入れて、ソートする。 つぎに、点を2つ選ぶと残りの2点の座標を決められるから、それが与えられた点の中にあるか探…

3093 Margaritas on the River Walk

PKU

概要 V種類のアイテムの金額と、予算Dが与えられる。 D以内で購入できるアイテムの組み合わせが何通りあるか。 ただし、ある組み合わせにおいて、他にも予算内で買えるアイテムがあった場合、それを買わないといけない。 1 解法 DP…が苦手なのでメモ化再帰… …

3090 Visible Lattice Points

PKU

概要 1 0 テストケースは1000個。 解法 (0,0)から見えるかどうかは、(x,y)について、gcd(x,y)==1かどうかで調べられる。 N=1からN=1000まで1ずつフィールドを広げていって、見える点の数を前もって計算する。 O(N^2logN)くらい? たぶんもっとうまいやり方が…

3250 Bad Hair Day

PKU

概要 N匹牛がいて、それぞれ身長が与えられている。 ある牛について、自分よりインデックスが大きな範囲で、自分の背より高い牛が現れるまでの範囲の牛が見える。 すべての牛について、各牛から見える牛の数の合計を計算するという問題。 1 解法 Range Maxim…

2010 Moo University - Financial Aid

PKU

やっととけた〜 今年の占い問題らしい。 概要 C匹の牛がいて、それぞれscoreとaidという値を持っている。 N(奇数)匹の牛を選んで、その中のscoreのmedianを最大化したい。 ただし、N匹の牛のaidの合計はF以下でないといけない。 1 解法 median候補を大きい方…

3088 Push Botton Lock

PKU

概要 1〜Bまでのボタンがある。 1つ以上のボタンを同時に押すことを組み合わせという。 ここで、組み合わせの並びを考える。 組み合わせの並びは、1回以上同じボタンを押してはいけない、押さないボタンが有ってもいい、1つ以上の組み合わせを使っている、…

3087 Shuffle'm Up

PKU

概要 同じ枚数Cのカードの山が与えられて、片方のカードの山ともう片方のカードの山をカードが交互になるようにシャッフルする操作を繰り返し、目標のカードの並びを得るためのシャッフル回数を答える問題。なんかいシャッフルしてもダメなら、-1を出力する…

2386 Lake Counting

PKU

概要 池の数を数える問題。 解法 flood fill http://acm.pku.edu.cn/JudgeOnline/problem?id=2386