SRM 511 Div1

今日の1:00からありました。

ox-

250 Zoo

猫と兎のグループがある。各動物に対して、であなたより身長の高いあなたと同じ種類の動物は何匹居ますか?と聞いて、みんな正しく答えてくれる。

答えリストが与えられる。各動物が兎であるか猫であるかは分からない。

それぞれを、猫か兎かどちらかに仮定した場合に、成り立つ場合が何通りあるかを数えろ。

とりあえず猫が何匹いるかを仮定する。(同時に兎の数は{answers.size()-猫の数}で決まる。)

そして匹数をそれぞれ仮定した上で、それが成り立つケースは何通りあるか数える。

変な場合わけは一切していないというかifを使っていないので通ったらしい。

class Zoo {
public:
	long long theCount(vector <int> answers) {
		long long ans = 0;
		map<long long,long long> w;
		for(int i = 0 ; i < answers.size() ; i++){
			w[answers[i]]++;
		}
		for(int cat = 0 ; cat <= answers.size() ; cat++){
			map<ll,ll> m = w;
			long long res = 1;
			for(int i = 0 ; i < cat ; i++){
				res *= m[i]>0?m[i]:0;
				m[i]--;
			}
			for(int i = 0 ; i < answers.size()-cat ; i++){
				res *= m[i]>0?m[i]:0;
				m[i]--;
			}
			ans += res;
		}
		return ans;
	}
};

500 FiveHundredEleven

落ちた。

Fox Ciel と Toastman が以下のゲームを遊んでいる。

1.512未満の整数リストが与えられる。あと0に初期化されたメモリがある。

2.交互に整数を取っていき、{メモリ|=その値}とし更新していく。

3.整数を取れなくなるか、メモリを511にしてしまった方が負け。

適当にdpしたけどやっぱり嘘解法でした・・・。

1000 らいふげーむ?

よんでない。

Challenge

なんか250が落とされまくっている。

500はひとつ明らかにTLEするだろっていうソースがあったけど、下手したら一瞬で終わってしまいそうだったので、慎重になっていたところ取られて悲しくなる。

結局±0Pt.


System Test

250が通って500が落ちる。

Result

ox- 211.53

313位 / 932人 (Room内4位)

12941389(+95)

前落としたのを少し取り戻せた感。


そうそう、そういえば、うちの学校から2人Contestantが増えました。refiuteとdragonexです。うれしいです。