忍者ブログ
23 December

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

24 January

SRM605 div2 250,500

問題文

Easy

http://community.topcoder.com/stat?c=problem_statement&pm=12950
文字列Sのうちどこか1文字消すとき何通りの文字列ができるか。

Meidium

http://community.topcoder.com/stat?c=problem_statement&pm=12821

長方形の盤面が黒か白に塗られている。
1行分の色を反転する操作を何回かしたときにできる
最大の正方形の面積を求めよ。


感想

Easy

文字が変わった回数をカウントして、プラス1。

Medium

全探索で間に合うみたいだからごり押し。

Hard

解けません(´・ω・`)



#include<iostream>
#include<string>

using namespace std;

class AlienAndPassword{
public:
	int getNumber(string S){
		int cnt=0;
		for(int i=1;i<S.size();i++){
			if(S[i-1] != S[i]) cnt++;
		}
		return cnt+1;
	}
};


#include<iostream>
#include<string>
#include<vector>
#include<algorithm>

using namespace std;

class AlienAndGame{
public:
	int getNumber(vector<string> board){
		int MAX;
		int ans=1;
		MAX = min(board[0].size(),board.size());
		
		for(int length=1;length<=MAX;length++){
		
		for(int i=0;i<board.size()-length+1;i++){
			for(int j=0;j<board[0].size()-length+1;j++){
			
				int fuga=0;
				
				for(int k=0;k<length;k++){
					int hoge=0;
					for(int l=0;l<length-1;l++){
						if(board[i+k][j+l] == board[i+k][j+l+1])
							hoge++;
					}
					if(hoge+1==length)fuga++;
				}
				if(fuga==length)ans=length;
			}
		}}
		return ans*ans;
	}
};

PR