wordpress 制作手机站,沪深300指数是什么意思,学网页设计需要学什么,wordpress 限时 插件正题
题目链接:https://www.luogu.com.cn/problem/P3694 题目大意 nnn个人#xff0c;有mmm个队伍#xff0c;每个人都属于一个队伍。要求叫出一些人来#xff0c;然后任意插入出来的空隙中使得同一队的人在一起。求最少出列人数。 解题思路
如果知道最终的队列就可以十分…正题
题目链接:https://www.luogu.com.cn/problem/P3694 题目大意
nnn个人有mmm个队伍每个人都属于一个队伍。要求叫出一些人来然后任意插入出来的空隙中使得同一队的人在一起。求最少出列人数。 解题思路
如果知道最终的队列就可以十分容易的计算答案了。考虑一个一个队伍的放入最终序列中因为mmm十分的小所以我们可以状压表示排好了的队伍集合然后用一个前缀和统计在一个区域内每个队伍的人数即可进行dpdpdp。
时间复杂度O(nm2mm)O(nm2^mm)O(nm2mm) codecodecode
#includecstdio
#includecstring
#includealgorithm
using namespace std;
int n,m,s[110000][20],wz[120],f[120];
int main()
{scanf(%d%d,n,m);for(int i1;in;i){int x;scanf(%d,x);x--;for(int j0;jm;j)s[i][j]s[i-1][j](xj);}int MS1m;for(int i0;iMS;i)for(int j0;jm;j)wz[i]s[n][j]*((ij)1);memset(f,0x3f,sizeof(f));f[0]0;for(int i1;iMS;i){for(int j0;jm;j){int ki^(1j);if(ki)continue;f[i]min(f[i],f[k]s[n][j]-s[wz[i]][j]s[wz[k]][j]);}}printf(%d,f[MS-1]);
}