自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何在Unity测试时不自动启动SteamVR

Unity测试时禁止SteamVR自动启动

2022-06-10 21:08:56 2315

原创 Unity获取两个物体之间的夹角

若有三个物体ABC,想求夹角BA与BC两条边之间的夹角,代码如下:Vector3.Angle(B.position-A.posion,B.position-C.position);比如要求身体朝向与面部朝向之间的夹角,可以这么写Vector3.Angle(Body.transform.forward, Target.transform.position - Face.transform.position);# Body是身体,Target是眼睛注视的对象,Face是面部最后可以根据角度控制面部

2022-04-09 00:47:51 5567

原创 LeetCode 310:最小高度树

LeetCode 310:最小高度树原题地址基本思路从任意一个顶点对图进行BFS,找到离原点最远的点A;再从点A对图进行BFS,找到距离A最远的点B。使用DFS找到AB两点之间的路径。路径的中点,即为最小高度树的根。错误思路使用了暴力BFS方法,即对每个顶点进行BFS,计算以各个顶点为根的树高度。这样时间复杂度为O(n2),无法通过所有测试。代码class Solution {public: int bfs(std::vector<std::vector<int&

2022-04-06 18:49:29 449

原创 一个提供html5模板的网站

html5up里边提供的模板非常漂亮大气,而且可以免费下载

2022-03-01 11:21:35 195

原创 LeetCode 1765:地图中的最高点

LeetCode 1765:地图中的最高点原题地址基本思路多源BFS,将水域装入队列中,接着取出队头元素,将其周围未标记高度的区块设置为该区块的高度+1,并装入队尾。反复操作直到队列为空。时间复杂度为O(mn),空间复杂度为O(mn)。错误思路构思出了扩散法,即每次将一些元素扩散到四周的元素。这样可以得到正确答案,但没想到BFS,没有使用队列,每次都通过遍历地图矩阵的方式找到可操作的元素,使得复杂度达到了O(mn*maxHeight),导致最后超时。因此图类问题还是应该从图的基本算法出发思考。代

2022-01-29 23:11:12 5390

原创 LeetCode 1996:游戏中弱角色的数量

LeetCode 1996:游戏中弱角色的数量原题地址基本思路将角色按照攻击力降序排序,对于攻击力相同的角色,按照防御力升序排序。然后遍历一遍角色集,记录当前最高防御,若当前角色的防御低于最高防御,说明他是弱角色。这样做的理由是:在遍历时,后边角色的攻击力必然小于或等于前边的角色,只要该角色的防御力低于最高防御力,那么必然能说明前面有角色的攻防都比他高。代码class Solution {public: int numberOfWeakCharacters(vector<vecto

2022-01-28 22:47:34 1678

原创 LeetCode 2013:检测正方形

LeetCode 2013:检测正方形原题地址基本思路本题考察双哈希的使用方法,即第一重哈希以哈希表为值。这里将y坐标作为第一重哈希的关键字,将x坐标作为第二重哈希的关键字,将顶点数作为第二重哈希的值。官方题解使用了这样一种双哈希表遍历方式,值得学习一下:for (auto &[yKey, yKeyMap] : DualMap);//DualMap为二重哈希表,yKey为第一重哈希表的关键字,yKeyMap为yKey对应的值,即一个哈希表。代码class DetectSquares

2022-01-26 22:33:45 396

原创 LeetCode 2034:股票价格波动

LeetCode 2034:股票价格波动原题地址基本思路本题的难点在于不同数据结构的配合使用,这里同时使用了哈希表和有序集合。容易想到用哈希表来保存<时间戳,价格>关系,所以用到了C++的unordered_map(注意不能用基于红黑树的map,map的查询效率是对数级,而unordered_map则是常数级)。只用哈希表存在的问题是,当已存在的时间点被更新时,重新获取最大最小元素需要扫描整个哈希表,代价太大。所以需要一个有序集合来保存所有哈希表中的价格,因此用到了multiset。更

2022-01-23 23:56:56 217

原创 LeetCode 37:解数独

LeetCode 37:解数独原题地址基本思路主要思路是深度优先搜索,依次填充每个空位。重点在于降低每次DFS的开销。我们尝试对空位填充数字时,要在尽可能短的时间内找到可以填充的数字。所以可以用一些辅助数组分别保存当前位置所在的行、列、九宫格中已有的数字,这样就不用实时检查所在行、列、九宫格中的其它数字。代码class Solution {public: bool dfs(vector<vector<char>>& board, std::vector&l

2022-01-07 16:20:54 276

原创 LeetCode 851:喧闹和富有

LeetCode 851:喧闹和富有原题地址基本思路这题的基本思路是将富有偏序关系构建成拓扑网络。在构建answer数组时,对每一个person,定位到相应节点在拓扑图中的位置,然后进行DFS搜索,找到quiet最小的<person, value>对,记录答案。这里要记住将<person, value>对保存在节点中,避免下一次DFS到该节点时进行重复计算,起到一个剪枝的效果。代码class Solution {public: class node {

2021-12-19 23:39:49 134

原创 基于Unity的C/S架构数据交互

最近在做一个项目,主体是Unity。项目涉及到一些大规模数值计算,需要借助服务器来完成。所以我们需要设计一个通信系统,包含以下过程。1.Unity客户端向服务器发送计算命令2.服务器调用后台进程进行数值计算3.服务器通知Unity客户端计算完成4.Unity客户端从服务器读取计算结果为了实现该系统,我们需要这些东西1.一台终端Windows计算机,安装了Unity,作为客户端。2.一台Linux计算机,搭建了服务器环境,作为后台计算。将Linux计算机搭建为服务器的方法请参考:搭建

2021-12-18 13:45:22 3345

原创 使用linux管道文件实现php与python的进程通信

本人的项目涉及到客户端/服务器的数据交互,客户端将数据发送到web服务器后,需要通过web的php进程调用后台的python进程进行数据处理。处理完毕后python进程需通知php将处理结果返回客户端。1.创建两个命名管道mkfifo -m 755 php2py # 保存php进程向python进程传递的数据mkfifo -m 755 py2php # 保存python进程向php进程传递的数据2.编写python部分代码while True: fread = open("php2py",

2021-12-17 21:48:20 726

原创 CUDA并行方式比较

我们有一个长度为100,000的整型数组,需要用10个GPU线程并行地对这个数组进行自增计算,每个数组元素需要自增100次,可知每个线程负责10,000个数组元素。下面有两种方式。#define ARRAY_SIZE 100000#define THREAD_SIZE 10方式1:Kernel函数内循环每个GPU线程计算出数组元素的起始地址和尾地址,依次对每个元素进行100次自增操作。Kernel函数:__global__ void kernel_1(int* array, int len,

2021-11-17 11:24:03 329

原创 如何在Cmake中编译包含MPI的工程

查找MPI地址find_package(MPI REQUIRED)按地址把MPI库包含进来include_directories(${MPI_INCLUDE_PATH})添加可执行文件并与MPI库进行连接add_executable(hellohello.cpp)target_link_libraries(hello ${MPI_LIBRARIES})

2021-10-18 20:11:57 2448

原创 [论文笔记]流式图分区方法的实验研究

Streaming Graph Partitioning: An Experimental Study本文介绍了主流的几种流式图分区方法,并设置实验比较了它们的性能。研究背景在分布式计算流行的当下,图分区是一项非常基础且重要的技术。对大多数图算法而言,如果想要将之置于分布式环境下并行执行,必须对输入的图结构进行分区处理。典型的图算法有SSSF,PageRank,Connected Component,Label Propagation等。图分区不是一项简单的工作,一个理想的图分区方式应该达到两个目标

2021-06-21 11:40:51 2355

原创 几个Network数据集的网站

SNAP(Stanford Large Network Dataset Collection)http://snap.stanford.edu/data/index.htmlNetwork Repositoryhttp://networkrepository.com/index.phpLINQShttps://linqs.soe.ucsc.edu/data

2021-05-07 17:47:46 2767

原创 [论文笔记]使用GPU处理数据仓库查询之“阴”和“阳”

The Yin and Yang of Processing Data Warehousing Queries on GPU Devices研究背景在数据库领域,使用GPU进行查询加速已经被人们研究了好几年。但是在数据仓库领域,我们却很少发现有人研究GPU对数据仓库查询进行加速的课题。对数据仓库的查询往往伴随着巨大的计算开销,而GPU拥有强大的并行计算能力。如果能将使用GPU进行加速,会大大提升数据仓库的OLAP速度,加快数据仓库OLAP技术的发展。主要工作作者从三个维度对“数据仓库+GPU”这个

2021-03-21 11:46:35 492 1

原创 [论文笔记]Graph OLAP: 面向图的联机分析处理

Graph OLAP: Towards Online Analytical Processing on Graphs研究背景联机分析处理(OLAP)是数据分析的一种重要方式。传统的OLAP是对相互独立的数据进行处理,即不考虑数据元组之间的关系。比如超市顾客的购物信息,数据仓库保存的是每个顾客购物时购买的商品集合。使用OLAP可以分析商品之间的关系,挖掘出有用的信息供超市老板调整策略。传统的OLAP并不能很好的适用于图结构的分析,而对图进行信息挖掘的重要性越来越大。作者基于该现状,提出了基于图的联机分析

2021-03-13 12:15:27 472

原创 [论文笔记]Graph Cube: 基于数据仓库和OLAP多维网络

Graph Cube: On Warehousing and OLAP Multidimensional Networks研究背景数据仓库是一种为企业进行决策制定的工具。区别于数据库,数据仓库的主要功能并非保存数据,而是为数据分析师,战略制定者提供服务的。如上图所示,数据仓库的基本模型是数据立方体(Cube),数据立方体由多个方体(Cuboid)组成。每个方体可以表示为一张表,属性为方体的维度,表中的元组称为Cell。以往人们在使用数据仓库时,总是根据维度需求在数据立方体中计算出单个所需的方体,以

2021-03-05 12:20:58 602 1

原创 在Vmware上搭建Hadoop环境

本文基于这位大佬的配置方案,补充了其中会遇到的问题及其解决方式。上篇:https://blog.csdn.net/yiqiaoxihui/article/details/101097327下篇:https://blog.csdn.net/yiqiaoxihui/article/details/101109306问题1使用yum命令安装lrzsz时,出现如下错误。这是因为Centos6的各大开源镜像站已经停止维护了,但是阿里源还是可以使用的,所以我们需要更换yum的下载源。解决方案sed

2021-02-21 14:30:38 561

原创 [论文笔记]Storm@Twitter

简介Storm是Twitter推出的一款实时的、容错的、分布式的计算系统,该系统目前广泛应用于Twitter的多项重要计算中。本篇文章简单地介绍了Storm的系统架构,描述了Storm是如何执行拓扑(topology)计算的。Storm的设计目标有以下几点:可扩展性(Scalable):系统可以简单地在Storm集群中添加或删除节点,同时不影响当前的系统工作;适应性(Resilient):系统拥有良好的容错能力,这是因为Storm通常部署在大规模的集群上,出现节点故障的概率较高;可延展性(Ext

2021-02-10 00:29:34 618 2

原创 [论文笔记]Maiter:一种基于Delta的累积迭代计算的异步图处理框架

Maiter: An Asynchronous Graph Processing Framework for Delta-based Accumulative Iterative Computation背景:    传统的图处理框架一般为同步迭代的方式,也就是同一迭代内并行;不同迭代中串行。典型的同步图计算框架包括Pregel和MapReduce。同步迭代方式最大的局限在于水桶效应,执行速度最慢的线程会影响整个系统的执行效率,因为只有所有线程都完成了本轮迭代计算,系统才能进入下一轮迭代。    据此人

2021-01-22 18:03:43 653

原创 [论文笔记]LegoOS:一种硬件资源分解的分布式操作系统

LegoOS: A Disseminated, Distributed OS for Hardware Resource Disaggregation    文章设计了一种新型的操作系统架构—splitkernel:将处理器、内存、外存在网络上分开,所有信息交互均通过网络的形式进行。这是一种新型分布式系统,这样做的好处有:避免了水桶效应,即由于部分硬件的性能限制,使其它硬件性能无法充分发挥。易于增加或减少硬件,即拥有较好的可扩展性。避免部分硬件故障导致整体不可用。解决异构硬件难以兼容问题。 

2021-01-19 15:52:29 2317 3

原创 使用函数改变指针的方式

1.使用二重指针 void fun(int *p)2.函数返回指针 int fun(int *p)

2020-10-22 15:42:00 243

原创 CUDA C++基本写法

我们来看看基本的CUDA C++写法需要包含的头文件#include "cuda_runtime.h"#include "device_launch_parameters.h"GPU计算函数:__global__ void addKernel(int *dev_p){ int i = threadIdx.x; dev_p[i]++;}CUDA的GPU计算操作,它让GPU的线程分别对dev_p数组的每个元素并行地执行+1操作。必须用到的几个函数:cudaSetDevic

2020-10-20 22:26:04 3654

原创 在数组中求前K小的元素集合

class Solution {public: //T(n) = O(arr.size() * k) vector<int> getLeastNumbers(vector<int>& arr, int k) { if(arr.size() == 0 || k == 0) return {}; int maxIndex = 0; for(int i = 1; i < k; i++) {

2020-10-19 16:41:40 369 1

原创 将GPU多线程的计算能力与CPU进行比较

#include<iostream>#include<time.h>#include "cuda_runtime.h"#include "device_launch_parameters.h"using namespace std;#define threadSize 100#define arrSize 100void addWithCPU(float (*array)[arrSize]);void addWithGPU(float (*array)[arr

2020-10-06 18:33:55 1563

原创 搭建基于阿里云服务器的网站

本文使用阿里云服务器,配置LAMP的wordpress,服务器系统为CentOS7.5。1.Apache博客地址:https://blog.csdn.net/wkh___/article/details/83183621使用yum安装Apache:yum -y install httpd安装apache扩展:yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql2.PHP博客地址:https://www.php.cn/php

2020-09-24 20:54:40 315

原创 Ubuntu20.04环境变量配置

@[TOC]Ubuntu20.04环境变量配置编辑用户目录 下的 .bashrc 和 .profile,把配置命令添加进去。比如:export MANPATH=MANPATH:/usr/local/texlive/2019/texmf−dist/doc/manexportINFOPATH={MANPATH}:/usr/local/texlive/2019/texmf-dist/doc/manexport INFOPATH=MANPATH:/usr/local/texlive/2019/texmf−d

2020-09-24 20:31:10 5038

网页CSS文件,用于生成网页的CSS格式

网页CSS文件,用于生成网页的CSS格式

2023-10-30

空空如也

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

TA关注的人

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