dlx。。。
一開始讀錯題目了。。。是要把所有正方形都消掉!!!
**裡面有兩種統計正方形和火柴的方法,都值得借鑑。。orz
發一下**
#include#include#include#includeusing namespace std;
const int head=0;
const int inf=10000000;
const int maxn = 1000;
const int maxd = 10000;
int cnt, res;
int mat[maxn][maxn], s[maxn], l[maxd], r[maxd], u[maxd], d[maxd], c[maxd], o[maxn], row[maxd];
bool use[maxn];
void makegragh(int &n, int &m)
void initial(int n, int m)
cnt=m+1;
for(i=1; i<=n; i++)
else
cnt++;}}
//puts("");
}}void remove(int c)
}void resume(int c)
int h()
return ans;
}bool dfs(int k)
else if (i % (2*n+1)==n+1)
else if (i % (2*n+1)==0)
else if (i % (2*n+1)>n+1)
else
}/*for (int i=1;i<=2*n*(n+1);++i)
}*/int numofsq;
void makestick(int n)
{ memset(stick,0,sizeof(stick));
numofsq=0;int ss;
for (int c=1;c<=n;++c)
{for (int i=1;i<=n-c+1;++i)
{for (int j=1;j<=n-c+1;++j)
{++numofsq;
//up
ss=(i-1)*(2*n+1)+j;
for (int p=0;p
1084 外觀數列
1084 外觀數列 20 分 外觀數列是指具有以下特點的整數序列 d,d1,d111,d113,d11231,d112213111,它從不等於 1 的數字d開始,序列的第 n 1 項是對第 n 項的描述。比如第 2 項表示第 1 項有 1 個d,所以就是d1 第 2 項是 1 個d 對應d1 和 1...
1084 外觀數列
1084 外觀數列 20 分 外觀數列是指具有以下特點的整數序列 d,d1,d111,d113,d11231,d112213111,它從不等於 1 的數字d開始,序列的第 n 1 項是對第 n 項的描述。比如第 2 項表示第 1 項有 1 個d,所以就是d1 第 2 項是 1 個d 對應d1 和 1...
1084 外觀數列
1084 外觀數列 20 分 外觀數列是指具有以下特點的整數序列 d,d1,d111,d113,d11231,d112213111,它從不等於 1 的數字d開始,序列的第 n 1 項是對第 n 項的描述。比如第 2 項表示第 1 項有 1 個d,所以就是d1 第 2 項是 1 個d 對應d1 和 1...