代码
ahstunwy
这个作者很懒,什么都没留下…
展开
-
C++ 史上最详细的树形DP
看了很多的博客,基本上关于树形DP是一句话带过:说什么孩子节点选或者不选,父节点选和不选。对于初学者来说,我个人觉得他们的内心需要一些具象的表达方法,说白点,就是详细点,直接一点可以上图说明。我们就不来什么具体题目了,直接画个图:假设要求:选取某个节点的时候,就不能选取它的父亲节点和孩子节点,求选取节点数量最大是什么?比如你选择了节点 3,那么你不能选取1 和 5,想必大家可能接触过《没有上司的舞会》那道题,对,这就是那道题的原型。但是还得说个重点:我们先要从叶子节点算起,通俗点讲,符.原创 2020-05-14 10:24:02 · 1081 阅读 · 0 评论 -
邻接表的数组方式
vector模拟邻接表真是太方便了,通俗易懂。#include<iostream>#include<vector>#define MAXN 100using namespace std;int n,m;struct edge{ int to; int cost;};vector<edge> mp[100];int main(){...原创 2020-04-20 12:09:59 · 173 阅读 · 0 评论 -
C++ 排列组合问题
排列组合问题,在学到深度优先搜索时候,经常遇到,这篇文章重点讲组合问题。ps:因为排列问题比组合问题简单很多。首先我们必须了解排列和组合的区别,其实只有一点:排列讲究顺序,而组合不需要,所以这就是刚才排列较为简单的原因,直接深度搜索,不用考虑啥因素。但是组合问题,如果不在深度搜索里做点啥,会导致1 2 5, 1 5 2这样重复的一组出现。我们来说说我实现组合的原理:其实无论你给定什么类型的...原创 2020-04-10 08:08:44 · 599 阅读 · 0 评论 -
C++部分和问题
部分和问题:给定整数a1,a2,…,an判断是否可以从中选出若干数,使他们的和恰好为k样例1:输入:n=4a={1,2,4,7}k=13输出:Yes(13 = 2 + 4 + 7)样例2:输入:n=4a={1,2,4,7}k=15输出:No思想:这道题明显看上去就是一个递归搜索的问题。对于每一个数有两种状态:选取和不选取。如图:左分支是不选取状态,右分支是选取...原创 2020-04-07 17:07:19 · 573 阅读 · 0 评论 -
邻接表
我们都知道在存储稠密图时候,邻接表比邻接矩阵效率高,因为邻接矩阵中在存储稀疏图时候,很多没用连接的点既占了空间,也浪费搜索时间。所以这篇博客帮助大家,学习一下邻接表。写的不好之处,请海涵。首先我们需要需要定义一个结构体,来描述边。struct e{ int to; // 边的终点 int next;// 专业书上叫做存储当前边的下一条边,但是我觉得理解为上一条边好像更好,过会从图中可以看出...原创 2020-04-05 10:18:13 · 164 阅读 · 0 评论 -
前端-拖放事件
<div id="div1" ondragover="allowDrop(event)" ondrop="drop(event)"></div><img id="drag1" src="2.jpg" alt="风景" dragable="true" ondragstart="drag(ev原创 2018-02-28 08:57:24 · 216 阅读 · 0 评论 -
二维数组的行列求和以及最大差值
#includeint cmp(void const *a,void const *b){ return *(int*)a-*(int*)b;}int main(){ int a,b; while(1) { scanf("%d%d",&a,&b); if(a==0||b==0)原创 2016-04-14 12:44:17 · 2191 阅读 · 0 评论