はなたの日記

ギターのコードについて書きます

C

ALDS1-ALDS1_3_C Doubly Linked List

C

問題 双方向連結リスト | アルゴリズムとデータ構造 | Aizu Online Judge双方向連結リストを実装する問題です。 まだポインタの理解があやふやだった頃に解きましたが、今だったらスムーズに書けるかなと思い、再びやってみました。 #include<stdio.h> #include<stdlib.h> #incl</stdlib.h></stdio.h>…

ALDS1-ALDS1_3_D Areas on the Cross-Section Diagram

C

問題 模式断面図の面積 | アルゴリズムとデータ構造 | Aizu Online Judge全く分からず放置していました。なんとなくスタックを使いそう、って思ってから一歩も進みませんでした。 こちらの方が丁寧に説明してくれています。 mtdtx9.hatenablog.comインデック…

Volume0-0087 Strange Mathematical Expression

C

問題 逆ポーランド記法 | Aizu Online Judge逆ポーランド記法を実装する問題です。アルゴリズム自体は何の捻りもありません。スタックを使うやつですね。 #include<stdio.h> #include<string.h> #include<ctype.h> #include<stdlib.h> void push(double S[],int *top,double x){ S[(*top)]=x; (*top</stdlib.h></ctype.h></string.h></stdio.h>…

Volume0-0022 Maximum Sum Sequence

C

問題 最大連続部分和 | Aizu Online Judge配列の最大連続部分和を求める問題です。 動的計画法で出来ないかな~と考えましたが、僕の脳みそでは全探索しか思いつきません。 色々と調べると、何やら参考になりそうなものを発見。 qiita.com一番最後に書かれて…

Volume0-0099 Surf Smelt Fishing Contest II

C

問題 ワカサギ釣り | Aizu Online Judgeイベントが入力される都度、最大値を求めるという問題。以前解いたRMQと似ているなと思い、RMQと同じ平方分割で実装してみました。1.各人のワカサギの量を入れる配列Aと、√n人のワカサギの最大値を入れるバケット配…

Volume0-0044 Prime Number II

C

問題 最小の素数と最大の素数 | Aizu Online Judge入力された数付近の素数を求めるという問題です。 苦しむことなく実装できました。 #include<stdio.h> #include<math.h> int GetPrime(int n){ int i; for(i=2;i<=sqrt(n);i++) if(n % i ==0)return 0; printf("%d",n); retur</math.h></stdio.h>…

Volume0-0015 National Budget

C

問題 国家予算 | Aizu Online Judge多倍長整数の足し算を実装する問題です。 基本情報技術者試験の午後問題で解いたことがあり、今回はそのアルゴリズムを参考に実装しました。参考 基本情報技術者過去問題 平成21年秋期 午後問9|基本情報技術者試験.com簡…

Volume0-0017 Caesar Cipher

C

問題 シーザー暗号 | Aizu Online Judgeシーザー暗号の復元の問題。思いつくままに実装。 1. i文字ずらす 2. 復号できてるかチェック を繰り返すという単純なもの。ifがめっちゃ入れ子になっている部分は非常に恥ずかしい。 #include<stdio.h> #include<string.h> #include<ctype.h> #def</ctype.h></string.h></stdio.h>…

Volume0-0031 Weight

C

問題 天秤 | Aizu Online Judge与えられた自然数を2のn乗の和で表す問題。以前学んだが、こういうのはビット演算を利用すると良いらしい。参考 ビット演算子 - 演算子 - C言語 入門てなわけで実装。 #include<stdio.h> int main(){ int w; int hundou; while(scanf("%</stdio.h>…

Volume0-0021 Parallelism

C

問題 平行判定 | Aizu Online Judge二つの直線が平行かどうか判定する、という問題。 単純に傾きを求めて、比較すればよいのだが、wrongと表示されてしまった。 座標をdoubleではなく、floatにしたらacceptされた。 #include<stdio.h> typedef struct point{ float x;</stdio.h>…

DSL_2_B Range Sum Query (RSQ)

C

問題 Range Sum Query | データ構造ライブラリ | Aizu Online Judge前回のRMQとほぼ同じ感じで解けそうだったので、すぐに取り掛かってみました。kujira16.hateblo.jp #include<stdio.h> #include<math.h> #define MAX 100000 int min(int a,int b){ if(a < b)return a; retur</math.h></stdio.h>…

DSL_2_A Range Minimum Query (RMQ)

C

問題 Range Minimum Query (RMQ) | データ構造ライブラリ | Aizu Online Judge一度解いたことがあるのですが、その時はめっちゃふつーにやって解けてしまった気がする。 今回は平方分割?というやり方でやってみた。参考にしたのは前回のと同じ。 プログラミ…

DSL_1_A Set - Disjoint Set: Union Find Tree

C

問題 互いに素な集合 Union Find| データ構造ライブラリ | Aizu Online Judgeテキトーに配列で実装したら、案の定時間切れ。 調べてみると、こんな解法があるらしい。 プログラミングコンテストでのデータ構造 from Takuya Akiba www.slideshare.net先人の知…