2010-01-01から1年間の記事一覧

0183-Black-and-White

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0183&lang=jp 問題概要 マルバツゲームの勝利判定。前にもAOJで似たような問題を見た気がするけど思い出せない・・・。考え方 どうせ3x3の大きさしかないし工夫せずに考えられるパター…

0148-Candy and Class Flag

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0148&lang=jp 39で割ったあまりが0ならば39と表示するようにする。 0詰めでの表示はprintfの機能を利用する。 なんとなくショートコーディングに挑戦。実装(C++) #include<cstdio> int n;main()</cstdio>…

0144-Packet Transportation

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0144 2点間の最短距離を求める問題。 2点の間には重みがないので、重みを1としてワーシャルフロイト法で2点間の最短距離を求める。 TTLよりも最短距離が大きかった場合は到達できないの…

0141-Sprial Pattern

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0141 自分の居る座標と移動方向を最初に決めて、 移動方向に2回進んだら壁にぶつかるようなところで右回転。 前回移動後0マスまたは1マスで回転するようなときは終了。'#'と出力すべき…

0133-Rotation of a Pattern

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0133&lang=jp 8x8のパターンを90度・180度・270度回転させる問題。 180度/270度回転は90度回転を複数回行うことで実行可能なので、90度回転のみを考える。 回転行列を考えてやると、回…

0135-Clock Short Hand and Long Hand

AOJ

このままじゃあソースを張るだけになってしまうので、思考の軌跡とかを載せることにする。http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0135 問題文を読んで笑ってしまった。 時刻をh時m分とすると、 短針の角度は360*m/60 長針の角…

0127-Pocket Pager Input

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0127 指示通りに変換するだけ。 もっと長いコメントを書きたい。 #include<iostream> #include<string> using namespace std; char d[4]={'.','?','!',' '}; int main(){ string s,r;int i,o,t,m,n; while</string></iostream>…

0128-Abacus

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0128&lang=jp 単純にシミュレートすれば大丈夫だった。 #include <stdio.h> #include <stdlib.h> int t,k=0; int i,n; int main(){ char m[8][6]; for(i=0;i<5;i++)m[2][i]='='; for(i=0;i<8;i++)m[i][5]='</stdlib.h></stdio.h>…

0189-Convenient Location

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0189 ワーシャルフロイトのアルゴリズム 面倒なのは町の個数が決まっていないことかな。 #define INF 999999 #define MAX_V 20 int V; int d[MAX_V][MAX_V]; int MAP[20]; int MAPcount…

0185-Goldbach's Conjecture II

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0185 篩で全素数をリストアップ nまでのすべての素数に対して加算してnになる素数があるかを調べる。 #define PRIMEMAX 1000001 //この数値未満の素数をすべて求めます bool GetedPrime…

0184-Tsuruga Castle

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0184&lang=jp これで00:13。もっと早くするにはどうすればいいんだろう。 後メモリ876KBは何故だろうか。 そんなに使っていない気がする。 #define MEMCLEAR(variable_d) memset(variab…

117-A Reward for a Carpenter

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0117&lang=jp 実装が楽なワーシャルフロイドのアルゴリズムで解答。 典型問題? #define INF 99999; #define MAX_V 20 int V; int dist[MAX_V][MAX_V]; void warshall_floyd(){ for(int…

0107-Carry a Cheese

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0107 最も2つの辺が短い長方形の対角線の長さをrとすると 2R>rのときにネズミは穴を通ることが出来る。 #include <cstdio> #include <cmath> #include <cstring> #include <cstdlib> #include <climits> #include <cctype> #include <ctime> #incl</ctime></cctype></climits></cstdlib></cstring></cmath></cstdio>…

0106-Discounts of Buckwheat

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0106 全探索でも余裕があるはず。 int minv[51]; void slove(){ for(int i=0;i<26;i++){ for(int j=0;j<18;j++){ for(int k=0;k<11;k++){ if(i*2+j*3+k*5<51){ minv[i*2+j*3+k*5]=min(m…

0105-Book Index

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0105入力データーを構造体に入れてソート typedef struct a { char b[50]; int p; } a; a s[255]; int n, i, k; int cmp(const a *s, const a *t) { k = strcmp(s->b, t->b); if (k) re…

0104-Magic Tile

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0104&lang=jp すでに通ったマスを記録しておく。 同じマスを二度通った場合ループしていることが分かる。 #include <cstdio> char m[102][102];//マップ int main(){ while(1){ int h,w,x,y; sc</cstdio>…

0103-Baseball Simulation

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0103 塁に居る人は必ず連続していることを利用する。 #include <iostream> #include <string> using namespace std; main() { int n,p,r,a; string t; cin >> n; for(int i=0;i<n;i++){ a=0;r=0;p=0; while(a<3){ std::cin >> t; if(t=="HIT"){ r++; if</n;i++){></string></iostream>…

Codeforces #41

A 貪欲法。 もっともb/aの割合が小さくなるものを選び、それをbの合計にかける感じ。 Accepted(458点)B チェスの問題。 どこかで間違えたっぽい・・・。 Wrong AnswerC 嘘解法で提出。 Wrong AnswerD 読んだだけ。提出している人が多かった気がする。E 英文…

1052-Old Bridges

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=1052 貪欲法。とにかく、許容量が少ないものから渡って行く。 n,t,s,i,j,k[999][25]; main() { for(;;){ scanf("%d",&n);if(n==0)break; memset(k,0,99900); for(i=0;i

0203-A New Plan of Aizu Ski Resort

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0203&lang=jp動的計画法。 上からの進入と左右からの進入の場合わけが面倒。 int x,y,M[50][50],D[50][50],i,j,r; main(){ for(;;){ scanf("%d%d",&x,&y); if(x==0)exit(0); for(i=0;i<…

0042-A Thief

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0042解けたことは解けたんだけどメモ化探索の汚いコードになってしまった。 DPに直したい。

0082-Flying Jenny

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0082&lang=jp回転すると計8通りの乗せ方があるのでそれをすべてシミュレートするだけ。 だったのだけど、m=59999*100000;の部分をm=9999999999と書いていたために3度ほどコンパイルエラ…

0070-Combination of Number Sequences

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0070&lang=jp とりあえず全探索で書いたプログラムを動的計画法に。 TLEとMLEとWAの3つに悩まされた問題。 int n; typedef long long int lli; int DP[12][1030][331]; int slove(int k…

SRM 487 Div1

SRM

深夜2時から開催。Div1に参加。Easy 問題文を読み違えていて死亡。 Challenge Succeeded Medium 解いてない OpenedHard チャットでこれから解くことを進められたけど、難しそう。 Unopened Challenge Partで1ミスして総合得点は-25レートは1286⇒1086(-200) o…

0087-Strange Mathematical Expression

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0087&lang=jp演算子が現れたら、その左2つにある数値に対して処理を行うということを繰り返す。なぜかスタックを自前で実装してしまった。 typedef long double ld; ld stackd[600]; i…

0071-Bombs Chain

AOJ

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0071&lang=jp:Title爆発の順番は関係ないので、誘爆した爆弾をスタックかキューに詰めていって解いた。ソースコードは無駄に長いのでHPの方に貼るつもり。

0101-Aizu PR

AOJ

文字列が与えられ、それに含まれるHoshinoをHoshinaに置き換える問題。 正答率が1/3程度だったので何か罠があるのかなぁとか思ったけど、すんなり通った。 int main(){ int n; std::cin >> n;cin.get( ); for(int i=0;i

0150-Twin Prime

AOJ

エラトステネスの篩を用いて2から10000までの素数を求め、 その中で双子素数であるものをリストアップする。 #define PRIMEMAX 10001 bool GetedPrime=false; char Prime[PRIMEMAX]; void EratosthenesSieve(){ if(GetedPrime==true) return; int NeedCount=…

Codeforces #40 (Div2)

A 二つの文字列a,bが与えられたときにaがbの反転と一致するかを調べる問題。 std::reverseを使って解答 Accepted(464点)B 株取引で得られる利益の最大額を求める的な問題。 最初は問題文を取り違えてて、株取引の回数制限があることに気づかなかった。 が、…