2011-01-23から1日間の記事一覧

SRM494 Div2 Easy(250) InterestingParty

InterestingParty #include <string> #include <vector> using namespace std; class InterestingParty{public: int bestInvitation( vector <string> first, vector <string> second ) { int n = (int)first.size(); int ans = 0; for ( int i=0; i</string></string></vector></string>

SRM494 Div1 Medium(500), Div2 Hard(1000) AlternatingLane

AlternatingLane例えば木の高さが1,3,6,9,7,5だったとすると、高さが3,6,7の木を切り倒すので、美しさは単に隣り合う木の高さの差の和。それぞれの木の高さは独立だから、 Σ1≦i≦n-1Σlow[i-1]≦j≦high[i-1]Σlow[i]≦k≦high[i]|j-k|/(high[i-1]-low[i-1]+1)/(hig…

SRM494 Div1 Easy(250), Div2 Medium(500) Painting

PaintingO(N4)で書いたけど、O(N5)でも間に合うらしい。 #include <string> #include <vector> using namespace std; class Painting{public: int largestBrush( vector <string> picture ) { int N = (int)picture.size(); int M = (int)picture[0].size(); vector<vector<int> > P(N,vector<int>(M,1</int></vector<int></string></vector></string>…

SRM494

Easy (250) 151.98 Medium (500) 0 Hard (1000) 0 Challenge 0 結果 1784 → 1737(´・ω・`)

Facebook Hacker Cup 2011 Round 1A First or Last

First or Last動的計画法。t番目の曲がり角で抜いたときのクラッシュの確率をp1[t]、抜かなかったときのクラッシュの確率をp2[t]、直後にr番目である確率をP[t][r]とすると、 P[t][r] = max(P[t-1][r+1]*(1-p1[t]),P[t-1][r]*(1-p2[t]))。 Pythonだと分数が…

Facebook Hacker Cup 2011 Round 1A After the Dance Battle

After the Dance Battle幅優先探索。 #include <iostream> #include <vector> #include <string> #include <utility> using namespace std; int main() { int N; cin >> N; for ( int testcase=0; testcase<N; testcase++ ) { int R, C; cin >> R >> C; vector<string> M(R); for ( int i=0; i<R; i++ ) cin >> M[i]; int sx, sy;…</r;></string></n;></utility></string></vector></iostream>