摘要: 0.问题引入 N皇后问题是一个经典的问题,在一个N*N的棋盘上放置N个皇后,每行一个并使其不能互相攻击(同一行、同一列、同一斜线上的皇后都会自动攻击),问有多少种摆法。 题目链接:https://www.luogu.org/problemnew/show/P1219 1、普通回溯 回溯算法也叫试探法 阅读全文
posted @ 2019-03-21 21:45 czc1999 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 题目链接: https://www.luogu.org/problemnew/show/P1379 题目链接:https://vijos.org/p/1360 (题目一样,上面一个测试数据更多) 0.问题引入 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用 阅读全文
posted @ 2019-02-25 17:05 czc1999 阅读(3291) 评论(0) 推荐(0) 编辑
摘要: 思路:dp[i]代表到第i位的最小值,枚举它的前几位,求出最小值。 转移方程:dp[ i ] = min(dp[ i ], dp[ j - 1 ] + 1 ) ; 本来觉得,代码加深部分可以提前break,其实不行,有些特例,比如:oioooo oio ooo是最少的,两个;提前break的话,会判 阅读全文
posted @ 2019-02-23 16:21 czc1999 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 一、 煤球数目 作答:171700 #include <iostream> using namespace std; int main() { int sum=0,x=0; for(int i=1;i<=100;i++){ x+=i; sum += x; } cout<<sum; } View Co 阅读全文
posted @ 2019-02-20 20:28 czc1999 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 1.奖券数目 作答:52488,正确 #include <iostream> using namespace std; bool check(int x) { int a[10] = { 0 }; while (x) { a[x % 10]++; x /= 10; } if (a[4] != 0)r 阅读全文
posted @ 2019-02-19 14:02 czc1999 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5015 看到这个限时,我就知道这题不简单~~矩阵快速幂,找递推关系 我们假设第一列为: 23 a1 a2 a3 a4 则第二列为: 23*10+3 23*10+3+a1 23*10+3+a1+a2 23* 阅读全文
posted @ 2019-02-18 17:04 czc1999 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 网上找了下,好像没有可以从十六进制直接转换到八进制的方法,一般就是转换成10进制或者2进制,再转换成8进制。 分两种情况,如果结果较小的话,用int、long long能装得下的情况下,用16→10→8比较方便: #include <iostream> #include <algorithm> #i 阅读全文
posted @ 2019-02-15 09:34 czc1999 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 01背包: 采药: https://www.luogu.org/problemnew/show/P1048 #include <iostream> #include <algorithm> using namespace std; int dp[1005]; int weight[105],valu 阅读全文
posted @ 2019-02-14 10:17 czc1999 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 大整数相加、相乘 2019年2月23日09:46:21 基本上没有空间浪费。关键是思路清晰,实现起来方便,字符串倒过来放到vector里(倒过来 方便进位运算),然后做完运算再逆序回来。 关于乘法运算,本来是每乘好一位,进位处理一次,其实可以最后统一进位。(统一进位的话最大范围:INT_MAX / 阅读全文
posted @ 2019-02-12 16:17 czc1999 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 枚举 #include <iostream> using namespace std; int main() { int k, flag = 0; cin >> k; for (int i = 100; i < 300; i++) { if (i%k == 0) { int p = (i % 100 阅读全文
posted @ 2019-02-11 13:58 czc1999 阅读(140) 评论(0) 推荐(0) 编辑