- 乐乐的游戏
怎么写?TLE 20
- @ 2025-11-19 12:22:51
#include<bits/stdc++.h>
#define ll long long
#pragma GCC optimize(2)
#define un unsigned
#define db double
#define st string
#define ct const
#define xh(a,b,c) for(int a=b;a<=c;a++)
#define wx while(1)
#define dn(a,b,c) for(int a=b;a>=c;a--)
using namespace std;
int n,maxn;
char a[30][30];
int f[30][30];
int tj(){
int ans=0;
xh(i,1,20)xh(j,1,20)ans+=(f[i][j]==2&&a[i][j]=='#');
return ans;
}
void dfs(int k,int start,int ans,bool flag){
if(k==n+1){
maxn=max(maxn,tj());
return ;
}
if(!flag){
xh(i,start,20){
xh(j,1,20)f[i][j]++;
dfs(k+1,i+1,ans,flag);
dfs(k+1,1,ans,1);
xh(j,1,20)f[i][j]--;
}
}
else{
xh(i,start,20){
xh(j,1,20)f[j][i]++;
dfs(k+1,i+1,ans,flag);
xh(j,1,20)f[j][i]--;
}
}
}
signed main(){
cin>>n;
xh(i,1,20)xh(j,1,20)cin>>a[i][j];
dfs(1,1,0,0);
cout<<maxn;
return 0;
}
1 条评论
-
xzljm LV 6 @ 2025-11-21 18:48:48#include<bits/stdc++.h> #define ll long long #pragma GCC optimize(2) #define un unsigned #define db double #define st string #define ct const #define xh(a,b,c) for(int a=b;a<=c;a++) #define wx while(1) #define dn(a,b,c) for(int a=b;a>=c;a--) using namespace std; int n,maxn; char a[30][30]; int f[30][30]; int sum[30]; void check(int sum[]){ sort(sum+1,sum+21); int ans=0; dn(i,20,1){ if(i>=20-n+1)break; ans+=sum[i]; } maxn=max(maxn,ans); } void dfs(int k,int start,int ans,bool flag){ if(!flag){ bool F=0; xh(i,start,20){ xh(j,1,20){ sum[j]+=(a[i][j]=='W'); } check(sum); dfs(k+1); xh(j,1,20)sum[j]-=(a[i][j]=='W'); } } } signed main(){ cin>>n; xh(i,1,20)xh(j,1,20)cin>>a[i][j]; dfs(1,1,0,0); cout<<maxn; return 0; }
- 1
信息
- ID
- 126
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 83
- 已通过
- 27
- 上传者