[APIO2007]动物园
2021-04-09 16:24
阅读:493
\(n\leq10^5\)
解析
注意到每个小朋友只能看到\(5\)个动物,可以状压\(DP\)。
我们可以对每个小朋友预处理一下他面对每种状态会不会满意。
然后就可枚举动物数\(j\)和当前状态\(s\)进行状压\(DP\)。
\(f[j][s]=max(f[j-1][(s\&15)
有点绕脑的是这是个环。
我们在开始时规定\(0\)号位(即\(n\)号位)的某一状态可以转移,最后只统计\(n\)号位上这一状态的答案即可。
#include
#include
#include
#define check(st) ((st&l)||(~st&d))
using namespace std;
template inline void read(Tp &x)
{
x=0;
char ch=getchar();
while(ch‘9‘) ch=getchar();
while(ch>=‘0‘&&chy?x:y;}
void input()
{
int a,b,c,l,d,t;
read(n);read(m);
for(int i=1;i
评论
亲,登录后才可以留言!