自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法分析与设计作业12

1. 问题图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。2. 解析设 G 有 n 个顶点,将顶点编号为 1,2,…,n,则搜索空间为深度n的m叉完全树,将颜色编号为1,2,…,m,结点<x1,x2,…,xn>(x1,x2,…,xk∈{1,…,m},1<=k<=n)表示顶点 1 的颜色x1,顶点2的颜色 ,…, 顶点 k的颜色xk3. 设计#

2021-05-31 19:30:09 107

原创 算法分析与设计作业11

1. 问题构造最优前缀的贪心算法,即哈夫曼算法2. 解析我们可以用一个数据结构维护所有数字的最小两个值,每次取最小的两个值就是序列,把这两个值累加到结果上,那么结果就是WPL3. 设计4. 分析O(nlogn)5. 源码github:tree...

2021-05-26 20:23:41 93

原创 算法分析与设计作业10

1. 问题一、n 项活动申请使用同一个礼堂,每项活动有一个开始时间和一个截 止时间。如果任何两个活动不能同时举行,问如何选择这些活动,从而使得被安排的活动数量达到最多。二、给你一个空间,告诉你这个空间的最大储存空间,告诉你一系列物品且知道每件物品的价值和占用空间,每件物品只能取一遍,问这个这个存储空间存放的东西价值和最大是多少。2. 解析一、把活动按照截止时间进行升序排序,然后从前往后遍历,只要该活动与前面的活动没有结合的就可以选入。二、0/1背包问题3. 设计分析一、O(n)二、O(

2021-05-26 20:20:36 102

原创 算法分析与设计作业9

1. 问题LCS算法和背包算法,特别要求举例时采用不同于讲义的数据进行推导。2. 解析LCS:背包算法:3. 设计LCS:Bag:4. 分析Lcs:O ( n 2 ) O(n^2)O(n2)背包: O ( n ∗ m ) O(n*m)O(n∗m)5. 源码Github源码:LCSBag...

2021-05-11 19:08:51 90

原创 算法分析与设计作业8

1. 问题矩阵链乘法,特别要求举例时采用不同于讲义的数据进行推导。2. 解析设A1,A2,A3,…,An为n个矩阵的序列,其中Ai为Pi-1×Pi阶矩阵,这个矩阵链的输入用向量P=<P0,P1,P2,…,Pn>给出。给定向量 P,确定一种乘法次序,使得基本运算的总次数达到最小。例如,P=<2,4,6,8>,A1:2×4,A2:4×6,A3:6×81)(A1A2)A3=246+2682)A1(A2A3)=248+468Ai…j:表示矩阵链相乘的子问题Ai,Ai+1…Aj

2021-04-26 16:25:25 71

原创 算法分析与设计作业7

1. 问题投资问题,参考讲义的样例数据,实现动态规划2. 解析因为每个项目投资不同的钱会有不同的收益,求投资总金额时可以获得最大的收益,我们可以建立一个动态表来记录投资m金额给n个项目时最大收益是dp[n][m],将问题转化成一个简单的动态规划问题,分析可以得到转移方程为dp[i][j]=max(dp[i][j],dp[i-1][j-k]+f[i][k]);3. 设计#include<iostream>#include<cmath>#include<cstri

2021-04-25 21:15:53 156

原创 算法分析与设计作业6

1. 问题6.5.7选第k小元素:特定分治策略”2. 解析3. 设计[核心伪代码]#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<cmath>#include<cctype>#include<iomanip>#include<map>#include<vector>

2021-04-19 16:40:28 52

原创 算法分析与设计作业5

1. 问题蛮力算法和分治法解最近对问题2. 解析蛮力算法:通过两个for暴力求最小距离即可将所有点x,y升序排序后二分,递归找左右区间的最小值,分三种情况求最小:(1) 两点在左区间(2) 两点在右区间(3) 一个在左区间一个在右区间3. 设计#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<cmath>#in

2021-04-12 16:32:03 123

原创 算法分析与设计作业4

1.问题二分归并排序:对n个不同的数构成的数组A[1…n]进行排序,其中n=2^k2.分析对原数组进行二分分解,进行分治,利用一个辅助数组ans,分组排序后合并3.设计#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<cmath>#include<cctype>#include<iomanip>

2021-03-29 15:59:03 87

原创 算法分析与设计作业3

1.问题写出两种检索算法:在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.按实验模板编写,“分析”部分仅给出复杂度结果即可。2.解析1.通过一个标记数组存储数组数据,标记数组下标为数据值,值为原数据对应下标,实现O(1)查询;2.二分查找,找到则返回下标,没找到则为0;3.设计1.#include<iostream>#include<algorithm>#include<cstdio>#incl

2021-03-22 15:58:09 92

原创 算法分析与设计作业2

1.问题用Floyd算法求解下图各个顶点的最短距离。写出Floyd算法的伪代码和给出距离矩阵(顶点之间的最短距离矩阵)对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径2.解析Floyd:因为数据量较小,利用邻接矩阵来存图,要求各个顶点之间的距离,每个节点只有路径只有两种状态,一种是i直接到j,一种是i经过另一个节点k再到达j,我们通过不断比较两种状态的长度,寻找最短路。Dijkstra:因为数据量较小,利用邻接矩阵来存图,要求单源最短路,我们定义一个dis数组来记录每个节点到达起

2021-03-15 16:27:40 142

原创 算法分析与设计作业1

1.问题举一个实例,画出采用Prim算法构造最小生成树的过程,并按实验报告模板编写算法。举一个实例,画出采用Kruskal算法构造最小生成树的过程,并按实验报告模板编写算法。2.解析在一给定的无向图G = (V,E) 中,(u,v) 代表连接顶点u与顶点v的边,w(u, v) 代表此边的权,若存在 T 为 E 的子集且为无循环图,使得的 w(T) 最小,则此 T 为 G 的最小生成树。Prim算法:设最小生成树中的点的集合是U,开始时最小生成树为空,所以U为空。Kruskal算法:设最

2021-03-08 22:24:19 179

原创 F - Square, Not Rectangle Gym - 102760F(ST表区间维护最小值+二分)

A histogram is a polygon made by aligning N adjacent rectangles that share a common base line. Each rectangle is called a bar. The i-th bar from the left has width 1 and height Hi.Your goal is to find the area of the largest rectangle contained in the giv

2020-12-19 22:53:20 229 1

原创 数据结构之快速排序

#include<stdio.h>#include<string.h>#include<math.h>#include<stdlib.h>#include<time.h>const int maxn = 1e4 + 50;const int INF = 0x3f3f3f3f;int head[maxn], cnt = 0;int n, m;int a[maxn];void Quick_Sort(int* arr, int beg

2020-12-11 14:54:59 101

原创 数据结构之图的遍历(bfs,dfs)

#include<stdio.h>#include<string.h>#include<math.h>#include<stdlib.h>#include<time.h>const int maxn = 1e4 + 50;const int INF = 0x3f3f3f3f;int head[maxn], cnt = 0;int n, m;int vis[maxn];struct Edge { int to, next, w;

2020-12-11 14:11:34 66

原创 Kingpin Escape Gym - 102007K

K Kingpin Escape Time limit: 2sYou are the kingpin of a large network of criminal hackers. Legend has it there has never been a richer criminalthan you. Not just because you are the smartest, but alsobecause you are the stingiest.The police have been a

2020-12-09 23:10:42 142

原创 Java抽象类和接口的个人理解与运用

不同点:(1)抽象类需要被继承,而且只能单继承;接口需要被实现,而且可以多实现。(2)抽象类中可以定义抽象方法,也可以定义非抽象方法,子类在继承抽象类后,可以直接使用其中的非抽象方法;接口中只能定义抽象方法,必须由子类去实现。(3)抽象类的继承,是在定义该体系中的基本共性内容;接口的实现,是在定义体系的额外功能。1.抽象类抽象方法必须使用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中无具体实现的方法,所以不能用

2020-12-01 18:49:28 101

原创 数据结构 堆

#include<stdio.h>#include<string.h>#include<math.h>#include<stdlib.h>#include<time.h>const int maxn = 1e4 + 50;const int INF = 0x3f3f3f3f;const int MinData = -INF;const int MaxData = INF;int sum = 0;typedef struct He

2020-11-27 16:10:09 65

原创 Problem C. String Game (dp)

Problem C. String GameInput file: standard inputOutput file: standard outputTime limit: 1 secondMemory limit: 256 megabytesClair and Bob play a game. Clair writes a string of lowercase characters, in which Bob sets the puzzleby selecting one of his f

2020-11-23 20:06:58 518

原创 80 Days HihoCoder - 1831

80 Days is an interesting game based on Jules Verne’s science fiction “Around the World in Eighty Days”. In this game, you have to manage the limited money and time.Now we simplified the game as below:There are n cities on a circle around the world which

2020-11-22 00:24:02 70

原创 Saving Tang Monk II HihoCoder - 1828(三维bfs记录)

《Journey to the West》(also 《Monkey》) is one of the Four Great Classical Novels of Chinese literature. It was written by Wu Cheng’en during the Ming Dynasty. In this novel, Monkey King Sun Wukong, pig Zhu Bajie and Sha Wujing, escorted Tang Monk to India to

2020-11-22 00:03:16 110

原创 Monitor CodeForces - 846D(二维前缀和+二分)

Recently Luba bought a monitor. Monitor is a rectangular matrix of size n × m. But then she started to notice that some pixels cease to work properly. Luba thinks that the monitor will become broken the first moment when it contains a square k × k consisti

2020-11-21 23:49:51 226

原创 K-th Beautiful String CodeForces - 1328B(一维前缀和)

For the given integer n (n>2) let’s write down all the strings of length n which contain n−2 letters ‘a’ and two letters ‘b’ in lexicographical (alphabetical) order.Recall that the string s of length n is lexicographically less than string t of length

2020-11-21 23:34:04 111

原创 食物链 POJ - 1182(并查集)

食物链 POJ - 1182动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法是"1 X Y",表示X和Y是同类。第二种说法是"2 X Y",表示X吃Y。此人对N个动物,用上述两种说法,一句接一句地说出K句话,这K句话有的是真的,有的是假的。当一句话满足下列三条之一时,这句话就是假话,否则就是真话。

2020-11-20 18:30:14 125

原创 Java多态个人理解和总结

多态概述多态是继封装、继承之后,面向对象的第三大特性。对于多态的现实意义和个人理解:多态:同样的引用调用同样的方法却做了不同的事情。现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态。Java作为面向对象的语言,同样可以描述一个事物的多种形态。如Student类继承了Person类,一个Student的对象便既是Student,又是Person。多态体现为父类引用变量可以指向子类对象。注意:在使用多态后的父类引用变量调用方法时,

2020-11-17 18:04:28 216

原创 数据结构 二叉树遍历

#include<stdio.h>#include<string.h>#include<math.h>#include<stdlib.h>#include<time.h>const int maxn = 1e5 + 50;const int N = 1e6;int sum = 0;typedef int ElementType;typedef struct TNode* BinTree;typedef struct SNode*

2020-11-13 15:39:12 82

原创 Clock HDU - 6551 模拟

wls 有一个钟表,当前钟表指向了某一个时间。又有一些很重要的时刻,wls 想要在钟表上复现这些时间(并不需要依次复现)。我们可以顺时针转动秒针,也可以逆时针转动秒针,分针和时针都会随着秒针按规则转动,wls 想知道秒针至少转动多少角度可以使每个时刻至少都会被访问一次。注意,时钟上的一种时针分针秒针的组合,可以代表两个不同的时间。Input第一行一个整数 n 代表有多少个时刻要访问。第二行三个整数 h,m,s 分别代表当前时刻的时分秒。最后n行每一行三个整数 hi,mi,si 代表每个要访问的时

2020-11-12 23:46:13 177

原创 正则表达式及其在java中的应用

正则表达式及其在java中的应用一、正则表达式术语众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。大家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索

2020-11-10 16:00:56 515

原创 Pots POJ - 3414

You are given two pots, having the volume of A and B liters respectively. The following operations can be performed:FILL(i) fill the pot i (1 ≤ i ≤ 2) from the tap;DROP(i) empty the pot i to the drain;POUR(i,j) pour from pot i to pot j; after this opera

2020-10-31 10:55:20 110

原创 Physical Examination HDU - 4442

**Physical Examination HDU - 4442 **WANGPENG is a freshman. He is requested to have a physical examination when entering the university.Now WANGPENG arrives at the hospital. Er…… There are so many students, and the number is increasing!There are many ex

2020-10-31 10:53:44 130

原创 HDU 3791 二叉搜索树

HDU 3791 二叉搜索树判断两序列是否为同一二叉搜索树序列Input开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束。接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树。Output如果序列相同则输出YES,否则输出NOSample Input256743254326757634

2020-10-31 10:46:11 59

原创 7-7 社交网络图中结点的“重要性”计算 (30分) floyd

7-7 社交网络图中结点的“重要性”计算 (30分)输入格式:输入第一行给出两个正整数N和M,其中N(≤10​4​​ )是图中结点个数,顺便假设结点从1到N编号;M(≤10​5​​ )是边的条数。随后的M行中,每行给出一条边的信息,即该边连接的两个结点编号,中间用空格分隔。最后一行给出需要计算紧密度中心性的这组结点的个数K(≤100)以及K个结点编号,用空格分隔。输出格式:按照Cc(i)=x.xx的格式输出K个给定结点的紧密度中心性,每个输出占一行,结果保留到小数点后2位。输入样例:9

2020-10-25 14:29:53 924

原创 数据结构 stack

stack实现数据转换顺序储存:#include<stdio.h>#include<math.h>#include<stdlib.h>const int maxn=1e6+10;typedef struct SNode *stack;struct SNode{ int data[maxn]; int top;};int n;stack makeStack(){ stack p=(stack)malloc(sizeof(struct SNode))

2020-10-24 20:05:42 103

原创 6-12 二叉搜索树的操作集 (30分)

本题要求实现给定二叉搜索树的5种常用操作。函数接口定义:BinTree Insert( BinTree BST, ElementType X );BinTree Delete( BinTree BST, ElementType X );Position Find( BinTree BST, ElementType X );Position FindMin( BinTree BST );Position FindMax( BinTree BST );其中BinTree结构定义如下:typede

2020-10-19 22:59:42 97

原创 Eclipse与github的连接

Eclipse与github的连接一、在Eclipse上安装GIT插件EGit打开Eclipse, 找到工具栏中的Help。点击ADDEGit插件地址:http://download.eclipse.org/egit/updates连续下一步默认安装就可以,之后再重启Eclipse就可以了。二、在Eclipse中配置EGit首先你要在github(https://github.com)上注册一个账号然后在工具栏中的Window中找到Preferences随后找到Team->G

2020-09-17 20:55:58 368

原创 Pots POJ - 3414 非常可乐 HDU - 1495 bfs(倒水问题)

You are given two pots, having the volume of A and B liters respectively. The following operations can be performed:FILL(i) fill the pot i (1 ≤ i ≤ 2) from the tap;DROP(i) empty the pot i to the drain;POUR(i,j) pour from pot i to pot j; a

2020-08-21 14:46:08 140

原创 Tetrahedron HDU - 6814 数学推导+预处理

Generate three integers a, b, and c in [1,n] with equal probability independently, and use them as the three right-angle side length of a right-angled tetrahedron. Find the expectation of the reciprocal square of the distance from the right-angle apex to t

2020-08-12 20:08:49 182

原创 The Oculus HDU - 6768(ull自然取余溢出 哈希)

Let’s define the Fibonacci sequence F1,F2,… as F1=1,F2=2,Fi=Fi−1+Fi−2 (i≥3).It’s well known that every positive integer x has its unique Fibonacci representation (b1,b2,…,bn) such that:· b1×F1+b2×F2+⋯+bn×Fn=x.· bn=1, and for each i (1≤i<n), bi∈{0,1}

2020-08-11 19:08:40 323

原创 Parentheses Matching HDU - 6799 deque+stack

Given a string P consisting of only parentheses and asterisk characters (i.e. “(”, “)” and “"), you are asked to replace all the asterisk characters in order to get a balanced parenthesis string with the shortest possible length, where you can replace each

2020-08-11 18:35:10 73

原创 HZNUOJ B_M的忧虑 矩阵快速幂

B_M的忧虑DescriptionB_M学长喜欢减肥,为此他制定出了一个详细的减肥计划。因为这个计划过于详细,所以他甚至可以推算出在未来的某一天自己的体重。 体重的计算规律如下:要计算出自己某一天的体重,需要通过在此之前n天的体重来计算 设wx为第x天的体重,那么wx=∑ni=1(ai × wx−i) , 其中 ai 是给定的常数 现在给出B_M前n天的体重,询问他第x天的体重,题目保证x>nInput输入数据的第一行是两个正整数 n (1≤n≤100)和 x (

2020-08-08 14:25:45 201

空空如也

空空如也

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

TA关注的人

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