2 条题解

  • 0
    @ 2025-10-8 17:03:09
    //Code By zzh 2023.10.8
    #include<bits/stdc++.h>
    using namespace std;
    const int N=5e4+10,M=1<<5;
    int f[N][M],val[N][M];
    int main()
    {
        int n,m;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=m;i++)
        {
            int E,F,L,fear=0,like=0,x;
            scanf("%d%d%d",&E,&F,&L);
            for(int j=1;j<=F;j++) scanf("%d",&x),fear|=1<<((x-E+n)%n);
            for(int j=1;j<=L;j++) scanf("%d",&x),like|=1<<((x-E+n)%n);
            for(int j=0;j<(1<<5)-1;j++) if((fear&~j)||(like&j)) val[E][j]++;
        }
        int ans=0;
        for(int i=0;i<(1<<5)-1;i++)
        {
            memset(f[0],0xcf,sizeof(f[0]));
            f[0][i]=0;
            for(int j=1;j<=n;j++)
                for(int k=0;k<(1<<5)-1;k++)
                    f[j][k]=max(f[j-1][(k&15)<<1],f[j-1][((k&15)<<1)|1])+val[j][k];
            ans=max(ans,f[n][i]);
        }
        printf("%d\n",ans);
        return 0;
    }
    
    • 0
      @ 2025-10-8 17:02:59
      //Code By zzh 2023.10.8
      #include<bits/stdc++.h>
      using namespace std;
      const int N=5e4+10,M=1<<5;
      int f[N][M],val[N][M];
      int main()
      {
      	int n,m;
      	scanf("%d%d",&n,&m);
      	for(int i=1;i<=m;i++)
      	{
      		int E,F,L,fear=0,like=0,x;
      		scanf("%d%d%d",&E,&F,&L);
      		for(int j=1;j<=F;j++) scanf("%d",&x),fear|=1<<((x-E+n)%n);
      		for(int j=1;j<=L;j++) scanf("%d",&x),like|=1<<((x-E+n)%n);
      		for(int j=0;j<=(1<<5)-1;j++) if((fear&~j)||(like&j)) val[E][j]++;
      	}
      	int ans=0;
      	for(int i=0;i<=(1<<5)-1;i++)
      	{
      		memset(f[0],0xcf,sizeof(f[0]));
      		f[0][i]=0;
      		for(int j=1;j<=n;j++)
      			for(int k=0;k<=(1<<5)-1;k++)
      				f[j][k]=max(f[j-1][(k&15)<<1],f[j-1][((k&15)<<1)|1])+val[j][k];
      		ans=max(ans,f[n][i]);
      	}
      	printf("%d\n",ans);
      	return 0;
      }
      • 1

      【状态压缩DP】[APIO2007] 动物园

      信息

      ID
      2804
      时间
      1000ms
      内存
      125MiB
      难度
      7
      标签
      递交数
      19
      已通过
      9
      上传者