自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(161)
  • 收藏
  • 关注

原创 广度优先搜索算法(有向图和无向图)

广度优先搜索算法的思想:以v作为源点出发访问其他节点,首先使用队列存储节点,再从队列中取出节点,遍历查找v和其他连通的节点,将和v连通的节点并且未被访问过的节点入队,遍历完和v连通的节点;再从队列中取出一个节点w,并以此节点为源点出发遍历和该源点连通的点并且是未被访问过的点入队,如此的重复下去,直到所有的点都被访问过。注意广度优先搜索是先访问和自身节点连通的节点,所以用队列来存储。`一:有向图方法一:#include<iostream>#include<algorithm>

2021-04-30 21:10:28 22 2

原创 深度优先搜索算法(有向图和无向图)

1.深度优先搜索的思想:给定图G=(V,E)。深度优先搜索的思想为:初始时,所有顶点均为未被访问过,任选一个顶点v作为源点。该方法先访问源点v,并将其标记为已访问过;然后从v点出发,选择v的下一个邻接点(子节点)w,如果w已被访问过,则选择v的另外一个邻接点;如果w未被访问过,则标记w为已访问过,并以w为新的出发点,继续进行深度优先搜索;如果w的及其子节点均已搜索完毕,则返回到v,再选择它的另外一个未曾访问过的邻接点继续搜索,直到图中的所有点和源点所有路径相同的顶点均已访问过为止;若此时图G中任然存在未被访

2021-04-30 19:24:34 7 1

原创 图的m着色问题

定义:给定无向连通图G=(V,E)和m种不同的颜色。用这些颜色为图G的各个顶点着色,每个顶点着一种颜色。如果有一种着色法使G中有边相连的两个顶点着不同颜色,则称这个顶点可着色。图的m着色问题是对给定图G和m中颜色,找出所有不同的着色方案。#include<iostream>#include<algorithm>#include<cstdio>#include<cstring> using namespace std;const int

2021-04-30 17:45:52 18 1

原创 N皇后问题(回溯法)

方法一:#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxx=105;int A[maxx],B[maxx],C[maxx];int x[maxx];int n;int vis[maxx][maxx];int counts;void dfs(int k){ if(k>n){ counts++; for(int .

2021-04-30 17:15:36 10 1

原创 poj1195(二维树状数组)

根据相应的指令操作即可。sum(x1,y1)+sum(x2-1,y2-1)-sum(x1,y2-1)-sum(x2-1,y1);其实可以和概率论中的一个计算概率的问题结合起来。#include<iostream>#include<algorithm>#include<cstdio>#include<cmath>#include<cstring>using namespace std;const int maxx=2005;int

2021-04-30 16:07:00 1 2

原创 线性回归构建波士顿房价预测模型

# 1)导入工具包import pandas as pdfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LinearRegressionfrom sklearn.metrics import r2_scorefrom sklearn.metrics import mean_squared_error# 2)加载数据data = pd.read_csv('./input/Bo

2021-04-30 15:50:40 375

原创 poj2029(二维树状数组)

题意:找到一个给定大小的产业(宽度和高度),其中包含最多数量的柿树sum(x1,y1)+sum(x2-1,y2-1)-sum(x1,y2-1)-sum(x2-1,y1);其实可以和概率论中的一个计算概率的问题结合起来。#include<iostream>#include<algorithm>#include<cstdio>#include<cmath>#include<cstring>using namespace std;typ

2021-04-30 13:27:21 2

原创 poj2155(二维树状数组)

题意:需要求翻转次数。奇数就是翻成了1,偶数还是0。#include<iostream>#include<algorithm>#include<cstdio>#include<cmath>#include<cstring>using namespace std;typedef long long ll;const int maxx=1005;const int inf=0x3f3f3f3f;int bit[maxx][maxx]

2021-04-30 12:56:20 1

原创 HDU1559(二维树状数组)

题意:就是给定大小的子矩阵的最大和。就是这部分的原理:sum(x1,y1)+sum(x2-1,y2-1)-sum(x1,y2-1)-sum(x2-1,y1);其实可以和概率论中的一个计算概率的问题结合起来。#include<iostream>#include<algorithm>#include<cstdio>#include<cmath>#include<cstring>using namespace std;typedef l

2021-04-30 09:30:42 2

原创 HDU1892(二维树状数组)

题意很清楚:就是这部分的原理:sum(x1,y1)+sum(x2-1,y2-1)-sum(x1,y2-1)-sum(x2-1,y1);其实可以和概率论中的一个计算概率的问题结合起来。#include<iostream>#include<algorithm>#include<cstdio>#include<cmath>#include<cstring>using namespace std;const int maxx=1105;i

2021-04-30 09:01:51 5

原创 HDU2642(二维的树状数组)

二维的树状数组,我记得是模版!^ _ ^#include<iostream>#include<algorithm>#include<cstdio>#include<cmath>#include<cstring>using namespace std;const int maxx=1005;const int inf=0x3f3f3f3f;int bit[maxx][maxx];int vis[maxx][maxx];int n

2021-04-29 23:41:03 4

原创 HDU1556(树状数组模版)

#include<iostream>#include<algorithm>#include<cmath>#include<cstring>#include<vector>using namespace std;const int maxx=1e5+10;const int inf=0x3f3f3f3f;int n,m;int s,t;int arr[maxx];int lowbit(int x){//通过二进制的与操作可以查找

2021-04-29 19:19:50 3

原创 poj3264(ST表模版)

ST 表算法用于查询区间最值,为静态算法,查询区间最值时不能更新信息,预处理复杂度为 O(nlongn),查询为 O(1)。适用于不更新信息且查询很多的问题。题意:求解范围内最高的奶牛和最短的奶牛之间的高度差异。#include<iostream>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#include<vector>using

2021-04-29 14:32:05 3

原创 HDU2586(ST表+dfs)

ST 表算法用于查询区间最值,为静态算法,查询区间最值时不能更新信息,预处理复杂度为 O(nlongn),查询为 O(1)。适用于不更新信息且查询很多的问题。题意:首先要计算出各个可到达点之间的长度,然后利用区间查找求解!#include<iostream>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#include<vector>

2021-04-29 14:12:02 3

原创 HDU5443(ST表)

ST 表算法用于查询区间最值,为静态算法,查询区间最值时不能更新信息,预处理复杂度为 O(nlongn),查询为 O(1)。适用于不更新信息且查询很多的问题。题意:找出给定区间的最大水源。#include<iostream>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxx=3005

2021-04-29 13:40:27 1

原创 HDU3183(ST表)

ST (RMQ)表ST 表算法用于查询区间最值,为静态算法,查询区间最值时不能更新信息,预处理复杂度为 O(nlongn),查询为 O(1)。适用于不更新信息且查询很多的问题。题意:从给出的一串数字总删除m个字符,使剩下的数字组合是最小的(注意这个顺序是不能变的)#include<iostream>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>u

2021-04-29 13:15:09 1

原创 poj2420(模拟退火算法)

#include<iostream>#include<algorithm>#include<cstdio>#include<cmath>#define esp 1e-7#define T 100#define delta 0.985using namespace std;const int maxx=1005;const int inf=0x3f3f3f3f;int n;struct node{ double x,y; node(do

2021-04-28 20:54:35 2

原创 tensorflow中的梯度弥散与梯度爆炸

定义:把梯度接近于0的现象称为梯度弥散;把梯度值远大于1的现象称为梯度爆炸。例子1:梯度爆炸import tensorflow as tfimport numpy as npimport matplotlib.pyplot as pltw=tf.ones([2,2])eigenvalues=tf.linalg.eigh(w)[0]//计算矩阵的特征值val=[w]for i in range(10): val.append([val[-1]@w])//矩阵相乘10次幂#计算L2的

2021-04-28 09:53:56 24

原创 HDU5017(模拟退火算法)

题意:求解椭圆上的点到(0, 0,0)之间的最短距离。这个算法也是看了大佬之后才写的^ _ ^.#include<iostream>#include<algorithm>#include<cmath>#include<cstdio>#define esp 1e-9#define T 0.99using namespace std;const int maxx=1005;const int inf=0x3f3f3f3f;const do

2021-04-27 21:58:58 1

原创 HDU2215(最小圆覆盖问题)

题意:就是求最小圆覆盖问题方法一:#include<iostream>#include<algorithm>#include<cmath>#include<cstring>#include<cstdio>using namespace std;const int maxx=1005;const int inf=0x3f3f3f3f;struct node{ double x,y;};node b[maxx];node

2021-04-27 15:08:55 6

原创 poj2069(最小球覆盖+算法模版)

#include<cstdio>#include<cmath>#include<algorithm>#include<iostream>using namespace std;const double sep=1e-6;const double base=0.98;const int maxx=1e3+5;struct node{ double x,y,z;}t[maxx];int n;double x,y;double z;

2021-04-27 13:12:42 1

原创 HDU4720(最小圆覆盖问题)

题意:给出四个点的坐标,现在判断第四个点是否在最小覆盖圆里面,如果在则输出Safe(注意包括边界),否则输出Danger.#include<iostream>#include<algorithm>#include<cmath>#include<cstring>#include<cstdio>using namespace std;const int maxx=1005;const int inf=0x3f3f3f3f;struc

2021-04-26 21:30:18 13

原创 HDU3932(最小圆覆盖问题)

题意:求出最小覆盖圆的圆心坐标和最小半径。#include<iostream>#include<algorithm>#include<cmath>#include<cstring>#include<cstdio>using namespace std;const int maxx=1005;const int inf=0x3f3f3f3f;struct node{ double x,y;};node b[maxx];no

2021-04-26 21:18:07 4

原创 HDU3007(最小圆覆盖问题)

题意:给定n个点,用一个最小的圆把这些点全部覆盖,求这个最下覆盖圆的圆心及半径#include<iostream>#include<algorithm>#include<cmath>#include<cstring>#include<cstdio>using namespace std;const int maxx=1005;const int inf=0x3f3f3f3f;struct node{ double x,y;}

2021-04-26 21:11:44 2

原创 AttributeError: module ‘tensorflow‘ has no attribute ‘Model‘

class MyModel(keras.Model): def __init__(self): super(MyModel,self).__init__() self.fc1=MyDense(28*28,256) self.fc2=MyDense(256,128) self.fc3=MyDense(128,64) self.fc4=MyDense(64,32) self.fc5=MyDense(32,10

2021-04-26 17:43:44 8

原创 关于学习Python的一点学习总结(58->匹配对象和编组)

匹配对象和编组1.模块re中,查找与模式匹配的子串的函数都在找到时返回MatchObject对象。这种对象包含与模式匹配的子串的信息,还包含模式的哪部分与子串的哪部分匹配的信息。这些子串部分称为编组(group)。2.编组就是放在圆括号内的子模式,它们是根据左边的括号数编号的,其中编组0指的是整个模式。例如:'There (was a (wee) (cooper)) who (lived in Fyfe)'0 There was a wee cooper who lived in Fyfe

2021-04-25 13:15:46 22

原创 poj3686(最小权值完美匹配)

开始理解的有点简单了,也是看了其他的博客之后发现问题的:题意:因为每一个物件都是受前一个物件的时间限制,所以假设某台机器加工了k个订单,那么用时为t1 + (t1 + t2) + (t1 + t2 + t3)......(t1+...tk) = t1 * k + t2 * (k-1) + t3 * (k-2) +...+tk,于是把每个机器拆成N个点,1-N分别代表倒数第几个加工了这个订单;最小化N命令就是最后输出的答案ans/N。这个思路开始只是认为是KM算法,其实要理解这个条件。最小权值完美匹配就

2021-04-25 00:40:09 2

原创 HDU6346(最小权值完美匹配)

题意:满足 xi+yj≤ai,j(1≤i,j≤n) 的约束下最大化∑ni=1xi+∑ni=1yi,思路:采用最大权值完美匹配算法;但是现在这里是求最小权值完美匹配问题,所以只需要将权值取反最后在取反输出即可!但是我这个代码是超时,我还在查找问题当中,但是这个算法模版没有什么问题!#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<queu

2021-04-25 00:11:03 1

原创 HDU1533(最小权完美匹配)

题意:m表示人,H表示房子,一个人只能进一个房子,一个房子也只能进去一个人,房子数等于人数,现在要让所有人进入房子,求所有人都进房子最短的路径。思路:平时使用都是最大权完美匹配,现在这道题要求最小权完美匹配,只需要将权值取反之后求最大权完美匹配就行。#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<queue>#include&l

2021-04-24 23:42:33 6

原创 poj2195(最大权完美匹配)

题意:m表示人,H表示房子,一个人只能进一个房子,一个房子也只能进去一个人,房子数等于人数,现在要让所有人进入房子,求所有人都进房子最短的路径。思路:采用最大权完美匹配最大权完美匹配:二分图最大匹配是寻找最大匹配数,用匈牙利算法。当连 接的边带有权值时,要寻找匹配后权值和最大的方案,且保证 A 集合中的点均有 B 中的点能匹配。此时问题就转化为二分图最大权完美匹配。KM 算法核心为: 为每一点添加顶标, 在顶标的限制下用匈牙利算法处理出最大匹配数, 若最大匹配数 =n, 则达到最优解, 输出

2021-04-24 17:54:45 11

原创 poj1274(最大匹配)

匈牙利算法:有两个集合 A,B, 两个集合间有多条边连接集合中的点, 且单个集合中的点各不相连, 求两集合的点能两两配对的最大匹配数.思路:求解最大匹配数:方法一:#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<cstdio>using namespace std;const int maxx=505;const int

2021-04-24 16:16:16

原创 poj3565(最大权完美匹配)

题意:让N只蚂蚁到一棵苹果树,给出N个蚂蚁和N棵苹果树的对应坐标,求权值就是求坐标点之间的距离表示,要求求出最小的距离!思路:采用最大权完美匹配问题,但是现在这道题是求最小权值,可以将求得的坐标之间的距离取反,取反之后求最大权值就是最小的距离了。最大权完美匹配:二分图最大匹配是寻找最大匹配数,用匈牙利算法。当连 接的边带有权值时,要寻找匹配后权值和最大的方案,且保证 A 集合中的点均有 B 中的点能匹配。此时问题就转化为二分图最大权完美匹配。KM 算法核心为: 为每一点添加顶标, 在顶标的限

2021-04-24 15:14:24 14

原创 HDU3718(最大权完美匹配)

题意:先给出N个字母,代表要标签;再给出M行,和第一行给出的N个标签进行匹配,之间的差代表权值。最后的相似度为最大权值为ans*1.0/n.最大权完美匹配:二分图最大匹配是寻找最大匹配数,用匈牙利算法。当连 接的边带有权值时,要寻找匹配后权值和最大的方案,且保证 A 集合中的点均有 B 中的点能匹配。此时问题就转化为二分图最大权完美匹配。KM 算法核心为: 为每一点添加顶标, 在顶标的限制下用匈牙利算法处理出最大匹配数, 若最大匹配数 =n, 则达到最优解, 输出。否则修改顶标, 再用匈牙利

2021-04-24 14:32:05 14

原创 HDU2853(最大权完美匹配)

题意:要求改动公司数量最少并且效率最大(效率最大也就是最大完美匹配)其中有一个最大的问题就是最少改变公司数量(也就是最少改变多少条边)这个知识点我也是看了网上的,关于这个知识点我也感觉很神奇。除了这个问题其他的都是模版问题了。可以把每条边的权值扩大k倍,并且k要大于n。然后对原计划的边都+1。最小变动数量=N-加入原计划中的点数模版一:#include<iostream>#include<stdio.h>#include<string.h>#inclu

2021-04-24 12:20:52 17

原创 HDU3488(最大权完美匹配)

题意:有N个城市M单程公路将它们连接起来;要求路路应该包含一个或多个循环a->B->…->p->A.每个城市都应该走一条路,在一条线路上,每个城市只需要访问一次,也就是一个城市只能被一条线路覆盖(题目已经说明第一个城市和最后一个城市除外)思路:采用最大权完美匹配算法,但是最大完美匹配算法求的是最大权值,完美只要把所有的权值变为负值就可以了。将一个点拆成两个点求最大权完美匹配:最大权完美匹配:二分图最大匹配是寻找最大匹配数,用匈牙利算法。当连 接的边带有权值时,要寻找匹配

2021-04-24 10:27:05 8

原创 HDU2255(最全权完美匹配)

最大权完美匹配:二分图最大匹配是寻找最大匹配数,用匈牙利算法。当连 接的边带有权值时,要寻找匹配后权值和最大的方案,且保证 A 集合中的点均有 B 中的点能匹配。此时问题就转化为二分图最大权完美匹配。KM 算法核心为: 为每一点添加顶标, 在顶标的限制下用匈牙利算法处理出最大匹配数, 若最大匹配数 =n, 则达到最优解, 输出。否则修改顶标, 再用匈牙利算法处理, 如此重复。设二分图的两部分点集分别为 X={X1,X2,…,Xn}X={X1,X2,…,Xn} 和 Y={Y1,Y2,…,Ym}

2021-04-24 10:18:21 2

原创 HDU3440(差分约束+SPFA算法)

题意:两栋房子之间的最大距离为D,也就是A-B<=D,现在求出最矮和最高房子之间的最大距离思路:差分约束+SPFA算法:当问题可以转化为形如一组 xi‑x’i<=yi 或一组 xi‑x’i>=yi ,求任一满足的可行解的问题时,可以将其转化为最短路/最长路问题。约束条件:A-B<=DA-B>=1条件转化一下:A-B<=DB-A<=-1主义SPFA判断负环的情况:判断有⽆负环:如果某个点进⼊队列的次数超过 N 次则存在负环(SPFA ⽆法处理带

2021-04-23 09:52:10 3

原创 HDU1531(差分约束+Bellman_ford)

题意:给出一个序列Si = {aSi, aSi+1, ..., aSi+ni} 和其子序列S = {a1, a2, ..., an};在给出序列的约束条件: aSi + aSi+1 + ... + aSi+ni < ki 或者 aSi + aSi+1 + ... + aSi+ni > ki 。现在给出m行,每一行包含四个数:分别是si, ni, oi, ki,这四个数分别代表序列中第si个数到第si+ni个数大于(gt)或者小于(lt).思路:差分约束+Bellman_ford:当问题可以转化

2021-04-23 09:07:35 2

原创 poj3159(差分约束)

题意:其实题目要求的就是这个B-A<=c,所以对应单源最短路径中的d[v]>d[u]+e[u][v]关于差分约束:当问题可以转化为形如一组 xi‑x’i<=yi 或一组 xi‑x’i>=yi ,求任一满足的可行解的问题时,可以将其转化为最短路/最长路问题。注意:求的是两个变量差的最大值,那么需要将所有不等式转变成"<=“的形 式,建图后求最短路;相反,如果需要求的是两个变量差的最小值,那么需要将所有不等式转

2021-04-23 09:00:18 1

原创 poj1364(差分约束+Bellman-ford)

题意:给出一个序列Si = {aSi, aSi+1, ..., aSi+ni} 和其子序列S = {a1, a2, ..., an};在给出序列的约束条件: aSi + aSi+1 + ... + aSi+ni < ki 或者 aSi + aSi+1 + ... + aSi+ni > ki 。现在给出m行,每一行包含四个数:分别是si, ni, oi, ki,这四个数分别代表序列中第si个数到第si+ni个数大于(gt)或者小于(lt).思路:差分约束+Bellman_ford:当问题可以转化

2021-04-23 08:00:50 17

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除