hdu5115专题

hdu5115 区间dp

和北京的那道题好像,可惜还是没能在比赛中做出来。 这个题目可以这样,将n个人分配到座位上,就是求1~n的全排列中符合题意的个数,其中1~n的编号就是他们坐的顺序,先枚举最后一个坐的人的座位编号,然后剩余的人(即编号)分成两部分,一部分在第一个人的左边,一个人在第一个人的右边,这样对于左右两边又是一次全新的分配(左右两边分配到的的编号可能不连续,但是他们有先后顺序即可确定坐的次序,无非是左边坐完右

hdu5115 北京现场赛D

比赛时一直想贪心,其实就是个弱到爆的区间dp。 #include <iostream>#include <cstdio>#include <cstring>using namespace std;int dp[222][222];int a[222];int n;int min(int a,int b){return a<b?a:b;}int solve(int l,int r)