SRM

SRM 509 Div1 Med Palindromization

SRM

問題概要 回文をつくろう3280 -- Cheapest Palindromeに文字をchangeする操作が加わっている。 基本的にはその問題と同じように区間DPをする。 ただしchangeが加わっているため、changeしてからerase,みたいなことができる。 まずchange操作はワーシャルフロ…

SRM 512 Div1 Med SubFibonacci

SRM

問題概要 問題文を読んでください。まず数列を二つに分けて、それぞれの最大値の合計の最大値を求める。 分けたあとの数列の任意の2組を取ってきて、小さいほうを初項、大きいほうをx番目として、フィボナッチ数列を計算して、含まれる要素の数をかぞえる。(…

SRM 523 Div1 Med BricksN

SRM

dp[W][H]:=上からH段目まで横幅Wのブロックの置き方 #include <cstring> using namespace std; typedef long long ll; #define MOD 1000000007 class BricksN { public: ll num[55]; ll dp[55][55]; ll rec(int W,int H) { if(H==0||W<=0)return 1ll; if(dp[W][H]!=-1</cstring>…

SRM 513 Div1 Med PerfectMemory

SRM

問題概要 記憶力がすごい人がNM枚のカードで神経衰弱をした時のゲーム終了時までのターン数の期待値を求めよ。dp[i][j]:=全く見たことないのがi組、片方だけ見たことあるのがj組のときの終了までのターン数の期待値dp[i][j]からの状態遷移は残ってる2i+j枚の…

SRM 422 Div1 Med BedroomFloor

SRM

やるだけ こんな問題二度と解きたくない typedef long long ll; class BedroomFloor { public: ll num[6]={0}; long long numberOfSticks(int x1, int y1, int x2, int y2) { ll ans=0ll; int lx=(x1/5+((x1%5!=0)?1:0))*5; int rx=(x2/5)*5; int uy=(y1/5+(…

SRM 611 Div1 Med Egalitarianism2

SRM

PCK本選までにDiv1 Med 100問解きます。って言ったので頑張ります。 これが1問目。 問題概要:最小全域木で、使った辺の長さの標準偏差が最小のものをの値を答えよ。 はじめ、標準偏差の定義式からして使う辺の長さは同じ位に固まってるほうがいいかなと思っ…

SRM 616

SRM

腹が立つ。 Easy やるだけ。 class WakingUpEasy { public: int countAlarms(vector <int> volume, int S) { int sz=volume.size(); int sum=0; for(int i=0;i</int>