90pts,#16 #17 WA 求助
查看原帖
90pts,#16 #17 WA 求助
534901
伊莉雅丝菲尔楼主2021/7/7 14:25

实在是找不到错了,本人已经调了一上午了

目前只有这两个点WA,希望有大佬救我/kel

不知道为什么这题数据不让下载 导致我没法面向数据编程

我甚至不敢用大号交题了(

/*************************************************************************
    > File Name: p3622.cpp
    > Author: Typedef 
    > Mail: 1815979752@qq.com 
    > Created Time: 2021年07月07日 星期三 07时37分52秒
    > Tags: 
 ************************************************************************/
//这是 @typedef 的小号,可能会与大号提交重复代码,希望管理员手下留情 QAQ 
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
const int N=5e4+4,M=57,S1=(1<<4)-1;
int n,C,S=1<<5;
int f[N][M],g[N][M];
int main(){
	scanf("%d%d",&n,&C);
	for(int i=1;i<=C;i++){
		int a,b,c,x,t1=0,t2=0;
		scanf("%d%d%d",&a,&b,&c);
		for(int j=1;j<=b;j++) scanf("%d",&x),x=(x-a+n)%n,t1|=1<<x;
		for(int j=1;j<=c;j++) scanf("%d",&x),x=(x-a+n)%n,t2|=1<<x;
		for(int j=0;j<S;j++) if((j&t1)||(~j&t2)) g[a][j]++;
	}
	int ans=0;
	for(int j=0;j<=n;j++) f[0][j]=-INF;
	for(int i=0;i<S;i++){
		f[0][max(i-1,0)]=-INF;
		f[0][i]=0;
		for(int j=1;j<=n;j++)
			for(int s=0;s<S;s++)
				f[j][s]=max(f[j-1][(s&S1)<<1],f[j-1][(s&S1)<<1|1])+g[j][s];
		if(ans<f[n][i]) ans=f[n][i];
	}
	printf("%d\n",ans);
	return 0;
}
2021/7/7 14:25
加载中...