死于算法,生于算法
死于算法,生于算法
全部文章
题解
基础算法(10)
未归档(1)
归档
标签
去牛客网
登录
/
注册
死于算法,生于算法的博客
全部文章
/ 题解
(共20篇)
题解 | #可爱の星空#
解法一(dfs) 每两个点连接一条边可以看成是两个数相加.根据题干要求,要代价最小,也就是转换成两个加数且这两个加数要相差小.所以也就是分成x/2和x/2或x/2,x/2+1. #include<iostream> using namespace std; typedef long lo...
2021-11-30
3
657
题解 | #走出迷宫#
#include<iostream> #include<algorithm> #include<cstring> #include<queue> using namespaces std; const int N=510; int x1,y1,x2,y...
2021-11-17
1
460
数独
这个因为要进行试探某一位置是否可填,所以就是dfs,主要麻烦在某个数是否被使用.这里我们开3个布尔数组进行是否可填 h[N][N]:第i行的j是否被填过 l[N][N]:第i列的j是否被填过 x[N][N]:第i个小方格中是否填过j #include<iostream> #define ...
2021-11-14
0
572
棋盘问题
这个我是按照单个点来判断的,一定要注意当s==k时要返回,因为后面不能继续放置了. #include<iostream> using namespace std; const int N=9; int n,k,res; char a[N][N]; bool c[N],r[N]; void...
2021-11-14
0
446
老子的全排列呢&&DFS
这就是一个深搜,我们把dfs的参数设为第x位,所以就是遍历1~8,看看哪个数没有被用到(也就是设置vis数组来表示有没有被用到),a数组用来表示第x位为哪个数字 #include<iostream> using namespace std; const int N=9; int a[N]...
2021-11-13
1
561
认亲戚
这个就是一个简单的并查集,如果是就合并.我们这里主要是用序号来代表人名,所以需要使用到map #include<iostream> #include<map> using namespace std; const int N=2e4+10; map<string,int...
2021-11-12
0
414
食物链
主要是有三种动物,所以我们以这三种动物为集合,每次操作的时候,我们要把所以情况合并起来,然后也就是需要开三倍数组.我的理解就是当前并查集仅仅就是把存在的关系列出来了,然后进行查找,而不是说把他们分别是什么记录下来(在合并前用n和2*n就分开了) #include<iostream> #i...
2021-11-12
0
458
简单的数据结构
这个题就是使用双端队列就ok了... 其实可以手写个双端队列,貌似有点困难 主要注意的就是题目只要输入两个数,而且前一个数压根没有用 #include<iostream> #include<queue> #include<algorithm> using name...
2021-11-11
0
421
重返小学
这个题比表达式求值既高级又低级.高级在需要算阶乘,低级在没有括号问题 在求阶乘的时候,如果我们直接自己写函数,那么就会诱发超时或者超空间.因此有位大佬运用预处理的方式成功AC了,向她致敬 #include<iostream> #include<cmath> using nam...
2021-11-11
9
1110
第k小
最开始我的想法是把所有数据都保存在优先队列里,然后每当弹出时就用其他容器接住,然后再放回优先队列中,结果果不其然超时了。 于是看了题解,觉得有道理,可以用大根堆(less)来保存,先将所有数据保存在堆中,如果堆的大小大于k,那么也就是说后面的数据压根不可能成为答案,所以就出队。然后接着进行选择,如果...
2021-11-08
1
511
首页
上一页
1
2
下一页
末页