tozangezan's diary

勝手にソースコードをコピペして利用しないでください。

SRM 487 Div1

hos回。nodchipさんと同部屋。target・赤・黄色多すぎて(合計14人)あせる

250:BunnyComputer

ウサギが紙とコンピュータで計算する。コンピュータは一個しかない。いろいろルールがあるけど、何かを最大化する。
DPらしい。気がつかない。
oxxxoxxxoxxxoxxxo
xoxxxoxxxoxxxoxxx
xxoxxxoxxxoxxxoxx
xxxoxxxoxxxoxxxox

こんな感じに分ける(連続するxの個数はk+1個)
各列について、oが偶数なら全部コストを足し、奇数個なら面倒な処理をする
(最小のコストのものだけを引くのだが、o|oooのように分けてはいけない)
Submit.遅い

public class BunnyComputer{
	public int getMaximum(int []a,int b){
		int ret=0;
		int val[]=new int[b+1];
		int sum[]=new int[b+1];
		int min[]=new int[b+1];
		for(int i=0;i<b+1;i++){
			min[i]=99999999;
			int now=0;
			for(int j=0;j<a.length;j++){
				if(j%(b+1)==i){
					if(j/(b+1)%2==0)min[i]=Math.min(min[i],a[j]);
					sum[i]+=a[j];
					val[i]++;
				}
			}
			System.out.println(sum[i]+" "+val[i]+" "+min[i]);
		}
		//int ret=0;
		for(int i=0;i<b+1;i++){
			if(val[i]%2==0){
				ret+=sum[i];
				System.out.println(sum[i]);
			}
			else{
				ret+=sum[i]-min[i];
				System.out.println(sum[i]-min[i]);
			}
		}
		return Math.max(0,ret);
	}
}

550:BunnyExamination
知らん
950:BunnyGenda
数列をつかって源田にお仕置きする。しらない。

ChallengePhase
550が落ちやすいらしいけど解いてないから分からないし、部屋のレベルが高すぎて250は落とすほどじゃない。

SystemTest
通った
oxx 174.1pt 240th 1350 -> 1443

きいろくなりたいです