AOJ 0287 - Jinkoki

多倍長書くだけ. 最初に 以下の文字列をコピペするといいかも.(問題文からコピペできるといいなあ) const std::string units[] = { "", "Man", "Oku", "Cho", "Kei", "Gai", "Jo", "Jou", "Ko", "Kan", "Sei", "Sai", "Gok", "Ggs", "Asg", "Nyt", "Fks", …

AOJ 0286 - Computation of Salary

やるだけやなあと思ったら,範囲外参照. 解法 記録の数が50,000件以下なので,記録についてループを書けばいい. コード S,T,Eのサイズを50,000にすると,範囲外参照でWAが生えます.ナニソレイミワカンナイ. #include <cstdio> #include <cstring> int main(){ int N, M; scanf("%d </cstring></cstdio>…

AOJ 0285 - Tennis

やるだけ. 解法 言われたとおりに書く.再帰で書くときはAを優先することに注意する. あとは慈愛で通りそう. コード #include <iostream> int J, Y; void rec(int j, int y, std::string s){ if(j == J && y == Y){ std::cout << s << std::endl; return; } if(j ==</iostream>…

AOJ 0090 - Overlaps of Seals

Volume 0がついに残り1問(Blur).

AOJ 0300 - Floppy Cube

やるだけだけど,真ん中回転できないとかそんなん考慮しとらんよ. 解法 言われたとおりに書く.回転方法は4通りしかなく,高々8回で終わると書いてあるので,全探索で十分. コード #include <cstdio> #include <algorithm> int replacement[4][2][5] = { {{1, 2, 3, 15, 19}, </algorithm></cstdio>…

AOJ 0299 - Railroad II

春休みに入ったので,記録のために解いた問題について書くことにしました.予選時にも解いたけど,のびきったスパゲッティレベルにひどかったので書き直し. ずいぶん短くなった.やっぱり循環するのは苦手です. #include <cstdio> #include <algorithm> int N, M, p; int d[30</algorithm></cstdio>…

JOI2014/2015予選 不参加記

予選前日まで登録できるだろうと思ってたら終わってました.なので,ゆるふわに深夜からやってました. 練習のためにそれぞれ Factor Lisp Haskell Java C C++ で解こうと思ってましたがダメでした.以下,残念なコード群です. 1問目 (Factor) 1時間ぐらい…

回数の期待値の問題 - YukiCoder #75

確率弱いのです.色々解法があるらしいので理解しなきゃ.E[i]を和がiになってから,和をKにするために振る回数の期待値とします.. このE[i]をF[i]E[0]+G[i]の形にできれば,E[0] = F[0]E[0] + G[0]なので, E[0] = G[0]/(1-F[0]) で答えが出ます. これは…

AOJ 0269 - East Wind

局所的な流行りの風が届いたので解いてみた. やるだけだけど,sin,cos使い慣れてないのでラジアンで1WA. #include <iostream> #include <cstdio> #include <cmath> #include <vector> #include <map> #include <stack> #include <queue> #include <algorithm> #include <set> #include <cstring> #define FOR(i,a,b) for(int i=(a);i<(b)</cstring></set></algorithm></queue></stack></map></vector></cmath></cstdio></iostream>…

AOJ 0544 - Sugoroku

aoj

AtCoderが久しぶりに開かれるそうで,嬉しい限りです. #include<iostream> int main(){ int n, m, mass[1001], action[1001]; while(std::cin >> n >> m, n){ for(int i=1;i<=n;i++){ std::cin >> mass[i]; } for(int i=1;i<=m;i++){ std::cin >> action[i]; } int po</iostream>…

AOJ 0534 - Chain

aoj

JOI予選の3問目は実装するだけだからとか高をくくった結果,2時間30分かかりました.残念. 1ヶ月ぶりだとしても,これはひどいので,お座なりな考える手順を変えることにします.ちなみにChainberはChamberです. #include<iostream> #include<vector> struct Chainber{ int c</vector></iostream>…

AOJ 0520 - Lightest Mobile

aoj

再帰的に紐がつり合う最小の重さを求めていけばいいです. 考えはすぐ(2日目)浮かんだけど凡ミス. 今後,スコープとあとでつかう変数の値を変えていないか確認します. #include<iostream> int gcd(int a, int b){ if(b == 0)return a; return gcd(b, a%b); } struct </iostream>…

AOJ 0568 - Pasta

aoj

典型的なDP問題.O(n)だと思います. #include<iostream> const int MAX_N = 100; //memo[i][j][k]: i日目jをk+1日続けた総数 int memo[MAX_N+1][3][2], plan[MAX_N+1]; void pass(int day, int source){ if(source != -1){ memo[day][source][1] = memo[day-1][source</iostream>…

ARC 001 A問題 (with JavaScript(Node.js))

ほんのちょっとNode.js触れたので,いつもどおりA問題だけ解いた. var fs = require('fs'); var input = fs.readFileSync('/dev/stdin', 'utf-8'), res = [0, 0, 0, 0, 0], res_max, res_min; input = input.split('\n'); var N = parseInt(input[0]); for(…

AOJ 0503 - Cup

aoj

カップたちの状態をトレース(辿っていく)するだけでも時間に間に合う. 最初,出会った状態に印をつけてましたが,MLE.(じゃなくてもTLE) そういえば,前回移動したものを戻しちゃ意味ないよなあ.これで状態に重複なくなると思いました. そしたら,うまく…

AOJ 0589 - Production

aoj

冗長. #include<iostream> #include<vector> #include<algorithm> struct Product{ std::string name; int amount; }; int main(){ std::vector<Product> v; int n; std::cin >> n; for(int i=0;i<n;i++){ std::string name; int amount; std::cin >> name >> amount; auto it = std::find_if(v.begin(), v.end(), [&name](Pr…</n;i++){></product></algorithm></vector></iostream>

AOJ 0058 - Simple Calculator

aoj

かんたんなもんだいばかりといとるなー #include<iostream> int main(){ int res; std::cin >> res; char o; while(std::cin >> o, o != '='){ int n; std::cin >> n; if(o == '+')res += n; else if(o == '-')res -= n; else if(o == '*')res *= n; else if(o == '/')</iostream>…

AOJ 2197 - Sum of Consecutive Integers

aoj

求める数をn, 連続する整数の最小値をm, 連続する個数をkとすると,が成り立つはずです. あとはmが整数となるか調べるだけです. #include<iostream> int main(){ int n; while(std::cin >> n, n){ int res = 0; for(int k=2;k<50;k++){ int child = 2*n - k*k + k; i</iostream>…

AOJ 2018 - Princess's Gamble

aoj

部屋の壁を壊した姫様の力がすごいのか,単に壁が脆いのか. #include<iostream> int main(){ int n, m, p; while(std::cin >> n >> m >> p, n){ int mn, s = 0; for(int i=1;i<=n;i++){ int j; std::cin >> j; if(i == m)mn = j; s += j; } if(mn == 0)std::cout << 0 </iostream>…

AOJ 0256 - Points for a Perfect Scorer

aoj

#include<iostream> int main(){ int i, s = 0; for(int j=0;j<10;j++){ std::cin >> i; s += i; } std::cout << s << std::endl; }</iostream>

AOJ 2272 - Cicada

aoj

5分かかった.北,西に移動しないので{ある地点までの最小の虫} = min({その西までの最小の虫}, {その北までの最小の虫}) + {その地点にいる虫の数}で求まります. あとは再帰的に計算するだけです. #include<iostream> int memo[50][50]; int main(){ int H, W, map[</iostream>…

AOJ 1135 - Ohgas' Fortune

aoj

10分かかった.単利・複利は苦手です. #include<iostream> int first, year, n, type, every; double rate; int calculate(){ int a = first, b = 0; if(type == 0){ for(int i=0;i<year;i++){ b += a * rate; a -= every; } return a + b; } for(int i=0;i<year;i++){ a += a * rate - every; } return a; } int main(){ int m; std::cin >…</year;i++){></iostream>

AOJ 1153 - Equal Total Score

aoj

7分かかりました. #include<iostream> #include<vector> #include<algorithm> int main(){ int n, m; while(std::cin >> n >> m, n){ int s1 = 0, s2 = 0; std::vector<int> v1, v2; for(int i=0;i<n;i++){ int j; std::cin >> j; v1.push_back(j); s1 += j; } for(int i=0;i<m;i++){ int j; std::cin >> j; v2.push_back(j); s2 +…</m;i++){></n;i++){></int></algorithm></vector></iostream>

AOJ 1147 - ICPC Score Totalizer Software

aoj

4分かかりました. #include<iostream> #include<vector> #include<algorithm> int main(){ int n; while(std::cin >> n, n){ std::vector<int> v; for(int i=0;i<n;i++){ int j; std::cin >> j; v.push_back(j); } std::sort(v.begin(), v.end()); int ave = 0; for(int i=1;i</n;i++){></int></algorithm></vector></iostream>

AOJ 0516 - Maximum Sum

aoj

#include<iostream> const int MAX_N = 1 << 18, INF = 1 << 24; class SegmentTree{ public: SegmentTree(int _n){ n = 1; while(n < _n)n *= 2; for(int i=0;i<2*n-1;i++){ data[i] = 0; } } void add(int k, int a){ k += n - 1; data[k] = a; while(k > 0){ k = (k</iostream>…

AOJ 0560 - Planetary Exploration

aoj

久しぶりに番兵法を用いました. 方針はdp[y][x][t]を(y, x')()で地形がtとなる個数とします. すると,(x1, y) (x2, y)間()の地形tの個数はdp[y][x2] - dp[y][x1-1]となります.((1, 1)起点なので負になりません.嬉しいですね) (x1, y1) (x2, y2)間ではyを…

AOJ 1051 - Citation Format

aoj

書くだけ #include<iostream> #include<vector> struct Pages{ int first, last; }; std::vector<Pages> v; void add(int n){ for(int i=0;i</pages></vector></iostream>

AOJ 0268 - Kongo Type

aoj

全体的に疲れる.特に小数の処理が疲れます. 今,短くしています. #include<iostream> #include<algorithm> #include<iomanip> std::string to2(char c16){ if(c16 == '0')return "0000"; if(c16 == '1')return "0001"; if(c16 == '2')return "0010"; if(c16 == '3')return "0011"; if(c1</iomanip></algorithm></iostream>…

AOJ 0266 - Aka-beko and 40 Thieves

aoj

なるべく早く早くって解いたら10分かかりました. そういうのはAtCoderぐらいしか意識してないです.意識してみることにします. #include<iostream> int main(){ char map[26][2]; map[0][0] = 'x'; map[0][1] = 'y'; map['x'-'a'][0] = 'u'; map['x'-'a'][1] = 'z'; </iostream>…

AOJ 0549 - A Traveler

aoj

Segment Tree問題.蟻本読みながらのんびりつくっていました. 何でnじゃ数値でないのかなあと思ってたら,st.n != nですね. MAX_Nの見積りを誤ってました.要素は最上層が1個,次の層が2個,...,最下層(18層目)が2^17個(>100000.無駄にとっています)あり…