随笔分类 -  算法-搜索

摘要:题目描述 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 输入 输入含有多组测试数据。 每组数据的第一行是两个正整数n和k,用一个空格隔开,表示了 阅读全文
posted @ 2018-10-12 13:17 最美遇见你 阅读(239) 评论(0) 推荐(0)
摘要:#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一定... 阅读全文
posted @ 2018-10-12 11:38 最美遇见你 阅读(540) 评论(0) 推荐(0)
摘要:这是一个通用的方法,还可以使用贪心算法: 可以先将每一列的0全部移动到这一列的上方,然后如果白色的棋子没有刚好形成两行,那么就依次 将移动之后 最下方的白色棋子移动到黑色棋子最高的地方。 阅读全文
posted @ 2018-07-30 21:04 最美遇见你 阅读(209) 评论(0) 推荐(0)
摘要:时间限制: 1Sec 内存限制: 128MB 提交: 49 解决: 15 时间限制: 1Sec 内存限制: 128MB 提交: 49 解决: 15 时间限制: 1Sec 内存限制: 128MB 提交: 49 解决: 15 题目描述 给出一个整数 n(n< 10^30) 和 k 个变换规则(k< =1 阅读全文
posted @ 2018-04-25 23:25 最美遇见你 阅读(757) 评论(0) 推荐(0)
摘要://大致的思路如下: 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... 阅读全文
posted @ 2018-04-15 14:17 最美遇见你 阅读(225) 评论(1) 推荐(0)