searchカテゴリー選択
chevron_left

カテゴリーを選択しなおす

cancel
プロフィール
PROFILE

shadekyunさんのプロフィール

住所
未設定
出身
未設定

自由文未設定

ブログタイトル
頭良くなりたい人
ブログURL
https://shadeincs.hatenablog.jp/
ブログ紹介文
文系大学生shadeのブログ。競技プログラミングの記録や,人文学の話題など。
更新頻度(1年)

76回 / 194日(平均2.7回/週)

ブログ村参加:2020/04/16

本日のランキング(IN)
読者になる

新機能の「ブログリーダー」を活用して、shadekyunさんの読者になりませんか?

ハンドル名
shadekyunさん
ブログタイトル
頭良くなりたい人
更新頻度
76回 / 194日(平均2.7回/週)
読者になる
頭良くなりたい人

shadekyunさんの新着記事

1件〜30件

  • お問い合わせ

    お問い合わせフォーム Loading…

  • プライバシーポリシーと免責事項

    個人情報の収集と利用目的 当サイトでは、お問い合わせの際に、お名前(ハンドルネーム)やメールアドレス等の個人情報を頂く場合がございます。これらの個人情報は、お問い合わせに対する返信にのみ利用し、それ以外の目的で利用することはありません。 また、頂いた個人情報は、(1)ご本人の同意がある場合、(2)法令に基づき開示・提供を求められた場合を除いて、第三者に開示することはありません。 広告の表示について 当サイトでは、第三者配信の広告サービス(A8.net)を利用しています。これらの広告サービスは、ユーザーに適した広告を表示するためCookieを使用することがあります。このCookieは匿名で収集さ…

  • OLYMPUS OM-D E-M10 Mark IIIを買った話・買うまでの話

    どうもこんにちは。 手持ちの一眼レフを売って、中古でオリンパスのOM-D E-M10 Mark IIIを買う、という体験をしたので、その経緯をだらだらと書きたいと思います。究極に私的な話で申し訳ありません。 写真が撮りたい カメラを買い換えよう 悩んだカメラたち 1. FUJIFILM X-A5 2. FUJIFILM X-E3 3. OLYMPUS PENシリーズ 忘れていたやつ おわりに 写真が撮りたい 私は高校時代に写真部に入り、そこで写真を始めました。 その時に買ったカメラがニコンのD5300です。 Nikon デジタル一眼レフカメラ D5300 AF-P ダブルズームキット ブラック…

  • 【京大志望向け】単語学習に関するFAQ

    どうもこんにちは。 これを書いているのは9月です。夏休みも終わりましたが、みなさん単語学習は完璧でしょうか。 夏休みに単語を完璧にしようと思っていたのに、新型コロナの影響で夏休みが少なくなって、結局終わっていないという現役生もいるのではないでしょうか。 それでなくとも、やろうやろうと思っていてもなかなか完璧にならないのが単語です。 しかし、そもそも単語学習はだらだらと時間をかけてやるものではないと考えています。気合を入れてこなせば短い期間で終わります。 そういうわけで、時期を問わず単語学習に不安のある受験生に向けたアドバイスをQ&A形式で書いていこうと思います。 この中にはリアルによく聞かれる…

  • 服部文昭『古代スラヴ語の世界史』【読書記録】

    『古代スラヴ語の世界史』(白水社)を読みました。 スラヴ人はどこから来てどのように自分たちの文字を獲得したのか。そしてスラヴ人の言語は歴史と共にどのように変化したのだろうか。 www.hakusuisha.co.jp 独自の文字を持たなかったスラヴ人社会において「古代スラヴ語」(当時の共通スラヴ語の文語)がどのように誕生し,またそれがどのように発展(ときには衰退)したか,その言語の歴史を中心に,中世以降のスラヴ人と東欧の歴史について述べた本です。著者は京大の服部文昭先生。 内容について 一般的に,前近代のスラヴ人というのは歴史の表舞台にはあまり登場しない人々だと思います。スラヴ人の文字といえば…

  • AOJ ALDS1で典型手法を練習する―グラフ編―

    話には聞くグラフ理論なるものについて,そろそろ体系的に練習したいと思ったので,Aizu Online Judgeのコース問題を解いてみました。 11_A~C はプログラム上でグラフを扱う練習のような問題だったので,よりアルゴリズムっぽい 11_D~12_C を掲載しています。 問題はこちら onlinejudge.u-aizu.ac.jp 11_D: 連結成分分解 12_A: 最小全域木 12_B: 単一始点最短経路 12_C: 単一始点最短経路 II 11_D: 連結成分分解 コメント 連結成分分解というタイトルですが,連結成分ごとの頂点集合を作ったりするのではなく,Union-Find木と…

  • ABC128 C - Switches

    問題はこちら atcoder.jp 方針 個のスイッチのon/off状態の順列は 通り,ということで一目全探索っぽいです。 問題では電球→スイッチの対応関係しか与えられないので,スイッチ→電球の対応関係を表す配列を作っています。あとはbit全探索です。 コード #include <bits/stdc++.h> using namespace std; #define REP(i,n) for(int i=0; i<(n); i++) bool judge(int bit); int n,m; vector<int> k; vector<vector<int>> s; vector<int> p…

  • ABC045 (ARC061) C - たくさんの数式

    問題はこちら atcoder.jp 方針 +が入る場所は, の各数字の間 ヶ所です。それぞれの箇所について,+が入っている状態を1,何も入っていない状態を0とすれば,bit全探索が適用できます。 各数式の値を計算するプロセスはコードを見てください。 コード #include <bits/stdc++.h> using namespace std; #define REP(i,n) for(int i=0; i<(n); i++) long long value(int bit); string s; int n; int main(){ cin>>s; n=s.size()-1; // '+'…

  • ABC167 C - Skill Up

    問題はこちら atcoder.jp 方針 購入する参考書の組み合わせが高々 通りしかないところを見るに,全探索で解くのが本命です。 今回は「bit全探索」を用いていますが,この手法を使った経験がなかったのでたどたどしいコードになっています。 コード #include <bits/stdc++.h> using namespace std; #define REP(i,n) for(int i=0; i<(n); i++) int n,m,x; vector<int> c; vector<vector<int>> a; bool judge(int bit); int cost(int bit)…

  • ABC075 B - Minesweeper

    問題はこちら atcoder.jp 方針 基本的な動作は,「各マスについて,周囲8マスの爆弾の数を数える」ということですが,端のマスには調べるべき8マスが存在しないので,それをどう処理するかが一つのポイントだろうと思います。 私は,マス目の周囲にダミーの要素Nを入れる,という方法を取っています。 下のコードでは肝心の爆弾の数を数える処理が冗長になってしまっていますが,解説PDF にうまい手法が紹介されています。 コード #include <bits/stdc++.h> using namespace std; #define REP(i,n) for(int i=0; i<(n); i++) …

  • ABC087 C - Candies

    問題はこちら atcoder.jp 方針 簡単のため,上の列をマス ,下の列をマス とします。 動き方のパターンは,どの で と動くかの高々 通りしかないので,全部調べればよいです。 コード #include <bits/stdc++.h> using namespace std; #define REP(i,n) for(int i=0; i<(n); i++) int main(){ int n; cin>>n; vector<int> a(n),b(n); REP(i,n){ cin>>a[i]; } REP(i,n){ cin>>b[i]; } int sum=0,max=0; REP…

  • AGC019 A - Ice Tea Store

    問題はこちら atcoder.jp 方針 単位量あたりの価格が安い(コスパが良い)サイズのボトルを優先的に購入します。 コード #include <bits/stdc++.h> using namespace std; int main(){ long long q,h,s,d; long long n; cin>>q>>h>>s>>d>>n; long long sum=0; // 2リットル入り if(d<2*s && d<4*h && d<8*q){ sum+=(n/2)*d; n%=2; } // 1リットル入り if(s<2*h && s<4*q){ sum+=n*s; n=0; }…

  • ABC101 C - Minimization

    問題はこちら atcoder.jp 方針 数列 は を並び替えたものなので,題意の操作の結果は, となるほかありません。 このとき,置き換えられるべき要素は 以外の 個であり,1回の操作で最大 個の要素を置き換えることができます。 つまり,求める操作回数は,( 以上で最小の整数)です。 操作は を含む部分から始めればよく,操作回数は数列の並びによらず一定なので,実は を受け取る必要もありません。 (簡単すぎて嘘解法かと疑いましたが,解説PDFでも同様の解法が紹介されていました。こちらには証明もついています。) コード #include <bits/stdc++.h> using namespa…

  • ABC168 C - : (Colon) をベクトル計算で解く

    ABC168のC問題ではゴリゴリの幾何問題が出題され,「余弦定理」がツイッターでトレンド入りするなど話題になりました。 私は普通に余弦定理を用いて解いたのですが,結構いろいろな解き方があったようです。ここでは,自分が後で思いついたうちの1つである「ベクトル」を用いた解法を示していきたいと思います(ベクトルの内積の定義に が使われているので,本質的には余弦定理と同じですが)。 問題はこちら atcoder.jp 前提 時計の中心を とし,時針,分針の でない端点をそれぞれ と表す。また, とし(長さが大文字なのは気持ち悪かったので問題文から変更しています), 軸の正の方向と とのなす角をそれぞれ…

  • 日立製作所 社会システム事業部 プログラミングコンテスト2020 B - Nice Shopping

    問題はこちら atcoder.jp 方針 かかる金額が最小になるような買い方は,一番安い冷蔵庫と一番安い電子レンジを買うか,割引券が使える 種類の買い方のどれか,のいずれかです。 コード #include <bits/stdc++.h> using namespace std; #define REP(i,n) for(int i=0; i<(n); i++) #define ALL(n) begin(n),end(n) int main(){ int A,B,m; cin>>A>>B>>m; vector<int> a(A),b(B); int lowest_a=100001,lowest_…

  • ABC136 C - Build Stairs

    問題はこちら atcoder.jp 方針 題意の操作を実際に実行しながら調べます。 コード #include <bits/stdc++.h> using namespace std; #define REP(i,n) for(int i=0; i<(n); i++) int main(){ int n; cin>>n; vector<int> h(n); bool judge=true; REP(i,n){ cin>>h[i]; if(i>0){ if(h[i-1]==h[i]+1){ h[i]++; }else if(h[i-1]>h[i]+1){ judge=false; break; }…

  • AGC012 A - AtCoder Group Contest

    問題はこちら atcoder.jp 方針 を降順ソートします。このとき, の中から各チームの2番目の人の強さをできるだけ大きくするには, のようにチーム分けをすれば良いです。つまり,求める和は です。 コード #include <bits/stdc++.h> using namespace std; #define REP(i,n) for(int i=0; i<(n); i++) #define ALL(n) begin(n),end(n) int main(){ long long n; cin>>n; vector<long long> a(3*n); REP(i,3*n){ cin>>…

  • ABC151 C - Welcome to AtCoder

    問題はこちら atcoder.jp 方針 各 に対して, if 問題P[i]がAC済{ continue }else{ if 提出iがAC{ 正解数++ ペナルティ数+=問題P[i]のWA数 }else{ 問題P[i]のWA数++ } } という操作を行います。 コード #include <bits/stdc++.h> using namespace std; #define REP(i,n) for(int i=0; i<(n); i++) int main(){ int n,m; cin>>n>>m; vector<int> p(m); vector<string> s(m); REP(i…

  • ABC115 C - Christmas Eve

    問題はこちら atcoder.jp 方針 を昇順ソートすると,求める最小値は, のうち最も小さい値です。 コード #include <bits/stdc++.h> using namespace std; #define REP(i,n) for(int i=0; i<(n); i++) #define ALL(n) begin(n),end(n) int main(){ int n,k; cin>>n>>k; vector<int> h(n); REP(i,n){ cin>>h[i]; } sort(ALL(h)); int d,d_min; REP(i,n-k+1){ d=h[i+k-1]…

  • ABC097 B - Exponential

    問題はこちら atcoder.jp 方針 なので普通にループを回しています。 コード #include <bits/stdc++.h> using namespace std; int main(){ int x; cin>>x; int ans=1; for(int i=2; i<=sqrt(x); i++){ for(int j=2; j<1000; j++){ if(pow(i,j)>x){ break; } if(pow(i,j)>ans){ ans=pow(i,j); } } } cout<<ans<<endl; }

  • ABC139 D - ModSum

    問題はこちら atcoder.jp 方針 直感で解きました。 後付けで証明もしておきます。 求める和は, と表せます。ここで,ある整数を で割った余りは なので, です。 { } { } と並べ替えたとき,これを満たします。 コード #include <bits/stdc++.h> using namespace std; int main(){ long long n; cin>>n; cout<<n*(n-1)/2<<endl; }

  • ABC066 B - ss

    問題はこちら atcoder.jp 方針 問題文通りです。 コード #include <bits/stdc++.h> using namespace std; int main(){ string s; cin>>s; string subs,a="a",b="b"; int i=1; while(a!=b){ subs=s.substr(0,s.size()-2*i); a=subs.substr(0,(s.size()-2*i)/2); b=subs.substr((s.size()-2*i)/2,(s.size()-2*i)/2); i++; } cout<<subs.size()<<e…

  • AGC029 A - Irreversible operation

    問題はこちら atcoder.jp 方針 題意の操作は,文字列 においてBWをWBにすることと同じです。また, がWW...WBB...Bとなった時点で操作は終了します。 つまり,Wに注目すると, 回の操作で つのWが つ左に動き, 中にWが 個あるとき,一番うしろのWが 番目に来た時点で操作が終了します。 中で 個目のWが 番目にあるとき,これを 番目に移動させるためには 回の操作が必要です。 コード #include <bits/stdc++.h> using namespace std; int main(){ string s; cin>>s; vector<int> coor_w; …

  • 三井住友信託銀行プログラミングコンテスト2019 C - 100 to 105

    問題はこちら atcoder.jp 方針 円ちょうどの買い物をできるならば,買う品物の数は 個( は の商) とできます1。 個の商品による合計金額 は なので, がこの範囲に含まれているかを判定すればよいです。コード中では余り を用いてやや工夫しています。 解説PDF では3種類の解法が紹介されています。 コード #include <bits/stdc++.h> using namespace std; int main(){ int x; cin>>x; int q=x/100; int r=x%100; cout<<(r<=q*5)<<endl; } (i)買う品物の数が 個以上のとき,…

  • AGC003 A - Wanna go back home

    問題はこちら atcoder.jp 方針 日後に家に戻ってくるためには,旅程にNがあるならばSが少なくとも1つ必要で,SがあるならばNが少なくとも1つ必要です。W,Eについても同様。個数は関係ありません。 コード #include <bits/stdc++.h> using namespace std; int main(){ string s; cin>>s; bool north=false; bool south=false; bool east=false; bool west=false; bool judge=true; for(int i=0; i<s.size(); i++){…

  • ABC058 B - ∵∴∵

    問題はこちら atcoder.jp 方針 特になし。偶奇の場合分けのやり方はいくつかあると思います。 コード #include <bits/stdc++.h> using namespace std; int main(){ string o,e; cin>>o>>e; string password; for(int i=0; i<o.size(); i++){ password.push_back(o[i]); if(e.size()==i){ continue; } password.push_back(e[i]); } cout<<password<<endl; }

  • ABC053 B - A to Z String

    問題はこちら atcoder.jp 方針 に現れる最初のAから最後のZまでの文字列が,条件を満たす最長の文字列になります。 コード #include <bits/stdc++.h> using namespace std; int main(){ string s; cin>>s; int firstA=-1; int lastZ=-1; for(int i=0; i<s.size(); i++){ if(s[i]=='Z'){ lastZ=i; } if(firstA!=-1){ continue; } if(s[i]=='A'){ firstA=i; } } cout<<lastZ-fir…

  • ABC148 D - Brick Break

    問題はこちら atcoder.jp 方針 レンガが123...と並ぶように,邪魔なレンガを砕いていきます。 コード #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[i]; } int count=0; int aim=1; for(int i=0; i<n; i++){ if(a[i]!=aim){ count++; }else{ aim++; } } if(aim==1){ count=-1; } …

  • ABC049 B - たてなが

    問題はこちら atcoder.jp 独り言 画像の引き伸ばしってこういう感じでやってるんかな。 コード #include <bits/stdc++.h> using namespace std; int main(){ int h,w; cin>>h>>w; vector<vector<char>> c(h,vector<char>(w)); vector<vector<char>> d(h*2,vector<char>(w)); for(int i=0; i<h; i++){ for(int j=0; j<w; j++){ cin>>c[i][j]; d[i*2][j]=c[i][j]; d…

  • ABC103 B - String Rotation

    問題はこちら atcoder.jp 方針 「 の末尾を取得し, の先頭に挿入→ の末尾以外を とする」という操作で, を「回転」させることができます。 を回転させて得られる文字列は高々 種類なので, 回の操作後までに と一致するか調べればよいです。 コード #include <bits/stdc++.h> using namespace std; int main(){ string s,t; cin>>s>>t; string first; bool possible=false; for(int i=0; i<s.size(); i++){ first=s.substr(s.size()-…

カテゴリー一覧
商用