摘要: 引言 计算机组成原理中的基本知识,感觉有点绕,做个记录。 一般乘法运算 以-1101 X 1011为例 -1101 x1011 1101 1101 0000 1101 0.10001111 计算机进行像这样的乘法运算有两大困难:一是将四个位积一次相加,机器难以实现;而是乘积位数增长了一倍,会造成器材 阅读全文
posted @ 2021-09-10 17:34 湖上的程序员 阅读(1364) 评论(0) 推荐(0) 编辑
摘要: ###一、概述: ####Kruskal算法也是一种求得最小生成树的算法,与Prim算法不同的是,它的时间复杂度为O(eloge)(e为网中的边数),所以,适合于求边稀疏的网的最小生成树(有关最小生成树的概念和Prim算法见最小生成树-Prim算法)。 ###二、原理: ####Kruskal算法是 阅读全文
posted @ 2021-08-30 19:48 湖上的程序员 阅读(634) 评论(0) 推荐(0) 编辑
摘要: 问题描述 Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。 Input 共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N 阅读全文
posted @ 2021-06-08 21:09 湖上的程序员 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 简单的写了一下哈夫曼树和哈夫曼编码的类,用的是顺序存储。 #include<bits/stdc++.h> using namespace std; struct node{ int weight; // 权值 int parent; // 双亲结点,在选取两个最小权值结点时也会用到 int left 阅读全文
posted @ 2021-05-23 17:24 湖上的程序员 阅读(99) 评论(0) 推荐(0) 编辑
摘要: Description 给定一个正整数的集合A={a1,a2,….,an},是否可以将其分割成两个子集合,使两个子集合的数加起来的和相等。例A = { 1, 3, 8, 4, 10} 可以分割:{1, 8, 4} 及 {3, 10} Input 第一行集合元素个数n n ⇐300 第二行n个整数 # 阅读全文
posted @ 2021-04-21 20:56 湖上的程序员 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 基本思想 即在区间上的动态规划,通过得到子区间的最优解来求得原问题的最优解。 模板 求解在一个区间上的最优解,那么把这个区间分割成一个个小区间,求解每个小区间的最优解,再合并小区间得到大区间即可。枚举区间长度d为每次分割成的小区间长度(由短到长不断合并),内层枚举该长度下可以的起点,自然终点也就明了 阅读全文
posted @ 2021-04-12 20:05 湖上的程序员 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 问题描述 有种n种物品,每种只有一个,第i种物体的体积为w[i],价值为v[i].选一些物品装到一个容量为C的背包,使得背包内物体体积不超过C的前提下价值尽量大. 分析 首先约定Vi表示第 i 个物品的价值,Wi表示第 i 个物品的体积;定义dp(i,j):当前背包容量 j,前 i 个物品最佳组合对 阅读全文
posted @ 2021-03-13 21:42 湖上的程序员 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 思想 有些问题可以抽象为一个有向无环图,再进行求最短路,最长路或者路径计数问题,求得原问题的解. 模型 矩形嵌套问题: 描述有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)。例如(1,5)可 阅读全文
posted @ 2021-03-10 11:07 湖上的程序员 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 线段树(bug终于改完了嘤嘤嘤)https://blog.csdn.net/zearot/article/details/48299459 #include <bits/stdc++.h> using namespace std; #define ll long long const int Max 阅读全文
posted @ 2021-03-03 16:00 湖上的程序员 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 分治的基本思路: (1)划分问题:把问题的实际化为子问题; (2)递归求解:递归解决子问题; (2)合并问题:合并子问题得解. 举例: 1.给定一个数列,其中可能有正数也可能有负数,找出其中连续的一个子数列(不允许空序列),使它们的和尽可能大。 解法: 我们可以把整个序列平均分成左右两部分,答案则会 阅读全文
posted @ 2021-03-01 21:52 湖上的程序员 阅读(123) 评论(1) 推荐(0) 编辑