自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(223)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 pytorch踩坑

cuda不可用开始觉得是torch版本和cuda不匹配,按照https://www.cnblogs.com/gzyc/p/12315831.html给的方法重新下载了torch和关联组件,在过程中经历了conda下载,下载过慢,python版本不对的问题,最后幸运的找到一个百度网盘的正确的版本,后面发现torch.cuda.is_avalible()还是false,原来是因为cuda根本没安装,需要在NVIDIA找到和显卡对应版本的cuda下载安装,之后就可以运行了OSError: [WinError.

2021-03-04 04:01:59 576 2

原创 inaturalist昆虫数据集

https://tensorflow.google.cn/datasets/catalog/i_naturalist2017?hl=zh-cn

2020-12-21 09:05:08 5419

原创 Java中CAS和synchronized多线程耗时对比测试

设置线程数为1000个,选取操作为自增,代码如下package suanfa;import java.util.concurrent.atomic.AtomicInteger;public class Main { static AtomicInteger casCur = new AtomicInteger(0); static Integer syncCur = 0; public static void main(String[] args) { i

2020-10-06 23:07:41 368

原创 C均值聚类算法、感知器算法C++实现,Fisher线性判别MATLAB实现

模式识别课作业,C均值聚类步骤:选取随机类心根据集合中点与各类心最小距离,对集合每个元素分类将分类后各类元素的均值作为新的类心若类心不再更新,则结果收敛,算法结束#include<bits/stdc++.h>using namespace std;int N; //输入数据个数 int C; //类别个数 struct Node { double x, y; Node (double x = 0, double y = 0) : x(x), y(y) { }}cen

2020-05-14 21:12:47 873

转载 学习HTTPS协议的一些资料

1:维基百科如果想概括性的理解密码学和 TLS/SSL 协议,那么维基百科是最好的资料,它对于知识的提炼和总结非常的棒,大家在学习某个知识点之前,可以先查阅维基百科,了解大概的印象,另外其引用的文章也非常的好,可以进一步的学习。对于密码学和 TLS/SSL 协议的初学者来说,可以阅读维基百科的索引页Outline of cryptography。2:OpenSSLOpenSSL 是目前最流...

2020-05-05 22:09:22 516

原创 目前的学习计划

操作系统进程、线程、协程、内核级用户级进程间通信:管道、消息传递、共享内存……;线程间通信锁机制:互斥锁、信号量、读写锁……虚拟内存、分页分段、页面置换、磁盘调度、(文件系统)I/O:阻塞、非阻塞、异步、同步、IO多路复用、select、poll、epolllinux:命令:文件处理、权限、问题排查、CPU、……;shell、(内核)死锁各种处理、消费者生产者网络TCP:拥...

2020-04-14 18:44:14 330

原创 Java等概率生成1到n之间的随机数

Random类可以直接利用Java提供的Random类来生成1~n之间的数public int rand5() { return new Random().nextInt(5)+1;}Math.random()然后是Math.random(),然而这个函数只能生成0到1之间的随机浮点值,可以将得到的数乘n,再强制类型转换,得到的也是等概的public int rand5() { ...

2020-03-21 15:38:08 2756

原创 Linux openMP for循环并行编程实例

需要加omp.h这个库,编译的时候加-fopenmp参数:并行执行的代码在#pragma omp parallel { }代码块里,如果要将for循环拆分多个线程执行,则在for循环前加#pragma omp parallel for#include <stdio.h>#include <omp.h>int main(){ #pr...

2020-03-16 11:08:53 832

原创 LeetCode 287.寻找重复数 二分

题意:有一个n+1个数的数组,每个数都小于等于n,有一个数重复了至少一次,找出这个数,要求空间复杂度O(1),且不能更改原数组思路:根据数组里的数而不是索引二分,即二分答案,找出数组中某个数的出现次数,如果次数大于这个数,那答案就在这个数前面,否则就在后面class Solution { public int findDuplicate(int[] nums) { in...

2020-03-04 09:55:43 119

原创 NowCoder 二叉树的下一个结点

题意:给出一个带父结点的二叉树中的一个结点,求出中序遍历中该结点的下一个结点思路:可以先找出根结点,之后进行中序遍历,如果当前结点的前一个结点为所给结点,那这个结点就是答案/*public class TreeLinkNode { int val; TreeLinkNode left = null; TreeLinkNode right = null; Tre...

2020-02-12 00:04:34 74

原创 NowCoder 删除链表中重复的结点

题意:给一个排序链表,要求删除其中的所有重复结点(包括自身),返回删除后的头结点思路:主要有几个要注意的点,一个是头结点也可能重复,重复完后的下一个值不同的结点还可能接着重复,需要找到第一个不重复的结点,再从这个结点往后找,记录最后一个不重复的结点,没有重复的时候更新这个结点,否则找到下一个不重复结点,将其连接起来,直到处理到链表末尾即可public class Solution { ...

2020-02-11 23:49:37 85

原创 NowCoder 表示数值的字符串

题意:给一个字符串,判断该字符串是否表示数值思路:表示数值就那么几个条件:e或E之前最多只能有一个小数点,只能有一个e或E,且后面为整数,符号位只能在第一位或e和E后第一位,依次判断就行public class Solution { public boolean isNumeric(char[] str) { int start = 0, cnt = 0; ...

2020-02-10 23:21:46 122

原创 NowCoder 正则表达式匹配 递归

题意:给一个原串和一个模式串,’.‘表示匹配任意一个字符,’*'表示前面字符可以出现任意次,如"aaa"可由"a.a"或"ab *aa"匹配,求模式串是否匹配原串思路:若某个位置没有".",后面也没有" * “,而两字符又不同,则不匹配,否则前后找下一字符。难点在处理有” * "的情况,因为可以匹配任意次,故可以不匹配或者匹配特定次数,而次数未知,故可先匹配一次,模式串位置不变,原串位置加1,递...

2020-02-10 22:03:05 103

原创 CentOS编译Linux-0.11出现的问题

make: as86:命令未找到缺少32位汇编器as86,去RPM搜索bin86 用rpm安装:rpm -ivh bin86-0.16.21-2.1.x86_64.rpmRPM搜索网站:http://rpmfind.net/linux/RPM/index.html/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录安装...

2020-02-10 21:33:36 999

原创 NowCoder 不用加减乘除做加法 进制运算

题意:求两个数的和,要求不能用加减乘除思路:二进制做加法时,1和1加或0和0加都是0,1和0加或0和1加都是1,相当于异或运算,但还要解决进位问题,1和1加时下一位产生进位,相当于各位相与向左移,之后再将进位和异或和再次异或直到没有进位public class Solution { public int Add(int num1,int num2) { int sum,...

2020-02-08 22:58:18 83

原创 NowCoder 求1+2+3+...+n 递归

题意:求1加到n的和,要求不能用乘除,以及分支跳转循环如if else while for switch case等语句思路:这里用到一个巧妙的特性:&& 判断前面不符合就不会执行后面的语句,这样可以在递归的时候不用if就可以判断是否到达结束条件public class Solution { public int Sum_Solution(int n) { ...

2020-02-08 22:00:03 162

原创 NowCoder 数组中只出现一次的数字 异或运算

题意:一个数组中有两个数字只出现了一次,其他都出现了两次,找出这两个数字思路:用Map存储数字出现次数复杂度也不高,但是没有完全按照题意要求来做,正确的做法是用异或运算,将数组中所有数字异或起来,所有相同的数字会抵消,只剩下两个只出现一次的不同的数字,这时可以找到异或结果二进制中第一个1,把原数组划分成两个子数组,即在那位带1和不带1的,之后再次在两个数组异或求出两数public class ...

2020-02-03 22:59:13 117

原创 NowCoder 平衡二叉树 递归

题意:给一棵二叉树,判断其是否平衡二叉树思路:平衡二叉树两子树的最大高度差不能超过1,可以递归求两子树的最大高度,如果两子树高度差大于1,则树不平衡,若已知某子树不平衡,则不用继续递归直接返回结果public class Solution { public boolean IsBalanced_Solution(TreeNode root) { return solve...

2020-02-03 22:52:42 83

原创 NowCoder 数组中的逆序对 归并排序

题意:给一个数组,求出数组中存在的逆序对的个数,逆序对即两数中前面的数字大于后面的数字思路:暴力枚举很简单,复杂度为O(n²),可以用归并排序的性质,归并后两个子数组中设前面为i,后面为j,若array[i]>array[j],则i到mid的数即为当前可知逆序对数(排序完后前面数组i到mid的数都比i位置的大,故排序前乱序时前面数组相对后面数组逆序对也有这么多),将所有子数组的逆序对统计即...

2020-02-02 19:08:13 94

原创 LeetCode 43.字符串相乘 模拟

题意:给两个十进制字符串,求出两数相乘得到的结果字符串思路:字符串长度太大,而且用BigInteger做这题就没意思了,所以只能按照乘法法则模拟。首先模拟两字符串数相加过程,之后模拟多位和个位相乘过程,之后按照位数往后添0相加得到总和就是结果class Solution { public String multiply(String num1, String num2) { ...

2020-01-30 22:16:43 120

原创 NowCoder 二叉搜索树的后序遍历序列 递归

题意:给一串序列,判断该序列是否某二叉树的后序遍历序列思路:后序遍历最后一个节点为根节点,前面的都可以分成连续的两部分,一部分比根节点小,另一部分比根节点大,依次分块递归判断两部分是否连续即可public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if (sequence ...

2020-01-30 15:48:59 117

原创 NowCoder 树的子结构 递归

题意:给两棵树A、B,问B是否是A的子结构,空树不是任何树的子结构思路:最简单的是用递归深搜,判断当前两树结构是否相同,或者大树左右子树是否和小树相同即可public class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { if (root2 == null || root1...

2020-01-27 21:13:22 109

原创 NowCoder 调整数组顺序使奇数位于偶数前面 指针

题意:给一个数组,要求使数组中奇数位于偶数前面且奇数与奇数,偶数与偶数之间相对位置不变思路:可以用额外空间的话很简单,开一个数组存奇数或者偶数即可;要求原地更改的话可以用指针,一个存偶数开始位置,另一个存偶数结束位置,每遇到一个偶数向后遍历直到遇到奇数,再把这个奇数放到开头,其余偶数元素向右移1位,复杂度O(n²)public class Solution { public void ...

2020-01-24 11:58:14 98

原创 LeetCode 67. 二进制求和 模拟

题意:给定两个二进制字符串,求两数相加得到二进制数的字符串序列思路:记录进位标记,从后往前按位相加判断是否进位即可class Solution { public String addBinary(String a, String b) { int n = a.length(), m = b.length(), i = n-1, j = m-1; Stri...

2020-01-23 11:34:40 84

原创 LeetCode 55.跳跃游戏 思维

题意:给一个数组,数组元素等于在该点可以跳跃的最大长度,求出是否能从起点跳到终点思路:若某点为0则无法跳跃,若该点不为终点则返回false,求出前面可跳长度是否足以跳过该点即可class Solution { public boolean canJump(int[] nums) { if (nums.length == 1) return tru...

2020-01-23 10:51:58 102

原创 LeetCode 33. 搜索旋转排序数组 二分

题意:给一个旋转数组和一个目标值target,求用O(logn)时间在数组中找出target值思路:首先用二分找到旋转后的开始索引,之后根据目标值和两个子数组大小关系在子数组中再用二分即可。注意找开始索引和找目标值用的二分方法不同class Solution { public int search(int[] nums, int target) { if (nums.l...

2020-01-18 23:02:39 85

原创 洛谷P1280 尼克的任务 线性DP

题意:给定工作时间N,和K个任务的起始时间P和持续时间T,从第1分钟开始工作,某一时刻若有多个工作则任选一个工作,若只有一个工作则必须要选那个来做,求出能够得到的最多的空闲时间思路:因为时间只能是递增的,所以可以考虑按时间倒序来做,若某一时刻没有任务,则dp[i]=dp[i+1]+1,若有任务,则dp[i]=max(dp[i+Ti]),Ti为起始时刻为i的所有持续时间#include<b...

2020-01-14 18:14:41 126

原创 洛谷P1616 疯狂的采药 基础DP

题意:给T时间和M种草药,每种草药给出采摘用时及价值,每种都可以无限采摘,求出在给定时间可以得到的最多价值思路:背包问题,用DP思想很容易想到O(T²)的方法,转移方程dp[i]=max(dp[i],dp[i-j]+dp[j]),就是用小于当前价值的所有时间求出当前时间的最大价值#include<iostream>#include<cstdio>#include&l...

2020-01-10 21:55:11 205 1

原创 LeetCode 24.两两交换链表中的节点 递归

题意:给定一个链表,要求两两交换链表中相邻的两节点,比如1->2->3->4变为2->1->4->3思路:最简便的方法就是递归,头结点的下一个节点是已经转换好的节点的头结点,之后再把原来头结点的下一节点接到头结点上即可class Solution { public ListNode swapPairs(ListNode head) { ...

2020-01-04 09:54:35 147

原创 LeetCode 264.丑数 II DP

题意:给一个整数n,求出第n个丑数,丑数即为只包含质因数2,3,5的数思路:把质因数分别为2,3,5的丑数看成3个子数组,把整个dp数组看成3个子数组的组合,取每个子数组的索引L1,L2,L3,则第k个丑数即为min(dp[L1]*2,dp[L2]*3,dp[L3]*5),若当前丑数大于某个子数组索引上的值则更新索引值,如此可求出所有n个丑数class Solution { publi...

2019-12-26 23:16:52 121

原创 LeetCode 105.从前序与中序遍历序列构造二叉树 递归

题意:给出一个二叉树的前序和中序遍历,求出这个二叉树思路:首先枚举中序遍历找到根节点,之后再向左向右递归,并缩小遍历范围,若存在左节点左树根就是start+1,右树根位置可以根据当前根在中序和前序中的相对位置确定class Solution { public TreeNode buildTree(int[] preorder, int[] inorder) { retu...

2019-12-26 17:35:35 106

原创 LeetCode 18.四数之和 暴力 指针

题意:给出一个序列和一个target值,求出序列中4个数加起来等于target的所有这样的四元组思路:和三数和一样用暴力指针枚举,只是多了一层循环,在第二层循环里用双指针使四数和最接近target即可class Solution { public List<List<Integer>> fourSum(int[] nums, int target) { ...

2019-12-26 11:08:28 88

原创 POJ 2406 Power Strings KMP 最小循环节

题意:给出一个字符串,求出字符串中重复次数最多的子串的重复次数思路:在复习一遍,n-fail[n]表示长度为n的字符串中最小循环节的长度,首先求出fail数组,再求出串中最小循环节长度,若长度可被总长整除,则答案即为总长/循环节长度,否则就是1#include<iostream>#include<cstdio>#include<cmath>#inclu...

2019-12-25 21:50:07 154

原创 XDU2019校赛现场赛复盘

A. 不记得了,记得是道签到题,之前菜的连做这道题都花了四十多分钟,整场现场赛就做了这一道题,菜到无法直视B. qko 的 aaaa + bbbb题意:给一个4个字符的字符串,一个unsigned int可以用32个字节组成,用这4个字符构成一个unsigned int,则可以用字符串来支持整型的操作,给两个字符串,求出这样编码后两字符串相加得到的数思路:简单得不能再简单的模拟题...

2019-12-19 23:34:32 148

原创 LeetCode 95. 不同的二叉搜索树 II 递归

题意:给一个整数n,求出1到n能够构成的所有二叉树思路:可以用递归首先求出左子树构成的列表和右子树构成的列表,从1到n枚举所有根节点,将每个左子树和每个右子树的根连到当前的根上,最底层可能是null,也可能只有一个节点,最顶层则是所要求的答案class Solution { public List<TreeNode> generateTrees(int n) { ...

2019-12-12 20:28:43 70

原创 Codeforces 1256D. Binary String Minimizing 贪心

题意:给一串二进制序列,可以对相邻元素进行若干次操作,每次操作交换两位置元素,给出能够进行的操作数限制k,求出在最多k次操作后可以得到的字典序最小的序列思路:原本想的是和B题一样用链表模拟,结果被insert操作搞得TLE了,原来insert复杂度也挺高的。后来发现其实只要离前面最近的0全部放到前面就行,只需要记录唯一一次特例,即k操作数不够,放不到最前面,只能放到i-k的位置上。k足够时遇到的...

2019-11-16 20:13:14 100

原创 Codeforces 1256B. Minimize the Permutation 贪心 STL

题意:给出一个排列,可以且仅可以对排列中某个位置相邻元素进行一次操作,该操作交换两元素位置,求出在进行操作后可以得到的最小字典序的排列思路:水题,算是对STL的应用,主要是太久没有碰代码了,手痒的不行。因为不管怎么交换只要最小的元素在最前面就行,首先1肯定是在首位,这样原来1位置之前的所有元素都需要交换一次,记录下当前已交换的元素位置,找出后面还没交换过的最小的元素,将其尽量放到前面,直到所有元...

2019-11-15 23:20:42 161

原创 POJ 3660 Cow Contest floyd dfs

题意:有n个奶牛,给出m个奶牛的关系,即某个奶牛的编程能力比另一个要强,求出能够确定排名的奶牛的最大数量思路:建立n个点m条边的有向图,某个点能够确定排名,则其他所有点不是可以到达该点,就是可以由该点到达。可以用floyd来判断,给每条边权值赋1,如果松弛后某点与其他所有点的边权值不为无穷大,则该点就能确定排名#include<iostream>#include<cstdi...

2019-10-08 22:35:06 117

原创 POJ 1502 MPI Maelstrom 最短路

题意:有n台主机,给出每两台主机之间的通信时间,每台主机允许向所有连接到它的主机同时发送消息,求一条消息从主机1发送到所有其他主机所需要的最少时间。思路:题意给的不太清楚,乍一看还以为要求最小生成树,实际上就是求主机1到其他主机的最短路中的最大值,用djkstra求就行#include<iostream>#include<cstdio>#include<cma...

2019-10-08 20:54:36 77

原创 Codeforces 1195D1. Submarine in the Rybinsk Sea 快速幂 思维

题意:定义函数f(a,b)值为b中所有位和a中所有位由b开始从右到左交叉,如f(1111,2222)=12121212,f(33,44444)=4443434,给出n个位数相同的数,求出每个数和其他所有数(包括自己)的f值的和,求出所有数的这样的和值模998244353,即∑ni=1∑nj=1f(ai,aj) % 998244353。思路:观察可以发现,两个数交叉得到的两个值之和相当于两个数分...

2019-10-07 21:10:05 79

算法竞赛入门经典(第2版)紫书.pdf

算法竞赛入门经典(第2版)紫书.pdf

2019-05-21

算法图解.pdf

算法图解.pdf

2019-05-21

Java数据结构和算法中文第二版.pdf

Java数据结构和算法中文第二版

2019-05-21

编译原理(龙书) 第二版.pdf

编译原理(龙书) 第二版.pdf

2019-05-21

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

TA关注的人

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