一些关于abc的疑问
  • 板块学术版
  • 楼主2c_s
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/3/16 21:47
  • 上次更新2024/3/16 23:45:36
查看原帖
一些关于abc的疑问
583186
2c_s楼主2024/3/16 21:47

为什么每次我都折在 hand 数据上,而且找不到 hack?我已经不知道多少次这样了。蓝瘦香菇 qwq

水平相差无几的同学都能打到我的 1/3 名次,心里着急咋办?

另外,求 hack 我的 D 题代码

#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define pb push_back
#define pf push_front
#define pob pop_back
#define pof pop_front
#define pii pair<int,int>
#define pli pair<ll,int>
#define pll pair<ll,ll>
#define pil pair<int,ll>
#define fi first
#define se second
using namespace std;
const int N=50;
int n,m,k,g[N][N];
struct node{
	int r,c;
	bool use;
}a[N];
inline void del(int id){
	for(int i=1;i<=n;++i){
		for(int j=1;j<=m;++j){
			if(g[i][j]==id)g[i][j]=0;
		}
	}
	return ;
}
inline bool chk(){
	for(int i=1;i<=n;++i){
		for(int j=1;j<=m;++j){
			if(!g[i][j])return 0;
		}
	}
	return 1;
}
inline bool check(node now,int id){
	for(int i=1;i<=n-now.r+1;++i){
		for(int j=1;j<=m-now.c+1;++j){
			for(int x=i;x<=i+now.r-1;++x){
				for(int y=j;y<=j+now.c-1;++y){
					if(g[x][y])goto next;
				}
			}
			for(int x=i;x<=i+now.r-1;++x){
				for(int y=j;y<=j+now.c-1;++y)g[x][y]=id;
			}
			return 1;
			next:;
		}
	}
	for(int i=1;i<=n-now.c+1;++i){
		for(int j=1;j<=m-now.r+1;++j){
			for(int x=i;x<=i+now.c-1;++x){
				for(int y=j;y<=j+now.r-1;++y){
					if(g[x][y])goto nxt;
				}
			}
			for(int x=i;x<=i+now.c-1;++x){
				for(int y=j;y<=j+now.r-1;++y)g[x][y]=id;
			}
			return 1;
			nxt:;
		}
	}
	return 0;
}	
void dfs(int siz){
	// for(int i=1;i<=n;++i){
	// 	for(int j=1;j<=m;++j)cout<<g[i][j];
	// 	cout<<"\n";
	// }
	// cout<<"\n";
	if(chk()){
		puts("Yes");
		exit(0);
	}
	for(int i=1;i<=k;++i){
		if(a[i].use)continue;
		if(check(a[i],i)){
			a[i].use=1;
			dfs(siz+a[i].r*a[i].c);
			a[i].use=0;
			del(i);
		}
	}
	return ;
}
int main(){
	cin>>k>>n>>m;
	for(int p=1;p<=k;++p)cin>>a[p].r>>a[p].c;
	dfs(0);
	puts("No");
	return 0;
}
2024/3/16 21:47
加载中...