2013-02-01から1ヶ月間の記事一覧

AOJ 0549 - A Traveler

aoj

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

AOJ 0525 - Osenbei

aoj

ヒント通り,Rの小ささに注目します. 縦の裏返し方は2^R通りです.(各々について裏返すか裏返さないかの2通りがある) 横は裏返した後に,出荷できる煎餅を最大にするようにすればいい. 順番は気にしなくていいのと思ったけど,ある煎餅に対し,表裏を決め…

AOJ 0579 - Hot days

aoj

動的計画法.数をこなしたいなあ. std::absはC++11かららしい. ごっちゃになってました.ご報告ありがとうございます. #include<iostream> int main(){ //Cs[i][0]: min, Cs[i][1]: max, Cs[i][2]: 派手さ //dp[i][j]: i日目に服jを着た時の派手さの最大値 int D, N</iostream>…

AOJ 0578 - Signboard

aoj

lambdaつかって書きやすく,でも見難くなりました. 受けたときより10行減りました. #include<iostream> #include<vector> std::vector<int> findChar(const std::string &str, const char search_c){ std::vector<int> res; for(int pos=0;pos=str.find(search_c, pos), pos!=std::stri</int></int></vector></iostream>…

AOJ 0582 - Triangle Types

aoj

長い. 三角形かは(1辺)>(他の2辺の和)が成り立つか, 鈍角(Obtuse)と鋭角(Acute)は余弦定理を用いて判定した. #include<iostream> #include<cstdio> #include<algorithm> struct Triangle{ int sides[3]; }; bool checkTriangle(const Triangle& t){ for(int i=0;i<3;i++){ if(t.sides[i</algorithm></cstdio></iostream>…

AOJ 0577 - Unique number

aoj

2次元配列さんには失望しました.これからはvectorつかいます. countつかってみた. #include<iostream> #include<algorithm> #include<vector> int main(){ int N, res[200]; std::vector<int> vs[3]; std::cin >> N; for(int i=0;i<N;i++){ for(int j=0;j<3;j++){ int k; std::cin >> k; vs[j].push_back(k); } } for(int i=0;i<200;i++){ res</n;i++){></int></vector></algorithm></iostream>…

AOJ 0576 - Homework

aoj

minとmax...う,頭が. 前書いたコードが汚かったので書き直しました. #include<iostream> int main(){ int L, A, B, C, D, j, m; std::cin >> L >> A >> B >> C >> D; j = A / C + (A % C > 0); m = B / D + (B % D > 0); std::cout << L - std::max(j, m) << std::e</iostream>…

AtCoder #012(oox-)

A, B楽だと思った?残念Cが通りませんでした.Dは無理.A: 書くだけ.スペルミスしそう. #include<iostream> int toInt(std::string day){ if(day == "Monday")return 5; if(day == "Tuesday")return 4; if(day == "Wednesday")return 3; if(day == "Thursday")return </iostream>…

AOJ 0543 - Receipt

aoj

書くだけ #include<iostream> int main(){ int sum; while(std::cin >> sum, sum){ int p; for(int i=9;i--;){ std::cin >> p; sum -= p; } std::cout << sum << std::endl; } } ShortCodingみたいなもの. C++では109byteで妖怪イチオオイ.どこ減らすかとか方針変えるかと</iostream>…

AOJ 0526 - Boat Travel

aoj

その時の運行状況でdijkstra法をつかうだけです. #include<iostream> const int INF = 1 << 24, MAX_N = 101; int n, cost[MAX_N][MAX_N], d[MAX_N], used[MAX_N]; int dijkstra(int s, int g){ for(int i=1;i<=n;i++){ d[i] = INF; used[i] = false; } d[s] = 0; whi</iostream>…

AOJ 0523 - Card Game

aoj

{1からnまでのカード} - {太郎さんのカード} = {花子さんのカード}なので, set_differentがつかえます. 太郎さんと花子さんのターンを両方してから,なくなってしまったか判定しちゃいけないです. 太郎さんがなくなっていたら終わりですと気づくのに少々…

AOJ 0546 - Lining up the cards

aoj

C++11でto_string関数をつかいました. 逆に文字列を数値にする関数はstoi(int型に), stoll(long long型に), stof(float型に), stod(double型に)があります.文字列の重複を調べるのが面倒だったのでmapを使いました. #include<iostream> #include<map> #include<string> int n, k;</string></map></iostream>…

AOJ 0514 - Quality Checking

aoj

通電するとき,電源,モーター,ケーブル全てが正常 通電しないときは,3つの部品のうち2つが正常だとわかっていれば,残る1つが異常. ある2つが正常/異常だとわからなければ,何もわからない.なお,順序によって評価が確定できないことがあるので,n*n回…