2020-04-01から1ヶ月間の記事一覧
問題はこちら atcoder.jp 方針 で場合分け(tex機能の関係で不等号の向きが不自然になってますが合ってます)。 ちなみにVS CodeをUbuntuストアからでなくMicrosoftからダウンロードしてインストールしたら日本語が打てるようになりました。 コード #include <bits/stdc++.h></bits/stdc++.h>…
Mondai wa kochira atcoder.jp Houshin ga de saidai no youso deatta baai wa, 2-banme ni ookii youso wo syuturyoku simasu. sore igai no baai wa sonomama saidai no youso wo syuturyoku sureba iidesu. Ubuntu 20.04 LTS ni upgrade shitara, VS Code…
問題はこちら atcoder.jp 方針 ナイーブに 人の点数をいちいち引くのでは間に合いません。ラウンドで出た正解数は と分かっているので,各問の正解者に 点ずつ与えて,最後で一律に 点を引いても同じことです。 コード #include <bits/stdc++.h> using namespace std; int m</bits/stdc++.h>…
問題はこちら atcoder.jp 方針 枚だけで全てのゲートを通過できるIDカードは, から まですべての共通範囲です。 コード #include <bits/stdc++.h> using namespace std; int main(){ int n,m; cin>>n>>m; vector<int> l(m),r(m); for(int i=0; i<m; i++){ cin>>l[i]>>r[i]; } bool exist=true;</m;></int></bits/stdc++.h>…
問題はこちら atcoder.jp 方針 AからZまでのアルファベットが 文字で, より,全探索でも 回以下のループで済みます。 コード #include <bits/stdc++.h> using namespace std; int main(){ string s; cin>>s; bool judge=false; bool exist=false; char i='a'; char result;</bits/stdc++.h>…
問題はこちら atcoder.jp 独り言 この問題AtCoderでやったことある気がするけど印ついてなかった。 コード #include <bits/stdc++.h> using namespace std; int main(){ int a,b,c,x; cin>>a>>b>>c>>x; int count=0; for(int i=0; i</bits/stdc++.h>
問題はこちら atcoder.jp 方針 文字目以外がちゃんと数字になっているかチェックするのが面倒かな,と思ったら, は数字またはハイフンからなるという制約がありました。優しい。 コード #include <bits/stdc++.h> using namespace std; int main(){ int a,b; string s; cin</bits/stdc++.h>…
問題はこちら atcoder.jp 方針 特になし。 コード #include <bits/stdc++.h> using namespace std; int main(){ int n; string s; cin>>n>>s; int x=0; int x_max=0; for(int i=0; i<n; i++){ if(s.at(i)=='I'){ x++; }else{ x--; } if(x>x_max){ x_max=x; } } cout<</n;></bits/stdc++.h>
私はブログ記事内で数式を書きたいとき,はてなブログのTex機能を利用しています。 使い方は簡単で,Texのコマンドを[tex:]タグの中に書くだけです。 例えば,[tex:e^{i \theta} = \cos \theta + i \sin \theta]のように書くと, オイラーの公式が表示されま…
どうも,『アルゴリズム理論の基礎』でアルゴリズムを初めて勉強しているshadeです。 まだ読了できていませんが,競技プログラミングでは頻出(多分)の動的計画法(DP)について一通り勉強したので,アウトプットも兼ねてAtCoderの「Educational DP Contest…
こんにちは,shadeです。 私は一浪して予備校に通い,京都大学(文系)に合格しましたが,現役時は独学をしていました。教科書の内容すら全範囲は扱われないような高校だったので,基礎から自力で勉強する必要がありましたが,良い勉強方法がわからず,現役…
問題はこちら atcoder.jp 方針 の各文字について, 内にそれが何個存在するかを数えています。 個以上あればアウト。 コード #include <bits/stdc++.h> using namespace std; int main(){ string s; cin>>s; bool check=false; for(int i=0; i<s.size(); i++){ int counter=count(s.begin(),s.end(),s[i]); if(counter>=2){ check=true; break; } } i</s.size();></bits/stdc++.h>…
問題はこちら atcoder.jp 方針 正方形に外接する,各辺が 軸, 軸に平行であるような正方形を描いて考えました。 コード #include <bits/stdc++.h> using namespace std; int main(){ int x_1,y_1,x_2,y_2; cin>>x_1>>y_1>>x_2>>y_2; int a=y_1-y_2; int b=x_2-x_1; int x_3</bits/stdc++.h>…
問題はこちら atcoder.jp 方針 の 桁である部分文字列を一つずつ調べています。 ご主人様が大好きな数は なのに,問題名は で変だなと思ったら,ABC114は シリーズなんですね。 コード #include <bits/stdc++.h> using namespace std; int main(){ string s; cin>>s; int nu</bits/stdc++.h>…
問題はこちら atcoder.jp 方針 工夫点は入力段階で一度偶奇判定をしていることくらいです。簡単。 コード #include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; bool even=true; vector<int> a(n); for(int i=0; i<n; i++){ cin>>a[i]; if(a[i]%2!=0){ even=false; } } i</n;></int></bits/stdc++.h>…
問題はこちら atcoder.jp 方針 を 個で割って,余った分を場合分け。 コード #include <bits/stdc++.h> using namespace std; int main(){ long n,a,b; cin>>n>>a>>b; long q=n/(a+b); long r=n%(a+b); if(r<=a){ cout<</bits/stdc++.h>
問題はこちら atcoder.jp 方針 体力 のモンスターを倒すのに必要な攻撃回数を求めるアルゴリズムを とすると, times(H){ if H=1 1 を出力 else if H>=2 2*times([H/2])+1 を出力 } と再帰的に表せます( は最初の攻撃)。] (ガウス記号,床関数)の処理が…
問題はこちら atcoder.jp 方針 人目の参加者が期間中に食べるチョコレートの数は, を満たす ( は非負整数)の個数です。 コード #include <bits/stdc++.h> using namespace std; int main(){ int n,d,x; cin>>n>>d>>x; vector<int> a(n); for(int i=0; i<n; i++){ cin>>a[i]; } int eat=0; fo</n;></int></bits/stdc++.h>…
問題はこちら atcoder.jp 方針 要求するお菓子が少ない子どもから順番に配っていけばいいですが, 番目まで配って 番目の子どもに配る際は注意が必要。要求するぴったりの数でないと喜んでくれないので,別で(残っているお菓子の数)( 番目の子どもが要求…
問題はこちら atcoder.jp 方針 「コラッツの問題」を題材にした問題です。私は数学には詳しくないので名前は知りませんでしたが,これを題材にした入試問題を見たことがあります。 例を見れば分かりますが, になった後は の繰り返しになっています。どのよ…
問題はこちら atcoder.jp 方針 ごちゃごちゃした問題文ですが,求めるコストは から までにある料金所の数と, から までにある料金所の数のうち小さい方です。 コード #include <bits/stdc++.h> using namespace std; int main(){ int n,m,x; cin>>n>>m>>x; vector<int> a(m); f</int></bits/stdc++.h>…
問題はこちら atcoder.jp 方針 は高々10文字なので,考えられる の部分文字列をすべてチェックしています。 コード #include <bits/stdc++.h> using namespace std; int main(){ string s; cin>>s; string subs; int length=0; for(int i=0; i</bits/stdc++.h>
問題はこちら atcoder.jp 方針 問題文を読むと,出席番号 番の生徒は 番目に登校したことが分かります。つまりこれを変換して, 番目に登校した生徒の出席番号 を出力する配列を作れば終わりなのですが,ここで頭が混乱してしまいました。ということでC++の…
問題はこちら atcoder.jp 方針 「最後に残る具材の価値を最大にしたい」ということは,「 回目の操作で最も価値の大きい2つを鍋に投入したい」ということです。 鍋に入れられた具材の影響力は回数を経るごとに で割られて小さくなっていくので,価値の小さい…
問題はこちら atcoder.jp 方針 題意の を値の小さい順に並べ替えると,求める の個数は, より大きく, 以下である整数の個数に等しい。簡単な問題なんですが,僕は最初 for(int i=d[n]; i<d[n-1]+1; i++){ int arc=0,abc=0; for(int j=0; j<n; j++){ if(d[j]>=i){ arc++; }else{ abc++; } } if(arc==abc){ count++; } } こんな</d[n-1]+1;>…
問題はこちら atcoder.jp 方針 例3が見るからにTLEを誘っているので,馬鹿正直に題意の操作をするのは断念。 のとき,題意の操作により は となっていきます。 となるまでこの操作を続ける( を で割り切れなくなるまで割る)と,( : を で割った余り)とな…
問題はこちら atcoder.jp 方針 言われた操作を記述するだけですが,while内を単に … a=b/2+c/2; b=c/2+a/2; c=a/2+b/2; … などとしてしまわないように注意。きれいな漸化式なのでやりたくなります。 「無限回操作が行える 有限回の操作後,初期状態に戻る」…
問題はこちら atcoder.jp 方針 一番距離の遠い家と家の間を避けて湖を一周すればいいです。 と の間は原点を通るので別で計算しています。 コード #include <bits/stdc++.h> using namespace std; int main(){ int k,n; cin>>k>>n; vector<int> a(n); for(int i=0; i<n; i++){ cin>>a.at(i); } </n;></int></bits/stdc++.h>…
問題はこちら atcoder.jp 方針 特に難しい点はありませんが, のとき が出力されないよう変数maxを で初期化しています。 コード #include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; int count_max=0; int max=1; // 求める整数 for(int i=1; i<n+1; i++){ int count=0; int j=i; while(j%2==0){ j/=2; count++; } if(count>coun</n+1;></bits/stdc++.h>…
問題はこちら atcoder.jp 方針 与えられた を大きい順にソートして,交互に取ってもらっています。 コード #include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; vector<int> a(n); for(int i=0; i<n; i++){ cin>>a.at(i); } int alice=0,bob=0; // aの要素を大きい順に</n;></int></bits/stdc++.h>…