読者です 読者をやめる 読者になる 読者になる

C++競プロ学習日記(仮)

( 学習記録であり解説Blogではないです )

コード

No.7 プライムナンバーゲーム|yukicoder|メモ化再帰

No.7 プライムナンバーゲーム - yukicoder を 1ヶ月半 かけて解きました。 (何故 1ヶ月かかったのかは後述) 題意: ・はじめに先攻プレイヤーに自然数 N が与えられます。 ・N以下の素数のどれかで減算し相手に渡す、を先攻・後攻で交互に繰り返し、 N が 0 …

WUPC2012 A - 招待状|AtCoder

A: 招待状 - WUPC 2012 | AtCoderを解きました。 #include <bits/stdc++.h> using namespace std; struct cww{cww(){ios::sync_with_stdio(false);cin.tie(0);}}star; int main() { vector<int> M{ 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int MM1, DD1, MM2, DD2</int></bits/stdc++.h>…

SRM 602 Div2 Level-1 250:TypoCoderDiv2

SRM 602 div2 250:TypoCoderDiv2 を解きました。題意: TypoCoderには2種類の Rating がある。 Brown ➡︎ 1200以上 Ciel ➡︎ 1200以下 ただし新しい参加者は Rating 500 スタート。 N回分のコンテスト参加後の Rating が与えられるので何回色が変わったかを出…

C++で素数列挙!エラトステネスの篩 編

C++で素数列挙!O( N√N )編 を書きましたが、 今度はもっと高速な エラトステネスの篩(ふるい)編 *1 を書いたのでコードを残します。 #include <bits/stdc++.h> using namespace std; struct cww{cww(){ios::sync_with_stdio(false);cin.tie(0);}}star; int N; //エラトステ</bits/stdc++.h>…

C++で素数列挙!O( N √N )編

以前、C++で素数判定!を書いたのですが、 今回は C++で素数列挙!O( N √N ) のコードを書いたのでメモとして残します。 #include <bits/stdc++.h> using namespace std; struct cww{cww(){ios::sync_with_stdio(false);cin.tie(0);}}star; int N; vector<int> P; void prime( co</int></bits/stdc++.h>…

重複要素チェック

std::vectorに代入された要素が全て同じ値か否かをチェックするコードを、 自分の参照用に記事として残します。 std::set は重複するデータの保持を許さないコンテナ *1 なので、 重複チェックの意味合い的にも適している、( 0 )と( 3 )を使っていこうと思い…

Round#91 A. Lucky Division|Codeforces

Problem - 122A - Codeforcesを解きました。 #include <bits/stdc++.h> #define REP(i,n) for(int i=0; i<(n); i++) using namespace std; struct cww{cww(){ios::sync_with_stdio(false);cin.tie(0);}}star; bool check( int N ){ string S = to_string( N ); REP( i, (int</bits/stdc++.h>…

Switching Railroad Cars|AOJ|stack

stackに慣れる為に車両入れ替え | Aizu Online Judgeを解きました。 #include <bits/stdc++.h> using namespace std; struct cww{cww(){ios::sync_with_stdio(false);cin.tie(0);}}star; int main() { int N; stack<int> st; while( cin >> N ) { if( N == 0 ){ // 0が来たら取り</int></bits/stdc++.h>…

C++ で 桁和

#include <bits/stdc++.h> using namespace std; int digit( int N ) { while( N >= 10 ) { int tmp{}; while( N > 0 ) { tmp += ( N % 10 ); N /= 10; } N = tmp; } return N; } int main() { int N{}; cin >> N; cout << digit( N ) << endl; return 0; } とある問題で桁</bits/stdc++.h>…

No.24 数当てゲーム|yukicoder

No.24 数当てゲーム - yukicoder を解きました。 #include <bits/stdc++.h> #define REP(i,n) for(int i=0; i<(n); i++) using namespace std; struct cww{cww(){ios::sync_with_stdio(false);cin.tie(0);}}star; int main() { int N; cin >> N; vector<int> res( 10, 1 ); REP( </int></bits/stdc++.h>…

ABC007-C 幅優先探索|AtCoder

C: 幅優先探索 - AtCoder Beginner Contest 007 | AtCoder を解きました。 #include <bits/stdc++.h> #define REP(i,n) for(int i=0; i<(n); i++) using namespace std; typedef pair<int, int> PII; struct cww{cww(){ios::sync_with_stdio(false);cin.tie(0);}}star; const int INF </int,></bits/stdc++.h>…

No.3 ビットすごろく|yukicoder|幅優先探索(BFS)

No.3 ビットすごろく - yukicoder を解きました。 #include <bits/stdc++.h> using namespace std; struct cww{cww(){ios::sync_with_stdio(false);cin.tie(0);}}star; const int INF = numeric_limits<int>::max(); int f( int N ) { int count{}; while( N > 0 ) { if( N % 2 =</int></bits/stdc++.h>…

Round #298 A-Exam|Codeforces

Codeforces Round #298 A-Exam を解きました。 #include <bits/stdc++.h> #define REP2(i,x,n) for(int i=x; i<(n); i++) using namespace std; struct CWW{CWW(){ios::sync_with_stdio(false);cin.tie(0);}}cww; int main() { int N; cin >> N; if( N <= 2 ) { cout << 1 <</bits/stdc++.h>…

Round #326 A. Duff and Meat|Codeforces

Problem - A - Codeforces を解きました。 ktnさんに適度な問題をいくつかpick upして頂いたのですがそのうちの1問です。 (適度な問題:私のレベルに対しての適度)Duffちゃんが必要な肉の量/day と コスト/day がN日分与えられるので、 必要な肉を買う最小コ…

再帰④|トリボナッチ数列

#include <bits/stdc++.h> using namespace std; //再帰 - トリボナッチ int trib( int N ) { if( N == 0 || N == 1 )//基底部 { return 0; } else if( N == 2 )//基底部 { return 1; } else //再帰部 { return trib( N - 1 ) + trib( N - 2 ) + trib( N - 3 ); } } int mai</bits/stdc++.h>…

再帰③|フィボナッチ数列

#include <bits/stdc++.h> using namespace std; //再帰 - フィボナッチ int fib( int N ) { if( N == 0 )//基底部 { return 0; } else if( N == 1 )//基底部 { return 1; } else //再帰部 { return ( fib( N - 2 ) + fib( N - 1 ) ); } } int main() { cin.tie(0); ios::sy</bits/stdc++.h>…

再帰②|階乗

#include <bits/stdc++.h> using namespace std; //再帰 - 階乗 int sum( int N ) { if( N == 0 ) //基底部 { return 1; } else //再帰部 { return N * sum( N - 1 ); } } int main() { cin.tie(0); ios::sync_with_stdio(false); int N; cin >> N; cout << sum( N ) << end</bits/stdc++.h>…

再帰①|等差数列の和

#include <bits/stdc++.h> using namespace std; int sum( int N ) { if( N == 0 ) //基底部 { return 0; } else //再帰部 { return sum( N - 1 ) + 1; } } int main() { cin.tie(0); ios::sync_with_stdio(false); int n; cin >> n; cout << sum(n) << endl; return 0; } </bits/stdc++.h>…

No.154 市バス|yukicoder

No.154 市バス - yukicoderを解きました。この問題、文字列の問題を探していて星★★だったし解けるかな〜?みたいな 軽い気持ちで適当に選んだのが全ての始まりでした...(序章)初めはstd::findで文字列を見つけて場合分けすればいけるのでは(?) みたいな感じ…

Round #130 A. Dubstep|Codeforces

Problem - 208A - Codeforcesを解きました。 #include <bits/stdc++.h> using namespace std; int main() { cin.tie(0); ios::sync_with_stdio(false); string S; cin >> S; S = "WUB" + S + "WUB"; regex re( "(WUB)+" ); S = regex_replace( S, re, " " ); cout << S.subs</bits/stdc++.h>…

Round #89 A. String Task|Codeforces

Problem - A - Codeforcesを解きました。 #include <bits/stdc++.h> using namespace std; string f( string S ) { string res; for( auto&& x : S ) { //★ if( string( "oayeui" ).find( x ) != string::npos ) { continue; } res += x; } return res; } int main() { cin.</bits/stdc++.h>…

再帰と分割統治法|アルゴリズムとデータ構造

アルゴリズムとデータ構造 第6章−1「再帰と分割統治法」で階乗コードを書きました。 #include <bits/stdc++.h> #define LL long long #define ULL unsigned long long #define REP(i,n) for(int i=0; i<(n); i++) #define REP2(i,x,n) for(int i=x; i<(n); i++) using names</bits/stdc++.h>…

#65 A. Way Too Long Words|Codeforces

Codeforces Round #65 Problem - A - Codeforcesを解きました。 #include <bits/stdc++.h> #define REP(i,n) for(int i=0; i<(n); i++) #define REP2(i,x,n) for(int i=x; i<(n); i++) using namespace std; int main () { cin.tie(0); ios::sync_with_stdio(false); int N;</bits/stdc++.h>…

Old Bridges|AOJ

Old Bridges | Aizu Online Judgeを解きました。 #include <bits/stdc++.h> #define LL long long #define ULL unsigned long long #define REP(i,n) for(int i=0; i<(n); i++) #define REP2(i,x,n) for(int i=x; i<(n); i++) using namespace std; int main (){ cin.tie(0)</bits/stdc++.h>…

No.163 cAPSlOCK|yukicoder

No.163 cAPSlOCK - yukicoder を解きました。 #include <bits/stdc++.h> using namespace std; int main (){ string C; cin >> C; string S; for( char x : C ){ S += ( islower(x) == 0 ? tolower(x) : toupper(x) ); } cout << S << endl; return 0; } 似ているけれど役割</bits/stdc++.h>…

No.239 にゃんぱすー|yukicoder

No.239 にゃんぱすー - yukicoder を解きました。 #include <bits/stdc++.h> using namespace std; int main (){ int n; cin >> n; string s[100][100]; for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ cin >> s[ i ][ j ]; } } set<int> st; for(int i=0; i</int></n;></bits/stdc++.h>

No.289 数字を全て足そう|yukicoder

No.289 数字を全て足そう - yukicoder を解きました。 私の提出は見苦しいので省略。この問題は string で受け取った アルファベット + 整数 の文字列の中から 整数部分を取り出して総和を取る問題です。 string →int の変換は std::stoi() しか使った事がな…

ABC037-B 編集|AtCoder|std::fill()

B: 編集 - AtCoder Beginner Contest 037 | AtCoder を解きました。 コンテストの日に提出したコードは自分でも謎すぎて説明出来ないので割愛。 提出し直したものを...↓ #include <bits/stdc++.h> using namespace std; int main(){ cin.tie(0); ios::sync_with_stdio(false</bits/stdc++.h>…

ABC037-A 饅頭|AtCoder

A: 饅頭 - AtCoder Beginner Contest 037 | AtCoder を解きました! #include <bits/stdc++.h> using namespace std; int main(){ cin.tie( 0 ); ios::sync_with_stdio( false ); int a,b,c; cin >> a >> b >> c; int res1 = c/a; int res2 = c/b; cout << max(res1,res2) <</bits/stdc++.h>…

Aizu PR|AOJ

会津PR | Aizu Online Judge を解きました。コードは置いといて、getline(cin,str)したら出力時の謎の改行に悩みました。 getline()時に改行コードを読み込んでしまっているらしかったので cinした後にcin.ignore();を書き加え改行コード読み飛ばしをしまし…

ICPC Score Totalizer Software|AOJ

ICPC Score Totalizer Software | Aizu Online Judge を解きました。 #include <bits/stdc++.h> using namespace std; int main(){ cin.tie( 0 ); ios::sync_with_stdio( false ); while(true){ int n; cin >> n; if(n == 0){ break; } int MAX = INT_MIN ,MIN = INT_MAX; v</bits/stdc++.h>…

ARC052-A 何期生?|AtCoder

A: 何期生? - AtCoder Regular Contest 052 | AtCoder を解きました。 私のコードは謎解法なのでどうでも良いです。 新しく覚えた関数をメモります! #include <bits/stdc++.h> using namespace std; int main(){ char S; cin >> S; if( isdigit( S ) ){ //数字判定 cout <</bits/stdc++.h>…

ARC050-A 大文字と小文字|AtCoder

A: 大文字と小文字 - AtCoder Regular Contest 050 | AtCoder を解きました。 #include <bits/stdc++.h> using namespace std; int main(){ string C,c; cin >> C >> c; transform(C.begin(), C.end(), C.begin(), ::tolower); cout << ( C == c ? "Yes" : "No" ) << endl; </bits/stdc++.h>…

minmax(), minmax_element()

No.292 芸名 - yukicoder を解いた時に学んだことメモ。 参考:とーらすさんの提出 #include <bits/stdc++.h> using namespace std; int main(){ int i, j; cin >> i >> j; auto temp = minmax(i, j); cout << temp.first << endl; //min値 cout << temp.second << endl; //</bits/stdc++.h>…

ARC049-A "強調"|AtCoder

今日はARC049に参加して A: "強調" - AtCoder Regular Contest 049 | AtCoder を解きました! #include<bits/stdc++.h> using namespace std; int main() { string s; int a,b,c,d; cin >> s >> a >> b >> c >> d; int len=s.size(); for(int i=0; i<=len; i++){ if(i==a){s</bits/stdc++.h>…

ARC021-A DEAD END|AtCoder

A: DEAD END - AtCoder Regular Contest 021 | AtCoderを解きました! #include <bits/stdc++.h> using namespace std; int main() { int a, n{16}; vector<int> vc; bool flag=false; while(cin>>a){vc.push_back(a);} for(int i=0; i</int></bits/stdc++.h>

ARC039-A A - B problem|AtCoder

A: A - B problem - AtCoder Regular Contest 039 | AtCoderを解きました。 #include <bits/stdc++.h> using namespace std; int main() { string a,b,temp1,temp2; int n{3}; int MIN = std::numeric_limits<int>::min(); cin>>a>>b; string tp1=a; string tp2=b; for(int i=0; i</int></bits/stdc++.h>

ARC036 A - ぐっすり|AtCoder

A: ぐっすり - AtCoder Regular Contest 036 | AtCoderを解きました。 3回に渡ってコードを修正提出しました...。 #include<bits/stdc++.h> using namespace std; int main(){ int n,k,t,res{0},sum{0}; vector<int> vc; cin >> n >> k; while(cin>>t){ vc.push_back(t); } bool </int></bits/stdc++.h>…

ARC023 A - 経過日数|AtCoder

A: 経過日数 - AtCoder Regular Contest 023 | AtCoderを解きました。 問題文に解法そのままの数式が載っていたのですが... 経過日数のコードとか初めて書くので自分で書いてみたかった! (少し前にちょまどさんがTwitterのbotで閏年の計算が〜とか言ってい…

文字列カウント

今週は文字列強化週間で、文字列の問題をTLで捕捉したので解いてみた。/*----------問題文引用----------*/AとBで作られた文字列Sが与えられる。Sの長さは100以下である。 S中のBは好きなアルファベットに変えることができる。 Sに含まれる文字列ABCDの個数…

ARC-048 A - 階段の下|AtCoder

ARCA: 階段の下 - AtCoder Regular Contest 048 | AtCoder に参加しました。問題の意味...というか0階がない...1階がFirst Floor(?)みたいな 変な葛藤をずっとしていて、一旦A問題を離れてB問題を考えていたら 普通に場合分けで良いのでは?と思えたのでそ…

No.345 最小チワワ問題|yukicoder

yukicoderのNo.345 最小チワワ問題が初心者的に大変学習的だった。 もしかしたら3重loopの問題を初めて解いたかも知れないという事で全然解けなかった。 まず3重もあったらloopから抜けられないという事に直面した。 そこで「C++ for loop 抜けられない 終了…

C++で素数判定!

AtCoderのARC044-Aで「素数判定」という問題を解きました。 A: 素数判定 - AtCoder Regular Contest 044 | AtCoder解答の中で初めて素数判定のコードを書いて教育的だったのでコードを残します。 ※ARC-Aの解答コードではないです。 #include<bits/stdc++.h> typedef long long</bits/stdc++.h>…