随笔分类 - 算法-搜索
摘要:题目描述 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 输入 输入含有多组测试数据。 每组数据的第一行是两个正整数n和k,用一个空格隔开,表示了
阅读全文
摘要:#include #include #include #include #define N 24 bool stored[N + 2]; int ansCount; using namespace std; void print(stack s) { cout s)//curNum表示1-curNum-1已经放入了栈中,curNum没有,本层递归结束的时候,curNum一定...
阅读全文
摘要:这是一个通用的方法,还可以使用贪心算法: 可以先将每一列的0全部移动到这一列的上方,然后如果白色的棋子没有刚好形成两行,那么就依次 将移动之后 最下方的白色棋子移动到黑色棋子最高的地方。
阅读全文
摘要:时间限制: 1Sec 内存限制: 128MB 提交: 49 解决: 15 时间限制: 1Sec 内存限制: 128MB 提交: 49 解决: 15 时间限制: 1Sec 内存限制: 128MB 提交: 49 解决: 15 题目描述 给出一个整数 n(n< 10^30) 和 k 个变换规则(k< =1
阅读全文
摘要://大致的思路如下: queueq; 源点 s 入队; while(!q.empty()) { 取出队首元素u; for(u的所有邻接边u->v) { if(d[u]+disAdj[MAXV]; int n,d[MAXV],num[MAXV]; bool vis[MAXV]; bool SPFA(int s) { memset(vis,0,siz...
阅读全文

浙公网安备 33010602011771号