intさわだんのBlack History

刹那的レジェンドになりたい。

ICPC 国内予選2015C ICPC 計算機 AOJ1602

シミュレーションやるだけ. (ドット)の多いところから計算すればよい #include <bits/stdc++.h> #include <map> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using namespa</map></bits/stdc++.h>…

ICPC 国内予選2003C The Secret Number AOJ1126

イキってDPで解いたら実装重くて痛い目にあった 集中してやったのでバグは起きなかった。dp[i][j][0] : 場所i,jをスタート地点にした時の数字の桁の最大数 dp[i][j][1~] : 最大の時の数字の列これを i = h-1, j = w-1 (一番右下のブロック)から i=0,j=0 …

ICPC 国内予選2005B Polygonal Line Search AOJ 1136

解法: 探すもととなる折れ線を方向を変えた8パターンに分けて保存しておく(for文一つで実装できるがめんどくさかったためfor文8個使って泥臭く解いた) あとはその8パターンのうち一つでも一致するパターンがあるか地道に確認するだけ。 #include <bits/stdc++.h> #define</bits/stdc++.h>…

ICPC 国内予選2010C ポロック予想 AOJ1167

かなり初歩的なDPやるだけ。 #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using namespace std; typedef long long ll; typedef pair<int, int> P; type</int,></bits/stdc++.h>…

ICPC 国内予選2018B 折り紙 AOJ1625

シミュレーションやるだけ。折るたびに原点の座標を更新していけばよい。実装も重くないので楽。 #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back</bits/stdc++.h>…

ICPC 国内予選2017B ほとんど同じプログラム AOJ1617

やるだけ。シミュレーション。実装もそこまで重くなかった。 #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using namespace std; typedef long</bits/stdc++.h>…

ICPC 国内予選2018C 超高層ビル「みなとハルカス」AOJ1626

解法:しゃくとり法(?)(しゃくとりほうがどんなものなのかはっきり覚えてないけどたしかそう #include <bits/stdc++.h> #include <map> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb em</map></bits/stdc++.h>…

ICPC 国内予選2016C 竹の花 (☆) AOJ1610

やるだけ。簡単すぎる。難易度100の実装重めのやつのほうが明らかにめんどい(個人差 #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using name</bits/stdc++.h>…

ICPC 国内予選2014B 連鎖消滅パズル AOJ1193

こういうただ実装するだけの問題あまり好きではない。 vectorをつかってステップごとに要素の番号が+5されるようにした(vectorの途中の要素を消すのが無限にバグりそうだったため #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) (</bits/stdc++.h>…

ICPC 国内予選2007B ログイン/ログアウト記録の解析 AOJ1148

解法:いわれた通りやるだけ。シミュレーション vector<P>を使って生徒ごとの使用時間を記録しておくと楽場合分けは以下のとおりやった #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #de</bits/stdc++.h>…

ICPC 国内予選2008B 月曜土曜素因数 AOJ 1154

解法:月曜土曜素数でエラトステネスをやる。 問題文の日本語を読解するのがvery hard。そのほかはeasy。 #include <bits/stdc++.h> #include <map> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #defi</map></bits/stdc++.h>…

ICPC 国内予選2010B 迷図と命ず AOJ 1166

解法:幅優先探索やるだけ。 #include <bits/stdc++.h> #include <map> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using namespace std; typedef long long ll; typedef pa</map></bits/stdc++.h>…

ICPC 国内予選2005C Numeral System AOJ1137

やるだけmap<char,int>が使えれば楽なのだがやり方よくわからなかったので断念して配列でやった。(しかたなくmap<string,int>も試してみたが闇だった。 #include <bits/stdc++.h> #include <map> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a)</map></bits/stdc++.h>…

ICPC 国内予選2006A ディリクレの算術級数定理 AOJ 1141

エラトステネスやるだけようやく競プロの感覚取り戻してきてやるだけ問題は秒でできるようになってきた。 #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb empl</bits/stdc++.h>…

情報オリンピック(JOI) 本選 過去問 ソース&解説リスト

2014/10/3に下書きとして保存されていてなぜか公開されていなかったのでこのタイミングで公開する。たぶん全部解いてから公開しようとしていたんだと思う。同じ問題に二つの記事がある場合はpart2と書いています。 第6回日本情報オリンピック 本選 最大の和 …

ICPC 国内予選2006B 列車の編成パートII (☆) AOJ1142

シミュレーションやるだけ。setを使うと楽。 #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using namespace std; typedef long long ll; typed</bits/stdc++.h>…

ICPC 国内予選2010A 角角画伯,かく悩みき AOJ1165

やるだけ #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using namespace std; typedef long long ll; typedef pair<int, int> P; typedef tuple<int, int, int> T; const</int,></int,></bits/stdc++.h>…

ICPC 国内予選2011A チェビシェフの定理 AOJ 1172

解法:エラトステネス、累積和 やるだけ。難易度-5 #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back using namespace std; typedef long long ll;</bits/stdc++.h>…

ICPC 国内予選2011B 世界の天秤 AOJ 1173

解法:やるだけ list使おうと思ったがイテレーターの動きがおかしくやめる→しかたなくbool配列を使ってlistっぽくする→最近のC++でgetsが使えなくなってて泣く→ググってgetlineを見つけてAC #include <bits/stdc++.h> #include <stdio.h> #define chmin(a, b) ((a)=min((a), (b))) #d</stdio.h></bits/stdc++.h>…

国内予選2009B 島はいくつある? AOJ 1160

解法:幅優先探索やるだけ。 if(check[q.fs][q.sc] != 0) continue;を書き忘れてて無限にMLEくらってた #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplac</bits/stdc++.h>…

ICPC 国内予選2004B Red and Black AOJ1130

解法:幅優先探索やるだけ。queueの使い方を完全に忘れてて自分のブログを熟読して思い出した。 #include <bits/stdc++.h> #define chmin(a, b) ((a)=min((a), (b))) #define chmax(a, b) ((a)=max((a), (b))) #define fs first #define sc second #define eb emplace_back </bits/stdc++.h>…

個人メモ 環境構築について

#個人メモ ※説明の画像はWindows8.1だけどWindows10もほとんど同じです。 ※言語はC++です。 1、Visual Studio Codeをインストールする 基本的に下のサイトの通りにインストールすればいい eng-entrance.com 2、MinGWをインストールする Visual Studio Code…

1

テキスト内容が、 abc def g hij kl mn op のとき改行部分をスペースに変えて abc def g hij kl mn op とし、一行の文字列としてstr[200]に入れる。 int word_count(char str[])はわりと簡単でそれぞれの単語の終わりの部分を確認してるだけ。テキストファイ…

2

関数 check_strings() は大文字と小文字の違いを無視して二つの文字列が一致するかどうかを判定する。 int aa,bb; は単語の重複を記録しておくための配列(すべて0で初期化されている。)これをやらないと意地の悪い入力で間違った答えがでる。 なんかもっと…

発展課題集

・発展1 #include <stdio.h> int main() { int M,N,m,n,tmpn; printf("[Computing GCD] Please input two integers : "); scanf("%d%d",&M,&N); if(M >= N)m = M,n = N; else n = M,m = N; while(n){ tmpn = n; n = m % n; m = tmpn; } printf("GCD of %d and %d : %d</stdio.h>…

発展3

#include <stdio.h> int main() { int r,N,i; printf("Please input two integers as radius and resolutin : "); scanf("%d%d",&r,&N); double ans = 0,sa = ( (double)r / (double)N ),nau = 0,pai = 3.141592653589793238462643383279; for(i = 1;i <= N;i++){ nau</stdio.h>…

発展2

#include <stdio.h> int main() { int a,b,N,i; printf("Please input three integers for an interval and a resolution : "); scanf("%d%d%d",&a,&b,&N); double ans = (double)a*a,sa = ( (double)(b-a) / (double)N ),nau = (double)a; for(i = 1;i <= N;i++){ na</stdio.h>…

発展1

#include <stdio.h> int main() { double r; printf("Please input a positive real number as radius : "); scanf("%lf",&r); int R = (int) r + 1,i,j,ans = 0; for(i = -R;i <= R;i++){ for(j = -R;j <= R;j++){ double x = i,y = j; if(x*x + y*y <= r*r)ans++; }</stdio.h>…

発展課題2

ほかにもたくさんやりかたあります 説明 N = 849259のとき nauの値を 849259 84925 8492 849 84 8 とfor文で変更していき、各値を10で割ったあまりをsumに加えていく解法。 #include <stdio.h> int main() { int N; printf("Please input an integer N : "); scanf("%</stdio.h>…

JOI2016予選

予選落ちました。今年から本選会場が東京から筑波に変わるらしくて行きたかったけど残念です(チーン)。おひさしぶりです。JOI予選に参加して死んできました。結果はたぶん4完です。問5,6は頭で解けましたが実装力不足で面倒くさくなってやめました。ジュケン…