摘要: DP的背包问题可谓是最基础的DP了,分为01背包,完全背包,多重背包 01背包 装与不装是一个问题 01背包基本模型,背包的总体积为v,总共有n件物体,每件物品的体积为v[i],价值为w[i],每件物品只有一个,怎么使背包内尽可能的装更多的物品且价值最大? 模板为一维滚动数组,f[m]表示装m的最大 阅读全文
posted @ 2018-10-30 19:47 baccano! 阅读(2080) 评论(0) 推荐(0) 编辑
摘要: 这次比赛oj有一些问题,在于linux换行符之类的问题,让我一直卡在了G题,洛谷一直提交都是对的,就学校的不对.....最后发现实际上我的并没有错 A.海港 感觉是相当费劲的一个题,我上来因为比赛的时候样例给的不足让我以为是>86400导致出现了错误。后来看了洛谷的题解,自己写了一个队列又死活RE。 阅读全文
posted @ 2018-10-27 21:22 baccano! 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 具体合并的过程并不是很清晰啊 代码 include using namespace std; int n1[100]; int n2[100]; void ms(int x,int y) { if(y x 1) { int m=x+(y x)/2; int p=x,q=m,i=x; ms(x,m); 阅读全文
posted @ 2018-10-25 14:18 baccano! 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 一道比较特殊的dfs题,同样给定了数据直接打表。 题目中的+和 的抵销规律可以看做0和1的异或运算,而且还有一个重要的规律,我不会证明那就是 的个数 2=总个数 还有就是这个回溯,真的是好长。。。。 打表代码,省去了freopen include using namespace std; int a 阅读全文
posted @ 2018-10-24 20:54 baccano! 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 六个位运算符& | ^ ~ & 按位与运算符把二进制短的按照位置与二进制长的进行与运算即 1&1=1 1&0=0 0&0=0 | 按位并运算符把二进制短的按照位置与二进制长的进行并运算即 1|1=1 1|0=1 0|0=0 ^ 异或运算相同为0,不同为1 1^1=0 0^0=0 1^0=1 ~ 取反 阅读全文
posted @ 2018-10-24 19:38 baccano! 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 把小的牌放到大的牌上,求最小移动的距离和 DFS遍历所有的可能,把每一张牌与之要移动的牌都进行两层for的循环,注意回溯条件满足立刻break 代码(算法借鉴) include using namespace std; int sum,vis[20],num[20],ans; void dfs(in 阅读全文
posted @ 2018-10-23 21:00 baccano! 阅读(243) 评论(1) 推荐(0) 编辑
摘要: DFS的例题,难点在于所选的yizhong必须是一行的不能拐弯,我第一次写的时候直接在DFS里的判断条件里加了if(当前位置的字符==yizhong相应位置的字符)这样的语句,当然这样不对,因为没有保证拐弯的问题。怎样去保证不拐弯呢,只需要定义一个八向的二维数组,然后寻找到y的时候再去找i找到i就把 阅读全文
posted @ 2018-10-22 18:26 baccano! 阅读(136) 评论(0) 推荐(0) 编辑
摘要: A.成绩 签到题不多说注意用double就行 代码 B.棋盘 DFS+剪枝,特别的地方在于魔法的使用,因为DFS的特殊性,魔法用bool表示的上一个格子是不是已经使用了魔法 代码 include using namespace std; int f[110][110]; int mp[110][11 阅读全文
posted @ 2018-10-20 11:49 baccano! 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 注意本题解并没有去追求最优解,只是用比较暴力的方法求解。D题听说要改说明不是位数30位,目前除了D题可能有问题之外其他代码已经全部正确。 A.查找字串 用string BF(暴力求解即可) 代码 include using namespace std; main() { string a,b; ci 阅读全文
posted @ 2018-10-20 00:03 baccano! 阅读(225) 评论(0) 推荐(0) 编辑
摘要: dfs的题,这个题不好想的就是这个重复单词的选取过程,我索性看了题解。发现可以直接用两个for得出,i确定第一个串的左边的位数j确定右移多少位。注意i从1开始因为str[i][str[i].size()]没有值!!! int bj(string a,string b) { for(int i=1;i 阅读全文
posted @ 2018-10-19 12:41 baccano! 阅读(149) 评论(0) 推荐(0) 编辑