摘要: 下图国际象棋棋盘 相同颜色上面放置马都不会相互攻击!!! 设$n\leq m$有特殊情况: 1. 当n=1,答案为m 2.当n=2,每次填满一个田字格,隔一个田字格,再填下一个... 3.当n>2,答案为(n*m+1)/2 AC代码 #include <stdio.h> #include <algo 阅读全文
posted @ 2018-03-27 20:20 flyawayl 阅读(330) 评论(0) 推荐(0) 编辑
摘要: $dp(i,j,lim),(j \le i)$表示将$i$划分为不超过$j$个正整数且最大正整数不超过$lim$的方案数。 AC代码 #include <stdio.h> #include <string.h> #include <algorithm> using namespace std; ty 阅读全文
posted @ 2018-03-27 19:50 flyawayl 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 不考虑某个区间,其他区间必须距离相等,也就是要划分为距离为最大公约数。 那么如何快速求解任意$n-1$个区间的最大公约数?用l[i]表示前i个数的最大公约数,r[i]表示后$(n-i)$个区间的最大公倍数,删除区间i之后剩余的$n-1$个区间的最大公约数就是$gcd(l[i-1], r[i+1])$ 阅读全文
posted @ 2018-03-27 18:05 flyawayl 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 题目链接:藏宝图 说两种解法。 1.由于十个点都要走一次,所以可以枚举10个藏宝点的全排列,再把起点$(0,0)$和终点$(0,0)$放在排列的首尾,用11次bfs即可获得一种走法的最短路径。 2.把用二进制来表示每个藏宝点,$(x,y,status)$表示获得了status的宝物,来到了点$(x, 阅读全文
posted @ 2018-03-27 17:10 flyawayl 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 题目链接:合并数字 由于每次需要删除最左边的两个相差为一的较大数,可以用栈来模拟。 AC代码 #include <stdio.h> #include <math.h> #include <stack> #include <algorithm> using namespace std; stack<i 阅读全文
posted @ 2018-03-27 17:02 flyawayl 阅读(156) 评论(0) 推荐(0) 编辑