tozangezan's diary

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

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

Codeforces Round #310 (Div. 1)

久しぶりに参加しました。全問やるだけセットなんて初めて見た。A: やるだけ。 #include<stdio.h> #include<algorithm> using namespace std; int main(){ int a,b; scanf("%d%d",&a,&b); int v=0; for(int i=0;i</algorithm></stdio.h>

AOJ 0618: Rampart

AOJ

2011合宿のDragon原液1mlを1000倍に薄めて付属の計量カップ1杯とってきたくらい簡単。 これで本選5とは…(というか去年と一昨年が難しすぎるだけかも) #include<stdio.h> #include<set> #include<algorithm> #include<vector> using namespace std; bool t[4100][4100]; short ul[4100][4100]; </vector></algorithm></set></stdio.h>…

ICPC2015 国内予選 参加記

作りました。みなさんプレイしましょう。Japanese villages who has less than 1,000 peoplewww.sporcle.com

AOJ 0617: Ball

AOJ

しばらく諸事情で競技プログラミングができないので、記事を書いておくことにする。 非典型で良問だと思う。 二分探索をする 木を作る より多く必要な人数を木DPする ということを気にすればOK。 #include<stdio.h> #include<algorithm> #include<vector> #include<queue> using namespace std; </queue></vector></algorithm></stdio.h>…

AOJ 2644: Longest Match

AOJ

Suffix Array+Segment Tree。 Suffix Arrayでlower_boundってどうするんだっけとか一瞬思ってしまった。 #include<stdio.h> #include<algorithm> #include<string.h> using namespace std; char str[210000]; char in[210000]; int q[910000]; int n; int sa_k; int rank[910000]; int tmp[</string.h></algorithm></stdio.h>…

AOJ 2587: Elevator Hall Number

AOJ

左からi桁決めたときに次に挙げるもののうちどれにマッチするかの集合がどれか、でbitDP。 k個の整数が終了した k個目の整数の10の位まで終了した。1の位で可能なパターンは某(場合によるが3種類くらいある) 押し込むと最大18bit。遷移もやはり場合わけが必…

AOJ 2622: Removing Magical Tiles

AOJ

追記:えっとパスの長さだから本当は下の図の0~5のところは1個多いですね かなり解法が面白かったので解法を1枚の画像にしました。 #include<stdio.h> #include<algorithm> using namespace std; int l1[110000]; int r1[110000]; int l2[110000]; int r2[110000]; int segtree[</algorithm></stdio.h>…

AOJ 2643: AI

AOJ

構文解析要素、なし #include<stdio.h> #include<algorithm> using namespace std; char str[52][52]; int dx[]={-1,0,1,0}; int dy[]={0,1,0,-1}; char com[1100]; int vis[52][52][4][1100]; int to[1100]; int last[1100]; int main(){ int a,b; scanf("%d%d",&a,&b); for(int</algorithm></stdio.h>…

AOJ 2642: Dinner

AOJ

自炊が疎なときを思い浮かべるとやりやすい。 #include<stdio.h> #include<algorithm> using namespace std; long long d[510000]; pair<long long,int> e[510000]; int main(){ int a,b,c; scanf("%d%d%d",&a,&b,&c); for(int i=0;i</long></algorithm></stdio.h>

AOJ 2179: Safe Area

AOJ

これはかなり簡単だと思います。イベントをどうしてこうするだけ。 #include<stdio.h> #include<algorithm> #include<math.h> #include<vector> using namespace std; //略 Pt L[110]; Pt R[110]; Pt vec[110]; double t[110]; int main(){ int W,H,N; double r; while(scanf("%d%d%d%lf",&W,&H,&</vector></math.h></algorithm></stdio.h>…

AOJ 2558: Medical Inspection

AOJ

wataさんがスライドで公開されている方法を使う。 といって使ってみたらTLEするし探索はやっぱり無理だった。(次数1の処理をしたら通った) #include<stdio.h> #include<vector> #include<algorithm> using namespace std; vector<int>g[3100]; vector<int>ng[3100]; int deg[3100]; int use[3100]; </int></int></algorithm></vector></stdio.h>…