博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
习题 7-16 找座位(Finding Seats Again, UVa11846)
阅读量:304 次
发布时间:2019-03-03

本文共 758 字,大约阅读时间需要 2 分钟。

原题链接:

分类:回溯法
备注:模拟,水题

注意一下 不填字母的地方一定要是’.’,估计测试数据可能有填不满整个n*n块格子的情况。

#include
using namespace std;int n,k,num[25];char g[25][25],ans[25][25];inline char read(){
char ch=getchar(); while(ch==' '||ch=='\n')ch=getchar(); return ch;}inline bool check(int x,int y,int w,int h){
int cnt=0; for(int i=x;i
1)return false; if(g[i][j]-'0'!=w*h)return false; } } return cnt==1;}bool dfs(int pos,int now){
if(now==k)return true; while(isalpha(ans[pos/n][pos%n]))pos++; for(int w=1;w<=9;w++) for(int h=1;h<=9;h++){
if(w*h>9)continue; int x=pos/n,y=pos%n; if(x+h>n||y+w>n)break; if(check(x,y,w,h)){
for(int i=x;i

转载地址:http://epel.baihongyu.com/

你可能感兴趣的文章