苍翠的松林里,几只乌鸦,几滴血。。。

P1380 T型骨牌

现在60分,没血了。。。 ```cpp #include<bits/stdc++.h> using namespace std; int n,m,ans,l,r,mid; bool vis[10][10],flag; void dfs(int now){ if(flag) return; if(now==mid){ flag=1; return; } for(register int i=1;i<=n;i++){ for(register int j=1;j<=m;j++){ if(vis[i][j]) continue; if(j>1&&j<m&&i<n-1&&!vis[i][j-1]&&!vis[i][j]&&!vis[i][j+1]&&!vis[i+1][j]&&!vis[i+2][j]){ vis[i][j-1]=vis[i][j]=vis[i][j+1]=vis[i+1][j]=vis[i+2][j]=1; dfs(now+1); vis[i][j-1]=vis[i][j]=vis[i][j+1]=vis[i+1][j]=vis[i+2][j]=0; if(flag) return; } if(i>1&&i<n&&j<m-1&&!vis[i-1][j]&&!vis[i][j]&&!vis[i+1][j]&&!vis[i][j+1]&&!vis[i][j+2]){ vis[i-1][j]=vis[i][j]=vis[i+1][j]=vis[i][j+1]=vis[i][j+2]=1; dfs(now+1); vis[i-1][j]=vis[i][j]=vis[i+1][j]=vis[i][j+1]=vis[i][j+2]=0; if(flag) return; } if(j>1&&j<m&&i>2&&!vis[i][j-1]&&!vis[i][j]&&!vis[i][j+1]&&!vis[i-1][j]&&!vis[i-2][j]){ vis[i][j-1]=vis[i][j]=vis[i][j+1]=vis[i-1][j]=vis[i-2][j]=1; dfs(now+1); vis[i][j-1]=vis[i][j]=vis[i][j+1]=vis[i-1][j]=vis[i-2][j]=0; if(flag) return; } if(i>1&&i<n&&j>2&&!vis[i-1][j]&&!vis[i][j]&&!vis[i+1][j]&&!vis[i][j-1]&&!vis[i][j-2]){ vis[i-1][j]=vis[i][j]=vis[i+1][j]=vis[i][j-1]=vis[i][j-2]=1; dfs(now+1); vis[i-1][j]=vis[i][j]=vis[i+1][j]=vis[i][j-1]=vis[i][j-2]=0; if(flag) return; } } } } int main(){ scanf("%d%d",&n,&m); l=1; r=n*m/4; while(l<=r){ mid=(l+r)>>1; flag=0; dfs(0); if(flag){ ans=mid; l=mid+1; }else r=mid-1; } printf("%d",ans); return 0; } ```
by YuRuochen @ 2022-11-04 22:41:01


标题意思是什么。
by Halo_world @ 2022-11-04 22:48:48


@[I_am_xzo](/user/584746) AC+WA+T(
by MeowScore @ 2022-11-04 22:57:42


翻译:大部分 AC,几个 TLE,几个 WA,改了以后没有 WA 了
by qwasd @ 2022-11-04 22:59:45


|