2012-06-01
hatenablog
はてなダイアリーからblogに移行しました。
今後は以下のブログで書きます。
http://henteko07.hatenablog.com/
2012-03-07
SRM536 Div2
レーティングが-102された。
けど気にしないもん……
250 (int h = tmp % 2;忘れて50分くらいかかった)
int hoge(int n,int count,int d) {
if(d == 0) { return 1; }
if(d-1 == count) { return n;}
return n * hoge(n,count+1,d);
}
int countRoots(vector <int> a) {
int result = 0;
if(a.size() == 1) {
return 0;
}
for(int i = 0;i < 2;i++) {
int tmp = 0;
for(int j=0;j<a.size();j++) {
tmp += a[j] * hoge(i,0,j);
}
int h = tmp % 2;
if(h == 0) {
result++;
}
}
return result;
}
500(本番解けなかった)
int minimumFaces(vector <string> rolls) {
int result = 0;
for(int i = 0;i < rolls.size();i++ ) {
sort(rolls[i].begin(),rolls[i].end());
}
for(int i=0;i < rolls[0].size();i++) {
int min_max = 0;
for(int j=0;j < rolls.size();j++) {
if(rolls[j][i] - 48 > min_max) min_max = rolls[j][i] - 48;
}
result += min_max;
}
return result;
}
2012-03-01
SICP(計算機プログラムの構造と解釈)を買ったのでMac10.6.8にGaucheをインストール
SICP(計算機プログラムの構造と解釈)を買ったのでMac10.6.8にGaucheをインストールしました。
amazon(http://www.amazon.co.jp/exec/obidos/ASIN/489471163X/)
始めはmakeとかでコンパイルしようかと思いましたが、何やらsqrtが使えない状況になったのでmacportsでインストールしました。
以下コマンド
インストール
$ sudo port install gauche
実行
$ gosh
goshの終了方法
gosh > (exit)
簡単だね!!
追記:Mac OS X 10.7.2でも同様で確認
2012-02-10
SRM532 Div2 600
本番で解けなかった600問題を解いた。
#line 5 "DengklekMakingChains.cpp"
#include <string>
#include <vector>
#include <sstream>
#include <iostream>
#include <algorithm>
using namespace std;
class DengklekMakingChains {
public:
int maxBeauty(vector <string> chains) {
int full_max = 0,single_max = 0,side_max = 0;
vector<string> side;
bool flag = true;
for (int i=0; i < chains.size(); i++) {
if (chains[i][0] != '.' && chains[i][1] != '.' && chains[i][2] != '.') {
int max = (int)(chains[i][0] - '0') + (int)(chains[i][1] - '0') + (int)(chains[i][2] - '0');
full_max += max;
}else if (chains[i][0] == '.' && chains[i][1] != '.' && chains[i][2] == '.') {
int single = (int)(chains[i][1] - '0');
if(single_max < single) {
single_max = single;
}
}else if (chains[i][0] != '.' || chains[i][2] != '.') {
side.push_back(chains[i]);
flag = false;
}
}
if (flag) {
return max(single_max,(side_max + full_max));
}
if(side.size() == 1) {
vector<int> num;
num.push_back(0);
int count = 0;
for (int n=0; n < side[0].size(); n++) {
if (side[0][n] != '.') {
num[count] += (int)(side[0][n] - '0');
}else {
count++;
num.push_back(0);
}
}
vector<int>::iterator it = max_element( num.begin(), num.end() );
if (side_max < *it) {
side_max = *it;
}
return max(single_max,(side_max + full_max));
}
for (int i=0; i < side.size() - 1; i++) {
for (int j=i+1; j < side.size(); j++) {
for (int k=0; k < 2; k++) {
string join = "";
if (k == 0) {
join = side[i] + side[j];
}else {
join = side[j] + side[i];
}
vector<int> num;
num.push_back(0);
int count = 0;
for (int n=0; n < join.size(); n++) {
if (join[n] != '.') {
num[count] += (int)(join[n] - '0');
}else {
count++;
num.push_back(0);
}
}
vector<int>::iterator it = max_element( num.begin(), num.end() );
if (side_max < *it) {
side_max = *it;
}
}
}
}
return max(single_max,(side_max + full_max));
}
};
Black and White boardが総インストール1万超えました!!
Android専用アプリとしてマーケットにて公開中の、
Black and White boardの総インストール数が1万超えました!!
インストールしてくださった皆様、ありがとうございます。
これからも開発の方を進めていきたいと思っております。
https://market.android.com/details?id=com.henteko.teres.android.BaWboard
2012-02-09
SRMの為にメモ
今回、SRM532に挑戦してみた結果、文字列を整数に直したり逆をするのに手こずりました。
ですのでそれをまとめて置きたいと思います。
ちなみに、まだXcode3を使っているので次回までにXcode4にしたいと思います。
stringからintへ変換
int num = (int) string_hoge - '0';
intからstringへ変換
int sum = 5; stringstream ss; ss << sum; string s = ss.str();
string s = "hoge"; const char* p_str; p_str = s.c_str(); char* c = *p_str;
//2012/3/7追記
charからint
int n = c - 48;
vectorのsort
//charもsortできるよ!!!!!!!!!(SRM536Div2 500問題より) sort(data.begin(),data.end());
TopCoder SRM532 Div2
TopCoder SRMに初挑戦してみました。
解けた問題はDvi2の250問題です。
Easy問題って言うのかな?
結果は177点くらいとって、レーティング845の灰色です。
次は緑に昇格できるよう、がんばります。
とりあえずソースコード
// BEGIN CUT HERE
// END CUT HERE
#line 5 "DengklekTryingToSleep.cpp"
#include <string>
#include <vector>
#include <sstream>
#include <iostream>
using namespace std;
class DengklekTryingToSleep {
public:
int minDucks(vector <int> ducks) {
//sortする
sort(ducks.begin(), ducks.end());
int min = ducks[0];
int max = ducks[ducks.size() - 1];
int count_row = 0;
int count = 0;
for (int i=min; i <= max; i++) {
if (i == ducks[count_row]) {
count_row++;
}else {
count++;
}
}
return count;
}
// BEGIN CUT HERE
public:
void run_test(int Case) { if ((Case == -1) || (Case == 0)) test_case_0(); if ((Case == -1) || (Case == 1)) test_case_1(); if ((Case == -1) || (Case == 2)) test_case_2(); if ((Case == -1) || (Case == 3)) test_case_3(); if ((Case == -1) || (Case == 4)) test_case_4(); }
private:
template <typename T> string print_array(const vector<T> &V) { ostringstream os; os << "{ "; for (typename vector<T>::const_iterator iter = V.begin(); iter != V.end(); ++iter) os << '\"' << *iter << "\","; os << " }"; return os.str(); }
void verify_case(int Case, const int &Expected, const int &Received) { cerr << "Test Case #" << Case << "..."; if (Expected == Received) cerr << "PASSED" << endl; else { cerr << "FAILED" << endl; cerr << "\tExpected: \"" << Expected << '\"' << endl; cerr << "\tReceived: \"" << Received << '\"' << endl; } }
void test_case_0() { int Arr0[] = {5, 3, 2}; vector <int> Arg0(Arr0, Arr0 + (sizeof(Arr0) / sizeof(Arr0[0]))); int Arg1 = 1; verify_case(0, Arg1, minDucks(Arg0)); }
void test_case_1() { int Arr0[] = {58}; vector <int> Arg0(Arr0, Arr0 + (sizeof(Arr0) / sizeof(Arr0[0]))); int Arg1 = 0; verify_case(1, Arg1, minDucks(Arg0)); }
void test_case_2() { int Arr0[] = {9, 3, 6, 4}; vector <int> Arg0(Arr0, Arr0 + (sizeof(Arr0) / sizeof(Arr0[0]))); int Arg1 = 3; verify_case(2, Arg1, minDucks(Arg0)); }
void test_case_3() { int Arr0[] = {7, 4, 77, 47, 74, 44}; vector <int> Arg0(Arr0, Arr0 + (sizeof(Arr0) / sizeof(Arr0[0]))); int Arg1 = 68; verify_case(3, Arg1, minDucks(Arg0)); }
void test_case_4() { int Arr0[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; vector <int> Arg0(Arr0, Arr0 + (sizeof(Arr0) / sizeof(Arr0[0]))); int Arg1 = 0; verify_case(4, Arg1, minDucks(Arg0)); }
// END CUT HERE
};
// BEGIN CUT HERE
int main() {
DengklekTryingToSleep ___test;
___test.run_test(-1);
}
// END CUT HERE

