頭良くなりたい人

文系大学生shadeのブログです。競技プログラミングや人文学の話題,受験ネタなど。

2020-04-01から1ヶ月間の記事一覧

AGC002 A - Range Product

問題はこちら atcoder.jp 方針 で場合分け(tex機能の関係で不等号の向きが不自然になってますが合ってます)。 ちなみにVS CodeをUbuntuストアからでなくMicrosoftからダウンロードしてインストールしたら日本語が打てるようになりました。 コード #include <bits/stdc++.h></bits/stdc++.h>…

ABC134 C - Exception Handling

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…

ABC141 C - Attack Survival

問題はこちら atcoder.jp 方針 ナイーブに 人の点数をいちいち引くのでは間に合いません。ラウンドで出た正解数は と分かっているので,各問の正解者に 点ずつ与えて,最後で一律に 点を引いても同じことです。 コード #include <bits/stdc++.h> using namespace std; int m</bits/stdc++.h>…

ABC127 C - Prison

問題はこちら 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>…

ABC071 B - Not Found

問題はこちら 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>…

ABC087 B - Coins

問題はこちら 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>

ABC084 B - Postal Code

問題はこちら atcoder.jp 方針 文字目以外がちゃんと数字になっているかチェックするのが面倒かな,と思ったら, は数字またはハイフンからなるという制約がありました。優しい。 コード #include <bits/stdc++.h> using namespace std; int main(){ int a,b; string s; cin</bits/stdc++.h>…

ABC052 B - Increment Decrement

問題はこちら 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:]タグの中に書くだけです。 例えば,[tex:e^{i \theta} = \cos \theta + i \sin \theta]のように書くと, オイラーの公式が表示されま…

Educational DP Contest を解く

どうも,『アルゴリズム理論の基礎』でアルゴリズムを初めて勉強しているshadeです。 まだ読了できていませんが,競技プログラミングでは頻出(多分)の動的計画法(DP)について一通り勉強したので,アウトプットも兼ねてAtCoderの「Educational DP Contest…

超数弱が京大文系数学にどう立ち向かうか

こんにちは,shadeです。 私は一浪して予備校に通い,京都大学(文系)に合格しましたが,現役時は独学をしていました。教科書の内容すら全範囲は扱われないような高校だったので,基礎から自力で勉強する必要がありましたが,良い勉強方法がわからず,現役…

ABC063 B - Varied

問題はこちら 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>…

ABC108 B - Ruined Square

問題はこちら 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>…

ABC114 B - 754

問題はこちら atcoder.jp 方針 の 桁である部分文字列を一つずつ調べています。 ご主人様が大好きな数は なのに,問題名は で変だなと思ったら,ABC114は シリーズなんですね。 コード #include <bits/stdc++.h> using namespace std; int main(){ string s; cin>>s; int nu</bits/stdc++.h>…

ABC158 B - Shift Only

問題はこちら 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>…

ABC158 B - Count Balls

問題はこちら 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>

ABC153 D - Caracal vs Monster

問題はこちら atcoder.jp 方針 体力 のモンスターを倒すのに必要な攻撃回数を求めるアルゴリズムを とすると, times(H){ if H=1 1 を出力 else if H>=2 2*times([H/2])+1 を出力 } と再帰的に表せます( は最初の攻撃)。] (ガウス記号,床関数)の処理が…

ABC092 B - Chocolate

問題はこちら 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>…

AGC027 A - Candy Distribution Again

問題はこちら atcoder.jp 方針 要求するお菓子が少ない子どもから順番に配っていけばいいですが, 番目まで配って 番目の子どもに配る際は注意が必要。要求するぴったりの数でないと喜んでくれないので,別で(残っているお菓子の数)( 番目の子どもが要求…

ABC116 B - Collatz Problem

問題はこちら atcoder.jp 方針 「コラッツの問題」を題材にした問題です。私は数学には詳しくないので名前は知りませんでしたが,これを題材にした入試問題を見たことがあります。 例を見れば分かりますが, になった後は の繰り返しになっています。どのよ…

ABC094 B - Toll Gates

問題はこちら 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>…

ABC122 B - ATCoder

問題はこちら 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>

ABC142 C - Go to School

問題はこちら atcoder.jp 方針 問題文を読むと,出席番号 番の生徒は 番目に登校したことが分かります。つまりこれを変換して, 番目に登校した生徒の出席番号 を出力する配列を作れば終わりなのですが,ここで頭が混乱してしまいました。ということでC++の…

ABC138 C - Alchemist

問題はこちら atcoder.jp 方針 「最後に残る具材の価値を最大にしたい」ということは,「 回目の操作で最も価値の大きい2つを鍋に投入したい」ということです。 鍋に入れられた具材の影響力は回数を経るごとに で割られて小さくなっていくので,価値の小さい…

ABC132 C - Divide the Problems

問題はこちら 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;>…

ABC161 C - Replacing Integer

問題はこちら atcoder.jp 方針 例3が見るからにTLEを誘っているので,馬鹿正直に題意の操作をするのは断念。 のとき,題意の操作により は となっていきます。 となるまでこの操作を続ける( を で割り切れなくなるまで割る)と,( : を で割った余り)とな…

AGC014 A - Cookie Exchanges

問題はこちら atcoder.jp 方針 言われた操作を記述するだけですが,while内を単に … a=b/2+c/2; b=c/2+a/2; c=a/2+b/2; … などとしてしまわないように注意。きれいな漸化式なのでやりたくなります。 「無限回操作が行える 有限回の操作後,初期状態に戻る」…

ABC160 C - Traveling Salesman around Lake

問題はこちら 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>…

ABC068 B - Break Number

問題はこちら 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>…

ABC088 B - Card Game for Two

問題はこちら 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>…