自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 问答 (1)
  • 收藏
  • 关注

原创 122. 买卖股票的最佳时机 II、55. 跳跃游戏、45. 跳跃游戏 II、1005. K 次取反后最大化的数组和

贪心:尽可能扩展的大(将当前范围内的全部搜索一遍,选最大的扩展)扩展一次记录一次。

2023-02-22 19:57:43 357 1

原创 455. 分发饼干、376. 摆动序列、53. 最大子数组和

从代码角度上来讲:遍历nums,从头开始用count累积,如果count一旦加上nums[i]变为负数,那么就应该从nums[i+1]开始从0累积count了,因为已经变为负数的count,只会拖累总和。相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。

2023-02-18 18:44:24 714

原创 标准库类型string和vector

std就是命名空间,这个的含义是 :编译器应该从操作符左侧的名字所示的作用域std中去寻找cin。另一种方式就是在开头显式进行说明:这样一来后续就不用再去在每条语句中显式说明了。string类型:可变长字符串;存在于头文件:#include中,而且定义于std命名空间中。其实这些初始化方式主要可以分为两类:(1)拷贝初始化使用了一个变量去初始化了另一个变量,被初始化变量是其他变量的副本;表征的话有“=”号的都是拷贝初始化比如:(2)直接初始化直接将初始值拷贝到变量中去比如:2.2 strin

2022-10-31 20:50:40 487

原创 C++迭代器

迭代器可以理解成一种指向某个元素,也可以前后移动,但是又有点类似于vector,可以获取下标。begin()返回指向头一个元素的迭代器,end()返回的是最后一个元素的后一个位置(没实际指向,多用于标志)返回的类型和迭代器所指的元素有关,如果是常量那就是const_iterator,否则是iterator类型。

2022-10-14 21:04:10 855

原创 CUDA优化reduce

为了获得较高的内存带宽,共享存储器被划分为多个大小相等的存储器模块,称为bank,可以被同时访问。因此任何跨越b个不同的内存bank的对n个地址进行读取和写入的操作可以被同时进行,这样就大大提高了整体带宽 ——可达到单独一个bank带宽的b倍。但是很多情况下,我们无法充分发挥bank的功能,以致于shared memory的带宽非常的小,这可能是因为我们遇到了bank冲突。当一个warp中的不同线程访问一个bank中的不同的字地址时,就会发生bank冲突。

2022-09-09 10:53:30 886 1

原创 3.1 CUDA执行模型概述

一、 CUDA执行模型概述1.1 GPU架构概述GPU架构主要围绕流式多处理器(SM)进行的搭建。如下图所示。SM中有多个CUDA执行核心,支持数百个线程的并发执行。当启动一个grid时,其中的线程块被划分到SM上进行执行,一个线程块不会跨SM进行执行。同时在一个SM中可能执行多个线程块,线程块之间根据SM资源的可用性进行调度(主要由Warp Scheduler负责)。SM会将线程块再次进行划分,划分为线程束(每个wrap有32个线程),然后再调度执行,wrap是SM调度运行的最小单位。此外

2022-08-23 10:26:22 805

原创 回溯总结二:子集问题&排列问题&性能分析

排列问题相比组合问题的不同在于次序需要考虑,因此表现在程序中就是。78是最基本的子集问题,90题在78的基础上进行了同层去重。但是树层去重效率更高,因为没有继续往下递归。要注意它的去重方法。

2022-08-23 09:09:41 319

原创 46. 全排列、47. 全排列 II

(3)内部处理逻辑:更新路径和used数组,递归,回溯;(1)参数和返回值:因为每次从nums开头进行遍历,所以参数只需要nums;,那就简单了,开一个大小为6的标记数组即可,然后递归前进行标记,回溯时去除标记。(2)终止条件:遍历至回溯树的叶子时终止,也就是path的长度等于nums的长度。,[1,2,3]和[2,1,3]是两个不同的结果,不能去除。,但是数字不可重复选择,这就需要增加一个。给定一个不含重复数字的数组。排列问题和组合问题的不同在于。返回所有不重复的全排列。,因此需要考虑如何去重。

2022-08-23 09:00:34 94

原创 78. 子集、90. 子集 II、491. 递增子序列

所以和​​​​​​​本题其实类似求子集问题,也是要遍历树形结构找每一个节点,所以和90.子集一样。其实子集也是一种组合问题,因为它的集合是无序的,子集{1,2} 和 子集{2,1}是一样的。给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。而本题求自增子序列,是不能对原数组经行排序的,排完序的数组都是自增子序列了。这又是子集,又是去重,是不是不由自主的想起了刚刚讲过的90.子集。

2022-08-22 19:39:38 266 1

原创 回溯总结一:组合问题&切割问题

都知道组合问题可以抽象为树形结构,那么“使用过”在这个树形结构上是有两个维度的,一个维度是同一树枝上“使用过”,一个维度是同一树层上“使用过”。如果是多个集合取组合,各个集合之间相互不影响,那么就不用startIndex,例如:17.电话号码的字母组合。如果是一个集合来求组合的话,就需要startIndex,例如:39.组合总和、77.组合。数量要求,能否无限重复,有无总和的限制。思路其实都很相似,回溯,抽象为一棵树。这个题中的去重办法十分值得思考,这几道组合问题中需要注意几个点。40. 组合总和 II。

2022-08-22 08:54:07 133

原创 131. 分割回文串、93. 复原 IP 地址(切割问题)

给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入 '.' 来形成。例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "[email protected]" 是 无效 IP 地址。在组合问题中,每次是选择一个,到这个切割问题里,树的深度其实就是按照次序不同的子串,树的宽度是不同长度的字串。其实刚看到懵了一下,切割问题怎么给转化为组合问题的?

2022-08-22 08:24:43 178

原创 39. 组合总和、40. 组合总和 II

给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。回溯,复原sum和path。

2022-08-22 08:24:27 117

原创 77. 组合、216. 组合总和 III、17. 电话号码的字母组合

如果按照暴力来想,直接for循环,但是这样对于k较小的是可以,但是如果k为100,总不能写100层的for循环吧,那也太离谱了。至于树的宽度深度,我们拿到一串数字,数字的长度其实就是树的深度;再来看参数,参数指定是有题目中给的string digits,然后还要有一个参数就是int型的index,标识从哪个数字开始。比较容易想到的是,如果我们当前节点的sum和已经大于等于n,那就没有继续往下寻找的必要了,直接剪枝。,如果想让回溯法高效一些,可以加一些剪枝的操作,但也改不了回溯法就是穷举的本质。...

2022-08-17 08:43:48 100

原创 669. 修剪二叉搜索树、108. 将有序数组转换为二叉搜索树、538. 把二叉搜索树转换为累加树

修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。所以结果应当返回修剪好的二叉搜索树的新的根节点。高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。.

2022-08-16 10:57:09 63

原创 236. 二叉树的最近公共祖先、701. 二叉搜索树中的插入操作、450. 删除二叉搜索树中的节点

236. 二叉树的最近公共祖先题目描述:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”解答:法一:本题我的思路是先分别对于p和q进行寻找,记录路径。然后对于p和q的路径序列再进行对比,找到第一个不同的元素,即为找到了最近的公共祖先。代码实现:class Solution {

2022-08-15 15:20:55 2095

原创 DeepMD-kit和LAMMPS的安装&测试

安装Deepmd并进行测试

2022-07-19 14:20:05 2202

原创 530. 二叉搜索树的最小绝对差、501. 二叉搜索树中的众数

530. 二叉搜索树的最小绝对差题目描述:给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。差值是一个正数,其数值等于两值之差的绝对值。解答:二叉搜索树进行中序访问是一个有序序列,差值的最小一定会出现在序列相邻的两个位置中。先对二叉搜索树进行中序遍历,得到遍历序列 。然后访问遍历序列,记录最小的差值。代码实现:class Solution {public: void inOrder(TreeNode* root, vector

2022-05-19 09:25:34 82

原创 617. 合并二叉树、700.二叉搜索树中的搜索、98. 验证二叉搜索树

617. 合并二叉树题目描述:给你两棵二叉树: root1 和 root2 。想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。返回合并后的二叉树。注意: 合并过程必须从两个树的根节点开始解答:首先来一个比较直白的思路,遍历两棵树,对比节点,创建一棵新树。至于遍历方法,前中

2022-05-17 15:41:38 83

原创 106. 从中序与后序遍历序列构造二叉树、105. 从前序与中序遍历序列构造二叉树、654. 最大二叉树

106. 从中序与后序遍历序列构造二叉树题目描述:给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。解答:首先来理清如何手动实现从中序、后序遍历序列构造二叉树。中序遍历:左中右,后序遍历:左右中。后序序列中的最后一个即为根节点,然后根据此根节点划分中序序列,得到左子树、右子树;然后再根据中序序列划分出的左右子树去划分后序序列。划分完毕后递归执行即可。梳

2022-05-15 16:49:52 231

原创 今日的心灵鸡汤

今天突然有点心灵鸡汤想要写。第一点,万事开头难,很多事情一开始都是在一个缓慢的爬坡期,学习、工作、科研都一样,不要遇到困难就停止不前了,贵在坚持。第二点,别把热血别凉了,接着去做。随着年龄的增长,想法和目标一直再变,但是一直想成为一个很厉害的人。其实没有厉害和逊逼的区分,只有血的凉与热,有人觉得生活就这样吧,没什么不好的,但是我觉得生活不应该仅仅如此,应该更好。从开始有写博客的想法开始,陆陆续续挖了很多的坑,一直没有去填,目前打算是从2021年的坑开始一步步填,一周填上一个坑。目前的科研多是

2022-05-13 18:27:21 179

原创 (递归是否需要返回值)112.路径总和、113. 路径总和 II

首先给递归是否需要返回值的结论:如果需要搜索整棵二叉树且不用处理递归返回值,递归函数就不要返回值。(这种情况就是本文下半部分介绍的113.路径总和ii的情况) 如果需要搜索整棵二叉树且需要处理递归返回值,递归函数就需要返回值。 (这种情况我们在236.二叉树的最近公共祖先的情况) 如果要搜索其中一条符合条件的路径,那么递归一定需要返回值,因为遇到符合条件的路径了就要及时返回。(112.路径总和的情况)112.路径总和题目描述:给你二叉树的根节点 root 和一个表示目标和的整数 ta

2022-05-10 18:30:38 540

原创 三层神经网络实现手写数字图像分类

数据集采用MNIST。MNIST 数据集包含 4 个文件,分别是训练集图像、训练集 标记、测试集图像、测试集标记。每个样本都由灰度图像(即单通道图像)及其 标记组成,图像大小为 28 × 28。一、整体框架设置五大模块,模块化,便于迭代。1) 数据加载模块:从文件中读取数据,并进行预处理,其中预处理包括归一化、维度变换等处理。如果需要人为对数据进行随机数据扩增,则数据扩增处理也在数据加载模块中实现。2) 基本单元模块:实现神经网络中不同类型的网络层的定义、前向传播计算、反向传播计算等功能。

2022-05-10 11:22:37 2779 2

原创 404. 左叶子之和、513. 找树左下角的值

404. 左叶子之和题目描述:给定二叉树的根节点 root ,返回所有左叶子之和。解答:法一:迭代法(层序遍历)看到本题首先思考的是,如何确定是左叶子?叶子很好确定,左右子节点均为空即可,但是左叶子应该如何确定?经过观察,如果将空节点也当作一个存在的节点,每一层的左节点在该层中序号数为2的倍数(0,2,4,8......)。因此可以采用层序遍历,将空节点也入队,视为一个节点,但是不进行处理,仅用于计数。遇到左右子节点均为空且对2求余为0的节点(即为左叶子)求和即可。代码实现:

2022-05-08 17:08:05 426

原创 222. 完全二叉树的节点个数、110. 平衡二叉树、257.二叉树的所有路径

222. 完全二叉树的节点个数题目描述:给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。解答:法一:层序遍历层序遍历,统计每一层的节点数量即可。代码实现:class Solution {public: int countNodes(TreeNode*

2022-05-07 09:56:48 194

原创 TensorFlow手写数字识别

使用mone hot=True ,表示将样本标签转化为one hot 编码。one_hot 编码: 只有一个位为1 , 1 所在的位置就代表着第几类。例如:一共10 类。0 的one_hot 为1000000000,1 的one_hot为0100000000 , 2 的one hot 为0010000000 , 3 的one hot 为0001000000 ..…·依此类推。...

2022-05-04 18:42:11 2322

原创 TensorFlow编程框架基础

一、为什么要使用编程框架深度学习的算法具有多层结构,每层的运算由一些基本操作构成,这些基本操作中存在大量共性运算,如卷积、池化、激活等。 将这些共性运算操作封装起来,可以提高编程实现效率。面向这些封装起来的操作,硬件程序员可以基于硬件特征, 有针对性的进行充分优化,使其能充分发挥硬件的效率。深度学习编程框架:将深度学习常用的算法和操作封装成一系列的组件,这一系列的组件就构成了深度学习编程框架。例如VGG-19使用编程框架的流程图如下所示:二、TensorFlow概述2.1 Ten

2022-04-27 18:39:08 724

原创 101. 对称二叉树(递归法、迭代法)、100. 相同的树、572. 另一棵树的子树

题目描述:给你一个二叉树的根节点root, 检查它是否轴对称。解答:法一:递归法首先要确定采用什么遍历方式来进行判断,我第一个想法是使用层序遍历,检查每一层的遍历结果翻转后是否相同,但是经过尝试层序遍历难以实现,如[1,2,2,null,3,null,3]这种情况,层序遍历判断错误。然后思考,判断二叉树对称,其实就是判断其左子树的外层和其右子树的外侧是否相同,其左子树的内侧和其右子树的内侧是否相同,如下图所示:因此对于左子树进行后序遍历:左右中,右子树进行后序遍历:右左中。...

2022-04-27 15:24:02 219

原创 LU分解算法(串行、并行)

一、串行LU分解算法1. LU分解矩阵分解LU分解分解形式L(下三角矩阵)、U(上三角矩阵)目的提高计算效率前提(1)矩阵A为方阵;(2)矩阵可逆(满秩矩阵);(3)消元过程中没有0主元出现,也就是消元过程中不能出现行交换的初等变换LU分解其实就是将线性方程组:Ax=b Ax = bAx=b分解为:LUx=b LUx = bLUx=b这样一来就会有:{Ly=bUx=y\begin{cases}Ly = b \\ Ux = y \end{cases}{

2022-04-26 08:32:44 7045

原创 深度学习是否需要全部float 32类型

1. 是否需要全部float32从硬件实现的角度来看,8位乘法器与32位相比功耗位1/18,面积位1/27,速度则为4倍,能更多的使用低位宽的数据类型当然更好。现在很多科学计算、深度学习中常常采用的是float32类型,但是深度学习是否全部都需要是float 32类型?答案是否定的,并不需要。有人可能会担心,说如果改用更低位宽的数据类型是否会导致精度降低,理论上来说是会降低精度,但是这个精度有时候可能在我们可以接受的范围内。如下图所示是一个识别手写数字的二维可视化图,可以看的不同类别之间存在一定

2022-04-21 10:05:19 767

原创 GPU使用mps

一、什么是mps?1.1 mps简介mps(Multi-Process Service),多进程服务。一组可替换的,二进制兼容的CUDA API实现,包括三部分: 守护进程 、服务进程 、用户运行时。mps利用GPU上的Hyper-Q 能力:o 允许多个CPU进程共享同一GPU contexto 允许不同进程的kernel和memcpy操作在同一GPU上并发执行,以实现最大化GPU利用率.HyperQ 可以视为在设备端的硬件中实现的流:...

2022-04-18 10:29:47 9198 1

原创 226. 反转二叉树(递归、迭代、广度优先遍历三种方法)

226. 反转二叉树题目描述:给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。解答:想要翻转二叉树,其实就把每一个节点的左右孩子交换一下就可以了。关键在于遍历顺序,前中后序、层序应该选哪一种遍历顺序?遍历的过程中去翻转每一个节点的左右孩子就可以达到整体翻转的效果。 前序、后序、层序都比较易于实现,但是只有中序有点麻烦。法一:采用递归法之前有写过递归法实现前中后序遍历:二叉树的递归遍历_清榎的博客-CSDN博客...

2022-04-17 10:42:04 795

原创 【层序遍历专场练习Ⅱ】429. N叉树的层序遍历、515. 在每个树行中寻找最大值、116. 填充每个节点的下一个右侧节点指针、104二叉树的最大深度&559N叉树、11. 二叉树的最小深度

429. N叉树的层序遍历题目描述:给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。解答:思路与二叉树的层序遍历一致,主要在于子节点入队时稍有不同。N叉树判断子节点的是否为空(大小是否为0),非空时依次进行入队即可。其他操作与二叉树层序遍历一样。代码实现:class Solution {public: vector<vector<int>> levelO..

2022-04-13 11:10:10 857

原创 【层序遍历专场练习Ⅰ】102. 二叉树的层序遍历、107. 二叉树的层次遍历Ⅱ、199. 二叉树的右视图、637. 二叉树的平均值

102. 二叉树的层序遍历题目描述:给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)解答:遍历很简单,出队进行访问,访问结束后,左右节点分别入队。但是有个问题,每一层访问多少个节点?其实每次队中的元素即为这一层的所有元素,每次获取一下队列长度再进行遍历即可。此处容易写出BUG的点在于:使用固定大小size,不要使用que.size(),因为que.size是不断变化的。代码实现:class Solution {public:

2022-04-12 09:45:03 813

原创 二叉树的迭代法遍历、统一迭代法遍历

144. 二叉树的前序遍历采用迭代的方式进行实现 。递归时使用栈存储临时变量和参数,因此也可以使用栈来实现二叉树的遍历。前序遍历是中左右,因而入栈顺序应该是先右后左,出栈即为左右。每次取出栈顶元素,放入结果中,再将栈顶元素的右、左分别压栈即可。代码实现:class Solution {public: vector<int> preorderTraversal(TreeNode* root) { vector<int>result;

2022-04-11 10:05:57 1013

原创 矩阵并行计算

矩阵并行计算一、矩阵卷帘存储二、矩阵向量并行乘法2.1 串行算法2.1.1 i-j实现2.1.2 j-i实现2.2 并行算法2.2.1 行分块划分矩阵2.2.2 列分块划分矩阵二、矩阵乘并行计算

2022-04-07 21:48:15 2708

原创 二叉树的递归遍历

先复习一下二叉树数据结构的写法struct TreeNode{ int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}}144. 二叉树的前序遍历采用递归的方式进行实现 。对于递归主要关键在于三点:(1)确定递归函数的参数和返回值。在递归函数中需要进行记录或者修改的部分要进行传递作为参数,并且明确每次递归返回什

2022-04-07 10:04:59 507

原创 栈和队列刷题总结

一、基础知识1.1 四个问题1. C++中stack,queue 是容器么?2. 我们使用的stack,queue是属于那个版本的STL?3. 我们使用的STL中stack,queue是如何实现的?4. stack,queue 提供迭代器来遍历空间么?首先,stack、queue是STL里边的两个标准库,栈后进先出,队列先进先出。STL有多个版本,要知道我们使用的STL是哪个版本,才能知道对应的栈和队列的实现原理。三个最为普遍的STL版本: HP STL 其他版本的C

2022-04-07 08:58:05 294

原创 239. 滑动窗口最大值(单调队列)、347. 前k个高频元素

239. 滑动窗口最大值题目描述:给你一个整数数组 nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k个数字。滑动窗口每次只向右移动一位。返回 滑动窗口中的最大值 。解答:想要一个队列,这个队列,放进窗口里的元素,然后随着窗口的移动,队列也一进一出,每次移动之后,队列告诉我们里面的最大值是什么。那么应该如何实现这个队列?首先考虑最大值怎么给出,排序可以给出最大值,但是无法进行窗口元素的顺序进出。...

2022-04-06 10:25:10 639

原创 经典卷积神经网络

一、 卷积神经网络的演变二、经典神经网络2.1 LeNet52.1.1 背景Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner. Gradient-based learning applied to document recognition. Proceedings of the IEEE, November 1998.LeNet5是由Y.LeCun等人提出的,主要进行手写数字识别和英文字母识别。2.1.2 结构...

2022-04-05 17:02:18 4420 1

原创 Gromacs初探

1. Gromacs是用来干什么的?分子动力学模拟是分子模拟中最接近实验条件的模拟方法, 能够从原子层面给出体系的微观演化过程, 直观地展示实验现象发生的机理与规律,gromacs就是一个用于分子动力学模拟的程序。2. Gromacs的步骤以T4溶菌酶L99A/M102Q为例2.1 初始化结构通过实验数据或者某些工具得到体系内的每一个分子的初始结构坐标文件。之后, 我们需要按我们的想法把这些分子按照一定的规则或是随机的放在一起, 从而得到整个体系的初始...

2022-04-01 19:13:10 5464 1

空空如也

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

TA关注的人

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