tozangezan's diary

勝手にソースコードをコピペして利用しないでください。

2014-01-01から1年間の記事一覧

CODE FESTIVAL 2014

エキシビション大会中に編集しています。 さすがに今やっているコンテストの解法についてつぶやくのはいかがなものかと思うので、とりあえず昼のコンテストの参加記を書くことにします。 なぜか3位をとれました。やったぜ。A,B,C,D,E:カンタン枠 簡単。こう…

SRM 638

300: 例のアレ{"YNY","YYY","YYY"} {"YNY","YYY","YYY"} → "Possible" {"YNY","YYY","YYY"}やるだけ(ちゃんとサボらずやるということが本質)。 // I like wolves!! #include <vector> #include <map> #include <set> #include <deque> #include <stack> #include <bitset> #include <algorithm> #include <sstream> #inclu</sstream></algorithm></bitset></stack></deque></set></map></vector>…

AOJ 1281: The Morning after Halloween

AOJ

タイトルがタイトルなので11/1の午前中に解いておこうと思い、解いた。解法:実装するだけ。650とは思えない。空白マスがあんまり多くないことが大事。 #include<stdio.h> #include<algorithm> #include<queue> #include<vector> using namespace std; char str[20][20]; int dx[]={1,0,-1,0,0};</vector></queue></algorithm></stdio.h>…

AOJ 0204: UFO Shooting Down Operation

AOJ

たぶん問題文の解釈はこうが正しいです。ここら辺のeps周りが全く推測不能なのですが無視していいっぽいです。

AOJ 0171: Dice Puzzle

AOJ

問題文: http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0171概要:書けや、ゴラァ解法:書く。 現役時代にHuziwaraにとんでもないやるだけクソ問と言われてたのでやったが、意外と適切な実装をすると特に努力しなくても1000B切れる。やったこ…

SRM 633

Hardはどうせ2-SATなので解いてもここに載せる気が起きない。250:危険なアレ Medium openなので難しいということを事前にわかって開けた。難しいと分かっているのでゆっくりやれた。2通りに場合わけするだけ。 // I like wolves!! #include <vector> #include <map> #inc</map></vector>…

数え上げ問題 紹介 ver.0

今まだver.0なのでほとんど情報がありません。数え上げ問題でよく使うコード断片集(変数名とかかぶりすぎててそのままでは使いにくい) Ideone 基本 全探索 数学するだけ https://judge.npca.jp/problems/view/71 http://codeforces.com/problemset/problem/2…

SRM 632

明日は天プロです。300: それぞれの区間について、条件を満たすためには、 ・最大値は1つ。 ・ほかの場所はd[i]がその最大値からの距離の2進表記の最後の0の個数。5位。 // I like wolves!! #include <vector> #include <list> #include <map> #include <set> #include <deque> #include <stack> #i</stack></deque></set></map></list></vector>…

JOI2014 夏季セミナー 参加記

JOI

春と違って夏季セミナーは競技プログラミング以外のこともしないといけないので、最適なチューターになるのは難しいです。 頑張ったこと なんだかんだ言っておきながらこっそりちゃんとどういう章で構成されているかを事前に把握しておく。 ちゃんと時間に間…

SRM 563 Div1Hard

問題概要: #.#..#.# #..#.#.# ###.###. #.#.#### こんな感じのボードのいくつかの空きますにコインを乗せる。傾けると1箇所場所が移動する。 壁にさえぎられていると動かない(一つのマスにどんどんコインが入ってくることも)、外に出たら落ちてしまう。 1つ…

SRM 628

大負け直後のSRM。また負け。250: やるだけ。4位。 // I like wolves!! #include <vector> #include <list> #include <map> #include <set> #include <deque> #include <stack> #include <bitset> #include <algorithm> #include <functional> #include <numeric> #include <utility> #include <sstream> #include <iostream> #include </iostream></sstream></utility></numeric></functional></algorithm></bitset></stack></deque></set></map></list></vector>

Codeforces Round #257 (Div1)

たまにはCFもやります。D: 自明やるだけ #include<stdio.h> #include<algorithm> using namespace std; int a[1100000]; long long pow2[1100000]; int b[1<<20]; int main(){ int mod=1000000007; int n;scanf("%d",&n); pow2[0]=1; for(int i=1;i<1100000;i++)pow2[i]=pow2[i-1</algorithm></stdio.h>…

SRM 335 Div1Hard

機械的に問題を典型で処理するというのはかなり楽だと思うんですよね。概要 n項ある整数列が2つある。(n 持ち点は初め0である。 以下のことをn回繰り返す。 「 2つある数列からそれぞれ一回も選ばれていないものをランダムに一つ選ぶ。 1つめの数列から選ば…

SRM 589 Div1Hard

解法が面白かったのでメモ問題: 1つのバイナリ列(長さ300以下)と整数Mが与えられる。 たとえばM=4のとき、 ....suffix prefix... こういうふうに2通りで見て、suffixとprefixが同じになるようにしたい。 できる変換は、ある1箇所だけ反転させることと、先頭…

国内予選

Div1Hard、弥生に行くまでに300問解けなかったらTwitterやめます。— Zirk@TC灰@残り297問 (@dp_zirk) 2014, 7月 11

PKU 3581: Sequence

PKU

サの練習。蟻本みて書いた。勉強しないといけないですね。 PKUにはこの手の問題が大量にある。 #include<stdio.h> #include<algorithm> using namespace std; int b[410000]; int c[410000]; int z[410000]; int n; int k; int rank[410000]; int tmp[410000]; int sa[410000]; bo</algorithm></stdio.h>…

AOJ 2415

AOJ

DPの練習によさそうなやつ #include<stdio.h> #include<algorithm> using namespace std; long long dp1[5000][5000]; int dp2[5000][5000]; long long b[5000]; long long c[5000]; int main(){ int a; scanf("%d",&a); //while(~scanf("%d",&a)){ for(int i=0;i</algorithm></stdio.h>

KUPC2011の簡単なほう

AOJ

そろそろKUPCなのでKUPCの過去問をやりました。KUPCは特殊形式の良問みたいなのが多くてgood. UTPCよりもいい問題かもしれない。E: Fpx Number だめなものを数える。 だめな数nは、 素数の2乗の倍数である必要がある。(p^2とする) pより小さい素数qにたいし…

429D: Tricky Function

よく考えてみると、f(i,j)は二点(i,sum(1,i)a[k]),(j,sum(1,j)a[k])の距離の2乗。 ということで最近点対やって、どうぞ。 例によって無気力コーディングをしていたらマージソートで嵌ったの巻 #include<stdio.h> #include<algorithm> #include<vector> using namespace std; int x[101000</vector></algorithm></stdio.h>…

ICPC World Final 2014 in Ekaterinburg 参加記 -コンテスト編-

(後半にC問題の解説を書きました。Intersection of Two Prismsを解くときとかでも参考にしてください。)とりあえず書きたいことはたくさんあるんですが、いっぺんに大量に文章を書くのが苦手なのと今日昼過ぎに帰ってきたので体力的にもアレなので、とりあえ…

AOJ 1313: Intersection of Two Prisms

AOJ

x座標をソートしてそれぞれに対してy,zの幅を求めて数値積分をする。 断面積はせいぜい2次式なので近似公式だけで近似どころか正しい値になる。二つの多面体が面で接したりするといろいろと面倒だったりするので、それぞれのxに対して-EPS,+EPS両方用意して…

AOJ1143: 六角沼の六角大蛇

AOJ

!!!これは国内予選のC問題です!!!面倒な探索するだけの圧倒的国内予選感。 僕はこういう変なのより構文解析を出してほしいです… mapでDPと距離で遠すぎるときで枝刈り。 #include<stdio.h> #include<algorithm> #include<set> #include<map> using namespace std; struct snuke{ int </map></set></algorithm></stdio.h>…

AOJ1164: 締まっていこう

AOJ

りんごさんの締まっていこうの解説(のアーカイブ)がCodeforcesにあるのでそれを読みましょう。 OpenCupの時に言ってた解法がメインパートで簡単。 しかし、DPパートが結構面倒です。 結構時間がかかったが一発ACがもらえたので満足。 #include<stdio.h> #include<math.h> #inc</math.h></stdio.h>…

SRM 526.5 MagicBlizzard

統計学の知識を使う良問。問題: 「-R という情報が50個以下与えられる。このとき、各マスに(降った雪の個数)^2の合計の期待値を求めよ。解法: まず、試してみるとそれぞれのマスにおいて(降った雪の個数)^2を求めて、足せばよいことは分かる。 確率変数Xを…

AOJ 1314 Matrix Calculator

AOJ

WFも近いし最近あんまり構文解析やってないから今日は構文解析。 問題文のBNFに解法が書いてある系問題。実数倍の存在を忘れないように。 あと手元だとスタックサイズ調整してやらないとsegmentation faultしました。 pairを使わないことが短い実装をするの…

438D: The Child and Sequence

昨日のアレ。modを取る処理は数が変わらないか2分の一未満になるので、updateされない限りlog ほげ回しか数字は変わらない。 範囲においてsetとかで数が小さい順に参照できるようにしておけば、「数が変わらない」ゾーンを全部すっとばせる。 後は「和を求め…

Codeforces Round #250 (Div. 1)

もうCodeforcesには出ません、と2月くらいに言いましたが、WFが近くそんなこと言ってられなくなったので参加しました。A: 辺を全部切ることと、辺を切るときには辺につながっているうち大きいほうをはずせばコストが小さくなるということを考えれば、コスト…

GCJ2014 Round2

GCJ

なんだこのセットは…A: CFで既出らしい。やるだけ。 #include<stdio.h> #include<algorithm> using namespace std; int c[11000]; int main(){ int T; scanf("%d",&T); for(int t=0;t</algorithm></stdio.h>

AOJ 2343 Matrix Operation

AOJ

さすがにそろそろICPC対策しないとなあと思い、Marathon Matchのレーティングを犠牲に練習を始めます。ところでこういう実装は苦手です… #include<stdio.h> #include<algorithm> #include<map> using namespace std; int row[41000]; int col[41000]; map<pair<int,int>,int> m; char str[10]; int d</pair<int,int></map></algorithm></stdio.h>…

IOI2012 Scrivener

IOI

trie木的なデータ構造にdoubling要素を付け足して子ノードの参照をとっぱらう。 普通にこれIOI2012で一番簡単ですね。なぜ解けなかったんだ… #include<stdio.h> #include<algorithm> #include<vector> using namespace std; struct wolf{ char c; int dep; int par[20]; wolf(){ for(int </vector></algorithm></stdio.h>…