tozangezan's diary

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

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

ひとり地区予選 SEERC 2015

yosupot と kyuridenamidaの3人でやりました(チームではない)。F: 試し割りをするだけ #include<stdio.h> #include<algorithm> using namespace std; long long t[110]; long long s[110]; long long u[110]; int main(){ int a;scanf("%d",&a); for(int i=0;i</algorithm></stdio.h>

AOJ 1184: 一般化ポーカー

AOJ

0差、1差、2以上差の3つに分けて全探索。 言われてみればなるほどという感じだし、このくらい思いつくべきでは…… #include<stdio.h> #include<algorithm> using namespace std; char in[10][10]; int pl[10]; int u[10][10]; int t3[10]; int q[10]; int used[10]; int L; int df</algorithm></stdio.h>…

AOJ 2450: Do use segment tree

AOJ

Heavy-Light Decomposition + 遅延評価 Segment Tree (しかも、区間和、左端からの和の最大値、右端からの和の最大値、区間の中での連続する和の最大値の4種類を持たないといけない)。 めちゃくちゃ重いが、特に大きなバグなく通すことができvery good. #inc…

AOJ 2448: Area Folding

AOJ

右手法だか左手法だかいうやつ。双対は作る必要がないが、だからと言ってそんなに楽というわけでもない。 これ結構面倒なのに41人も解いているのもすごいし、3300B台で短いほうから2番目というのもすごい。 #include<stdio.h> #include<algorithm> #include<math.h> #include<vector> using names</vector></math.h></algorithm></stdio.h>…

AOJ 2453: Presantation

AOJ

dp[v]:= v以下の部分木と同じ形が何手で作れるか それぞれに対してコピペに使う根を全探索(サイズの制約で無理なのは無視)して判定。 ハッシュで同じ形を2回以上探索しないようにする。誰か計算量を解析してください。 #include<stdio.h> #include<algorithm> #include<map> #include<vector> </vector></map></algorithm></stdio.h>…

AOJ 2561: Revenge of Minimum Cost Flow

AOJ

ネタバレ:Minimum Cost Flowは必要なかった。全部 ai > biのときは、分岐するのが無駄と分かるので最短路。 ai ↑の流量の候補は実は定数個らしくて決めうちを上手くやればWarshall-Floydでも余裕らしい。なるほどね。サンプルが異常に弱くて ai #include<stdio.h> #i</stdio.h>…

AOJ 1334: Cubic Colonies

AOJ

辺と辺の間をn等分 (n=1,2,...,7)した点を全部列挙してまたもや最短路。ただ闇雲に重いだけ。(量だけなら1000の中ではかなり重いほうだと思う。) #include<stdio.h> #include<algorithm> #include<vector> #include<queue> #include<math.h> using namespace std; char in[3][3][4]; int DIV=3; int gcd(</math.h></queue></vector></algorithm></stdio.h>…

AOJ 2347: Sunny Graph

AOJ

教育的良問。是非解くことをおすすめします。まず、一般グラフの完全マッチングの存在判定におけるTutteの定理を説明します。 Tutteの定理とは、無向グラフから作られる|V|×|V|のTutte行列((i,j)間に辺があるときはA[i][j]+A[j][i]=0となるように変数を、辺…

AOJ 1170: 古い記憶

AOJ

何かAOJ-ICPCの高難度を解くのが流行ってるらしいので流行にのる。Aho-Corasickで判定はできるんだけど、全部を一つ一つ列挙していると間に合わないので、変な順番で枝刈り探索する。 うーんなんか微妙な問題…… #include<stdio.h> #include<algorithm> #include<queue> #include<string> #include<set></set></string></queue></algorithm></stdio.h>…

AOJ 2016: プールの監視員

AOJ

2016年になってしまい仕方なく解いた。 と思ったら拍子抜けするほど簡単だった……ええ何これは……。 まあ確かに点列挙して最短路みたいな幾何問題は無限に練習したしなあ……。 #include<stdio.h> #include<algorithm> #include<math.h> #include<vector> #include<queue> using namespace std; const double</queue></vector></math.h></algorithm></stdio.h>…

CodeFestival2015 沖縄オンサイト 講評(?)

年も明けるというので、思いにふけって沖縄オンサイトの問題について思いを馳せます。もはや参加記のようなもので、問題の解法の助けにはならないと思いますが、問題を作るにいたった経緯とかコンテストの舞台裏みたいなことが書けたらいいと思います。 全体…