搜索
四光年
算法无止境!
展开
-
HDU1114 完全背包问题
玛德,数组开小了会超时。。。。这篇文章就记录一下自己对于01背包到完全背包一维数组转换的理解。推荐去看《背包九讲》as we all know,01背包的二维数组的转移方程就是:(这个真的是超级重要,后面的其他背包问题都可以看作是01背包问题延申出来的。嗯,我是个渣渣~我是看网上的大佬都这样说)for(int i=0;i<n;i++){ for(int j=0;j<=M...原创 2018-10-17 21:13:32 · 158 阅读 · 0 评论 -
POJ3414 bfs
这个题第一眼感觉就是分情况讨论。当时推了好久,但感觉很混乱而且太麻烦,没想到是BFS。其实根据BFS的一些性质应该是能想到的:有限个确定的方式+树的宽度不大(数据不大)#include <iostream>#include <cstring>#include <cstdio>#include <queue>using namespa...原创 2019-02-14 11:07:29 · 101 阅读 · 0 评论 -
kuangbin专题一 搜索入门
A:直接dfs#include <iostream>#include <cstring>#include <string>#include <cstdio>using namespace std;#define ll long long int const int maxn=10;char Map[maxn][maxn],tem...原创 2019-02-16 19:23:59 · 104 阅读 · 0 评论 -
HDU1495
无话可说。。。hduc++不支持q.push((Node){1,2,3,4}),转换类型的写法。。。G++超时,C++AC。要死感觉几个瓶子分水的题都是bfs。。。。#include <iostream>#include <cstring>#include <cstdio>#include <queue>using namespac...原创 2019-02-14 21:23:12 · 82 阅读 · 0 评论 -
牛客32 B
链接:https://ac.nowcoder.com/acm/contest/272/B来源:牛客网 题目描述给定一棵n个点的树,每个点有权值。定义表示 到 的最短路径上,所有点的点权异或和。对于,求所有的异或和。 输入描述: 第一行一个整数n。接下来n-1行,每行2个整数u,v,表示u,v之间有一条边。第n+1行有n个整数,表示每个点的权值。...原创 2018-12-02 18:35:46 · 74 阅读 · 0 评论 -
洛谷1120 死在79分 神剪枝+前面搜索状态影响后面
If not me,who? 错误的思路,我用了n个小时验证我的思路是有问题的。。。将小木棍从大到小排序后。然后开始从大的木棍开始选取,在选取下一个木棍的时候也是尽量从大的开始选取,但是问题就出现了,这样选取的结果可能不是最优的。。。(就是说会造成不恰当的选取),怎莫说呢,你第一个选取了第i个小木棍,作为初始的小木棍,然后又挑选了一个尽量大的小木棍,作为下一个选取的对象,这个时候两个大的小...原创 2018-11-29 21:25:58 · 100 阅读 · 0 评论 -
发现规律+dfs
开始用的是map,但是发现怎末也过不去,还以为是dfs不行,就换成了bfs,但还是不行。最后看了别人的代码换成了vecotr就成了。。。。思路:1:路径通过对2取模之后,只剩下0或1,任意找一个结点,然后从这个结点往下开始dfs,记录到这个结点的距离是0的个数n。则这n+1(包括这个起始结点本身)可以从中间选取三个点符合条件。剩余的点就又是另外的一种情况(他们到起始结点的距离为1,但是他们...原创 2018-11-03 13:10:51 · 170 阅读 · 0 评论 -
BFS 走出迷宫 我的第一道BFS
用S表示出发点,用.表示可以走的点,用G表示最后的终点,用#表示墙,不能通过。计算出能不走出迷宫,如果能走出迷宫,就计算出最短路径。用队列的思想来实现BFS***用一个dis[][]二维数组在dis[x][y]处专门存储起点到(x,y)的距离。***先将起点push进队列,然后将此处的dis[][]设置为0,然后进入循环。得到队列的第一个元素front,判断front是不是终点,是终点...原创 2018-09-21 16:49:27 · 475 阅读 · 0 评论 -
hdu1026 bfs+优先队列+记录方向
这篇文章让我收获相当大。。。做了4个小时,最后还是跑去看了别人的题解1:思路:bfs+优先队列用flag[x][y]记录走到(x,y)处,上一步走的方向(用0,1,2,3表示),flag[][]数组初始化都是-1。因为标记了flag数组,加上个判断,王子就不会走已经走过的路径了。bfs最先到达的一定是最快的,将每一个结点传入优先队列,一直取top。2:自己收获:1:bfs:最开...原创 2018-10-10 14:45:15 · 122 阅读 · 0 评论 -
123
做搜索题一定要细心,写错一个就很难出来了,教训啊!#include <iostream>#include <cstdio>#include <map>#include <queue>#include <cstdio>#include <algoritHm>#include <cstring>#i原创 2018-10-19 09:30:55 · 91 阅读 · 0 评论 -
HDU 5305
作为昨天晚上214宿舍随机赛第一场最难的一道题(总共一道题。。。),昨天晚上在已经被提示是深搜的情况下,想了好久才想起来。又花了好久做出来之后发现超时。。。哎继续努力,没有不能AC的题,只有不努力的人。dp[i][0] dp[i][1]就是表示第i个人的线上朋友,线下朋友个数思想:将每一对朋友的信息存进结构体里面,对应每个人的朋友总数量可以直接算出来,如果是奇数,就没有分配方法,这是...原创 2018-10-17 21:29:36 · 164 阅读 · 0 评论