C++
文章平均质量分 71
jinzhou742
理想主义者
展开
-
【C语言】判断机器是大端编码还是小端编码
小端存储的含义是低位字节存放在内存的低地址端,高位字节存放在内存的高地址端;大端存储的含义是高位字节存放在内存的低地址端,低位字节存放在内存的高地址端。这里面有两个点,一是存储是以字节为单位,即使存在颠倒关系,一个字节内部的数据不做颠倒;二是数据与地址的对应关系才是判断依据。判断自己设备的存储方式可以由以下方法进行:定义变量int i=1,将 i 的地址拿到,强转成char*型,这时候就取到了 i 的低地址,这时候如果是1就是小端存储,如果是0就是大端存储。直接在编译器里运行以下代码可以判断:#原创 2022-05-04 11:13:12 · 1060 阅读 · 0 评论 -
【算法】判断一个有向图是单连通图
本题对应于《算法导论》T22.3-13,题目如下:网上找半天找不到,结合英文版答案自己写了一个由于拓扑序列里面点v前面的点入度肯定都是0,找哪些是它的祖先就行了,弄个反图保存一下结果,中间过程都挺好写的...原创 2021-10-08 22:39:21 · 935 阅读 · 0 评论 -
【状压dp】方格填充问题
题目描述对于一个行数为n,列数为m的方格网盘,用若干个2行1列的长方形去填充它,问一共有多少种方案?输入描述第一行为 nnn (1≤n1\leq n1≤n ≤11\leq 11≤11), mmm (1≤m1\leq m1≤m ≤11\leq 11≤11)输出描述输出方案数样例input2 3output3分析本题采用的方法为状压dp,用0和1来表示网格中小矩形的放置情况。小矩形有两种放置情况:横着放和竖着放。如果是是竖放,那么把上一格记为1,下一格记为0;如果是横放,那么把两原创 2021-05-27 16:14:09 · 651 阅读 · 1 评论 -
【背包问题】大容量背包问题(超大背包)
题目描述有N件物品和一个容量为W的背包。第i件物品的重量是w[i],价值是c[i]。求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。输入描述第一行为N(1≤N≤40),W(1≤V≤1015)。下面N行,第i行描述第i个物品的w[i] (1≤w[i]≤1015) ,c[i] (1≤v[i]≤1015),用一个空格分隔。输出描述输出只有一个数,最大总价值。Input3 22527424270498827 83058348572910089 7593607598.原创 2021-05-21 23:59:52 · 3303 阅读 · 0 评论 -
石油网络的放大器设置问题
1.问题描述一个石油传送网络可由一个加权有向无环图G表示。该图中有一个称为源点的顶点S ( 保证S的入度为0 ) , 从S出发 , 石油流向图中的其他顶点 。G中每条边上的权重为它所连接的两点间的距离。在输送石油的过程中 , 需要有一定的压力才能使石油从一个点到达另一个点,但压力会随着路程的增加而降低 ( 即压力的损失量是路程的函数 ) 。因此为了保证石油在网络的正常运输,在网络传输中必须保证在任何位置的压力都要不小于最小压力Pmin。为了维持这个最小压力,可在G中的一些或全部顶点放置压力放大器 ,原创 2021-05-16 17:37:04 · 3653 阅读 · 8 评论 -
【C++算法】稀疏矩阵的乘法实现(行逻辑链接法)
算法背景:①稀疏矩阵的类表示法:②三元组表的结构体表示法:主要算法:行逻辑链接法。前提条件是三元组表按照行主索引法进行映射。同稀疏矩阵的转置操作一样,乘法操作也需要定义两个辅助的数组row_nums[i]和row_first_position[i],分别表示矩阵A第i行的非零元素数目和第i行第1个非零元素所在三元组表中对应的索引。对数组row_nums的赋值如下:terms[i]表示矩阵A三元组表第i号索引的元素,terms[i].row表示矩阵A这行存在元素。对数组row_first_原创 2020-10-23 00:04:55 · 3016 阅读 · 1 评论 -
【C++算法】稀疏矩阵的一次定位快速转置法
稀疏矩阵,指rows行cols列的矩阵中,非零元素数量非常少的情况。对于这种矩阵,用一个线性空间去表示它会造成不必要的浪费,因此要使用一个三元组表去表示它。现在假设有如下这个矩阵:索引号(i, j)12345130000200030307000400010500004此矩阵有5个非零元,那么相应三元组表的结构为:索引行号列号元素值011312432原创 2020-10-20 21:44:34 · 2123 阅读 · 2 评论 -
C++一到四级函数指针的使用
C++函数指针的使用最近对C++函数指针的使用有了一些想法,在阅读了《C++ Primer Plus》后,发现书上写的比较模糊,看起来云里雾里的,于是结合了自己的一些想法写了一段代码,感悟都在注释里面,希望大家不吝赐教!#include <iostream>using namespace std;const double* f1(const double ar[], int ...原创 2019-12-20 14:41:23 · 435 阅读 · 0 评论