自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Pycharm连接远程服务器并编写、运行python代码

博主在学习过程中因为需要将pytorch环境搭建在服务器上了,所以需要在服务器上写python代码,但不论是用XShell还是MobaXterm,写代码总是不舒服的,虽然网上很多建议用vscode的,但博主还是习惯pycharm的风格,所以选择用其连接,配置过程中踩了不少坑,特此写篇blog记录下,为有相关需求的小伙伴避避坑。

2020-11-19 22:36:09 3923 3

原创 VMware+CentOS7+Oracle11g安装

VMware安装很简单在此不再多述;VMware上安装CentOS7的步骤和安装UBuntu类似,但一定要记得切勿安装静默模式下的,一定要带图形界面,否则只好重装一遍!!!主要记录下载CentOS7上安装Oracle的步骤:root模式下打开Terminal终端1.创建用户(oracle)和组(dba)groupadd dbauseradd -g dba -d /home/oracl...

2020-03-02 11:45:19 1628 3

原创 【GitHub】Personal Access Token过期导致本地仓库无法直接push到远程

自从GitHub引入access token后,clone 私人仓库到本地需要使用它否则无法push,但access token过期后,原来token clone到本地的仓库,每次push都需要输新token就很麻烦。

2022-12-01 17:40:38 1337

原创 Linux查看CPU信息

参考链接:https://cloud.tencent.com/developer/article/1495825查看cpu基本信息cat /proc/cpuinfo查看cpu逻辑个数cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c查看每个cpu的核心数cat /proc/cpuinfo |grep "cores"查看cpu使用率top...

2021-12-10 15:11:17 145

原创 统计程序运行时间

Pythonimport timestart = time.time()# tasksend = time.time()print(end-start,"s")C++ (Cuda)#include <sys/time.h> struct timeval start, end;gettimeofday( &start, NULL );# tasksgettimeofday( &end, NULL );int timeuse = 1000000 * ( en

2021-12-10 15:05:06 827

原创 Linux上传GitHub【超详细】

将Linux上程序上传到GitHub时发现网上的教程参差不其齐,浮于表面,没有对命令解析,导致使用者不理解命令,使用时极容易出错。再参考了git教程和自身实践后写下这篇博客,用于分享,让大家少走弯路,也用于备忘。

2021-04-10 17:35:44 4998

原创 兔子的逆序对---归并排序求逆序对数

这题数据范围很大,直接用暴力枚举的方法肯定是过不了,但究竟能过多少呢?菜鸡试了下,发现能过40%!!!想想看如果这题,有人用了归并排序或者树状数组,但是,但是他没用快读,也没法AC,你就简单的暴力就过了40%,想想就很美滋滋。有关归并排序的参考博客:https://ac.nowcoder.com/profile/120329317采用归并排序后的AC代码:using namespace std;#include<bits/stdc++.h>int a[100005],b..

2020-09-11 14:47:45 149

原创 华华教月月做数学---快速幂 & 快速乘 |__int128

华华你可真棒,自己要帮月月做题目,又不会写程序还想偷懒!这题属于快速幂的模板题,但与模板不同的是数据范围更大了,1e18 的数据范围如果直接×的话会爆LL。所以除了采用快速幂外,还采用了快速乘的方法,有关快速乘的说明,可以参考下面这篇博客。https://www.cnblogs.com/812-xiao-wen/p/10543023.htmlusing namespace std;#include<bits/stdc++.h>typedef long long LL;LL m

2020-09-11 14:09:23 199

原创 指纹锁---带你见识set的强大

对于100%的测试数据: 1 ≤ k,m ≤ 1000000 数据量较大,注意使用更快的输入输出方式。这题也是模拟题,难点在于如何存数据,以及数据范围较大时,如果直接查找可能会超时。还在犹豫要不要二分查找时,看到了下面的题解,我才知道set居然这么强大,确实在这里使用set非常的合适,set内置的find()函数,复杂度是**O(nlogn)**的,不用担心查找会超时。同时set是默认不同的才能插入,但这里不同的是,它定义的“不同”是在误差k内的。所有需要像sort函数中的cmp一样,单独写一个..

2020-09-10 16:22:55 1428

原创 小C的记事本---模拟 & 栈

这题属于模拟题,但有一个地方较难处理——操作4,undo(),之所以这么说是因为如果你仔细看案例的话会发现,它倒退可以连续倒退多次,而不是一次。我最开始是按照只能倒退一次来写的,那样就很easy了,单独定义string类型变量s1,用来记录每次操作前的s0;但测试案例的时候我就发现了问题,也间接暴露了自己没有好好看案例的事实。所有怎么样才能每次操作都记录下来呢?定义多个string类型的数组?也许是可以的,但是会很麻烦。栈——在这里不是很恰当嘛!每次操作都是对栈顶进行,同时每次操作完都压栈,如果遇到操.

2020-09-10 16:13:56 157

原创 大吉大利,今晚吃鸡 --- 汉诺塔的变形

这种类型的题目,与其说是编程题不如说是数学题。下面这段是我引用的其他博主写的题解:对于n个盘子,我们可以把它分成n-1n−1个盘子和最后一个大盘子。同样设F(n)F(n)为移动所需步数。将n-1n−1个盘子借助B柱移动到C柱上,这一过程移动的步数极为F(n-1)F(n−1)将大盘子由A柱移动到B柱上,此时需要一步将n-1n−1个盘子借助B柱移动到A柱上,这一过程移动的步数同样为F(n-1)F(n−1)将大盘子由B柱移动到C柱上,此时需要一步将n-1n−1个盘子借助B柱子移动到C柱上,此时.

2020-09-10 00:30:31 150

原创 栈和排序 ---被坑的好惨

快被牛客的这道题坑死了!!!按照自己的思路试了好久都不行,还因为题目里要求的最后不能有空格导致我写的极为复杂,后来发现有没有空格根本不影响啊这!!!而且牛客里面很多人写的题解看起来就不对,果不其然,一测居然一个测试点都没过。。。。。下面的代码,改了好几遍,重写了2遍,最后居然只能过一个测试点,想不通为啥啊!!!//这代码是错的,希望有大佬能指正下我,为啥他不对#include<bits/stdc++.h>using namespace std;stack<int> a;.

2020-09-10 00:24:55 217

原创 矩阵消除游戏---贪心+枚举

这题是真的超出自己能力范围了,写完数据读入后,想了一会竟无从下手,不知道该怎么写。看题解的过程中也很迷,觉得很麻烦,贪心的思想却又加上了枚举(这点可以从题目给的数据范围看出,居然只是一个15*15的矩阵)。思路:先读入数据,然后将每一行的总和记录下来;利用二进制位运算,用二进制串来表示这一行是否被选中,从0到2^n-1进行枚举,将所有行可能被选中的情况全部枚举一遍;对于每次枚举,将相应列的和算出来,因为选中行后,该行内的元素会变成0,所以算列和的时候就不能算进去;将列和排序,从大到小选择剩..

2020-09-06 00:21:35 134

原创 「土」巨石滚滚--贪心

看完题目,应该马上能想到的是先撞比自己小的,撞回馈多的,但具体该如何写呢?可能需要分析下才行。首先在读入的时候,就可以先算出差值v=b-a;然后我们想如果差值都是正的,那么我们肯定是先撞它,因为越撞越多嘛,那都是正的的情况下,先撞谁呢?肯定是先撞损失小的,这样就能尽量使自身变大,从而撞更多的;其次,那如果差值都是负的,我们肯定是先撞回馈多的,这样能让自身损失尽可能靠后;最后,如果差值正负不同,这也是最简单的,按照最开始的思路,必然是 先撞正的再撞负的。按照上面的顺序排好队再依次遍历,一个一个撞就.

2020-09-06 00:03:37 184

原创 切长条--如何去贪心

using namespace std;#include<bits/stdc++.h>struct node{ int s,e,l;}a[32000];int n;bool cmp(node a,node b){ return a.s<b.s;}int main(){ cin>>n; for(int i=0;i<n;i++) { cin>>a[i].s>>a[i].l; .

2020-09-05 00:09:47 99

原创 值周 & 校门外的树

从暴力到差分/前缀和到离散化暴力这题因为数据规划只有1e5 和 100, 所以直接暴力遍历就可以解决.//暴力方法using namespace std;#include<bits/stdc++.h>int tree[10005];int main(){ int l,m; cin>>l>>m; int left,right; for(int i=0;i<=l;i++) tree[i]=1; for(int i

2020-09-04 22:51:04 134

原创 激光炸弹--前缀和->二维前缀和

这题拿到手后,一直在纠结[5000][5000]的二维数组能不能开,后来算了下500050004=1e8B=100MB<512MB,所以是可以的。但还是不知道该怎么做,一点思路都没有╮(╯▽╰)╭没办法只能看题解,采用前缀和的思想,考虑二维前缀和来求解。参考这张图来理解下面的Code:using namespace std;#include<bits/stdc++.h>int mp[5005][5005];int main(){ int n,r; cin&.

2020-09-03 17:45:23 172

原创 拼数--贪心

这道题如果是自己第一次做,咋一看会觉得只要按序排即可,数字大的排前面数字小的排后面,直接用字典序就行。但是,但是,但是,这样会出错:比如,3,31,34;应该是34331,而不是34313,这就出问题了呀。那怎么办,继续比较第二位?这样做会很复杂,题目可以继续恶心点,331,34,335,3;应该是335343331,而不是335343313.所以继续比较下一位这种方法不大可行,有没有什么更好的方法呢?有!只要a+b>b+a,那么a不就在b前面了嘛,所以就很easy了。using names.

2020-09-02 20:33:36 122

原创 纪念品分组--双指针&贪心

今天做题感觉好啊,第一题就秒杀,哈哈哈题解:首先将纪念品按价格从小到大排序,然后用2个指针i,j分别指向头和尾,直到i>j时才退出。因为题目说了每组最多只能有2个纪念品,且纪念品价格之和不能超过w,那么如果当前状态下的a[i] + a[j] > w,那么a[j]只能独自成为一组了,因为此时的i只要向后移动,就一定是非递减的。using namespace std;#include<bits/stdc++.h>int main(){ int w,n; int.

2020-09-02 20:09:32 112

原创 铺地毯---思维题hhh

看到数据规模后就知道,暴力肯定是不行了,想了一会也没想到什么好的方法,看了一眼题解,思维题,从后向前遍历就好了hhhh然后就非常easy的完成了这道题using namespace std;#include<bits/stdc++.h>const int maxn=1e5+5;int a[maxn],b[maxn],g[maxn],k[maxn];int main(){ int n; cin>>n; for(int i=1;i<=n;i+.

2020-09-01 16:06:59 121

原创 糖糖别胡说,我真的不是签到题目---是的,你不是

这道题最开始写的时候是按照题意,一步一步,从前向后分析的,但是写出来的代码能过案例,测试后却是0分,很难受,到现在也没想明白为啥,就算超时啥的也不应该0分呀,所以贴在下面,希望有善良的大佬能帮忙瞧瞧。//Wrong Wayusing namespace std;#include<bits/stdc++.h>struct node{ int group; int sk; bool alive;};node a[50005];int c[1000000];.

2020-09-01 15:45:39 186

原创 CCF202006-2 稀疏向量

1,这题看完数据规模 1e6*1e6 就应该知道两次循环是会超时的 但还是不死心试了一次,最后运行超时 30分;2,第二次换成双指针了,复杂度降到了一阶,但还是超时了,最后70分,想了想应该没法继续改进算法降低复杂度了,所以估计是输入输出的问题;3,把cin cout 换成scanf printf后,又试了一次,结果居然错误60分了,好在没超时,方向对了;4,仔细检查发现是long long类型输出时没用lld,果然是一个多月没做题,手生的啊。using namespace std;#inclu.

2020-08-27 20:19:07 309 1

原创 CCF202006-1线性分类器

太久没做题,手好生呀实在不明白CCF为啥要把题目做成这种影印版的PDF,没法复制测试案例,还看不清楚就问下这个 直接看难道不是1e8???using namespace std;#include<bits/stdc++.h>const int maxn=1e3;int x[maxn],y[maxn],z[maxn];char tp[maxn];int main(){ int n,m; cin>>n>>m; for(int i=0;i<n;i

2020-08-27 20:12:43 213

原创 PAT B1088 三人行-数据类型坑死

这道题本身不难,但有一个很容易被坑的地方:丙的值未必是整数!!!丙的值未必是整数!!!丙的值未必是整数!!!还有一个tips:输出时行首位不得有多余空格,这话可能会没注意到导致大部分的格式错误,不过这个很容易发现,上面那个不是整数要用浮点是真的坑。using namespace std;#include<bits/stdc++.h>void cmp(double t,int m){ if(t>m) cout<<"Cong"; else if(t == m).

2020-07-25 21:25:32 171

原创 函数getline(cin,str)使用时易错点

今天做题时,无意间发现一个在使用getline(cin,str)读入字符串时的易错点。因为getline(cin,str)在读取字符串时是可以读入空格的,所以在部分题目输入的情况下,这种输入方式比cin和scanf要更加方便。但非常要注意的是,如果开始输入的时候是数字,且使用cin读入时,空格是不会被读进来的,所以在后面循环读入时,getline(cin,str)会讲数字后的空格先读进来作为a[0],这也就导致了以n为界读取时,总是会少读取最后一行字符串。这时就可以使用getchar()函数来读取第.

2020-07-20 21:17:48 995

原创 PAT-B1065 单身狗

https://www.liuchuo.net/archives/2740using namespace std;#include<bits/stdc++.h>const int maxn=1e5;int a[maxn],id[10000];bool flag[maxn]={0};int main(){ for(int i=0;i<maxn;i++) a[i]=-1; int n,m,tmp1,tmp2; cin>>n; for(int i=0;i&..

2020-07-19 21:17:30 130

原创 简单并查集-加边的无向图

并查集小白入门并查集最常用的两个函数就是find() 和 merge();代码如下所示:这里最后统计边数时,可以用set来记录(依次遍历,将每个点的父节点加入集合,因为set默认去重,所以相等的父节点自动过滤掉);也可以直接根据f[i] == i 来判断,因为合并完所有的节点后,每个并查集内只有一个点满足f[i] == i 。ps:会用并查集这题真的是秒出答案啊!using namespace std;#include<bits/stdc++.h>const int maxn=.

2020-06-02 22:09:41 196

原创 FBI树--字符二叉树

小记花了好长时间,这道题主要是考二叉树的后序遍历,是个模板,但是不同于一般的根据数组插入数字构造二叉树,本题中的二叉树结点数据是字符,并且是根据字符串算出来了。postOrder() 函数就是原版的后序遍历函数不需要修改的,不同的是newNode() 需要稍加修改,通过调用函数tp()来计算当前节点的data;最开始tp函数写错了以至于虽然能得到序列但序列的值不对。create() 函数修改比较大,直接递归调用create()进行二叉树的构造,递归掌握的还是不太好,花了好一阵功夫才写好create(.

2020-05-20 15:22:24 386

原创 逆序数-O(nlogn)

方法1:数(O(n^2))只能过3/4的测试点using namespace std;#include<bits/stdc++.h>const int maxn=1e5+5;int a[maxn];int main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); long long sum=0; for(int i=0;i<n-1.

2020-05-20 09:32:48 276

原创 数学考试--前缀和

//出错代码,只过了2/3的案例using namespace std;#include<bits/stdc++.h>const int maxn=200005;int a[maxn],sum[maxn];int main(){ int t,n,k; cin>>t; while(t--) { cin>>n>>k; memset(a,0,sizeof(a)); mems.

2020-05-17 23:02:11 180

原创 Selfish Grazing --贪心要得当

题目是英文的也有点长,英语不好的人看着都烦,大意就是给出n个线段,让你在n个线段里面选出尽可能多的不相交的线段。这道题适合用贪心去做,只需要按右边界排序即可。但在排序后需要遍历选择的时候我开始犯了个错,我每次都是用当前结点 i 的左边和 i-1 的右边进行比较,如果i的左边大于 i-1 的右边 ,那么结点i可以选,sum++。但这就有问题了,比如 [7,8] , [7,10] , [9,10] 三个线段,[7,10] 和[9,10]两个的先后顺序按照右边界来排序的话是未知的,若[7,10]在前,则[..

2020-05-16 23:24:26 194

原创 奇♂妙拆分-真莫名的过了

牛客网的这道题真的过得有点莫名其妙了。。。。开始以为1e9的数量级会超时,没想到直接AC了,“真” 奇妙!小记一下,思路就是遍历,从2开始,直到 i<=n 遍历结束,如果n能够除尽i则n/=i,同时sum++;这里如果参考案例1中的4会发现4=1*4(因为题目要求不同数字),而程序里面实际上是将4/2了,但其实不影响结果,因为4/2=2后i=3,依旧无法继续下去,所以最后得到的sum值是不变的。using namespace std;#include<bits/stdc++.h>.

2020-05-16 23:08:29 232

原创 看似简单的题目往往就有坑——B1051 复数乘法

这道题可以说是真的简单了,就是两个乘加式子的问题,最后再输出控制下就行。但case 2 and 3还真不是那么容易过的。关键就在double类型和三角函数的精度问题,如下代码所示,a and b 输出时需要分别控制在-0.005-0 的范围内均视为0.00输出才能过case 2 and 3.参考博客https://blog.csdn.net/baidu_32157201/article/details/51055711经测试,本题是可以分开求a1,b1,a2,b2的,也是能够AC的。using.

2020-05-12 20:14:45 113

原创 填充二叉查找树(BST)型 中序+层序遍历

//1064using namespace std;#include<bits/stdc++.h>const int maxn=1005;int n,in[maxn],num=0,tree[maxn];void inOrder(int root){ if(root > n) return ; inOrder(2*root); tree[root]=in[num++]; inOrder(2*root+1);}int main(){ cin>>n;..

2020-05-11 23:02:01 291

原创 PAT A1010 Radix 膜!算法笔记题解

这道题是有点坑的,题意表述上没有明确,radix的值并不在(0,36)之间,所以暴力遍历是行不通的。反正也不会o(╥﹏╥)o看了下算法笔记关于这道题的题解,根据题解中所述,假定已知的radix都是N1的(若不是则交换),则转换为10进制后N1不会超过long long 的范围,故仅需对N2转换的时候进行判断其是否溢出。下面是算法笔记的源代码:using namespace std;#i...

2020-05-02 21:02:20 249

原创 输入输出——sscanf & sprintf

scanf和printf相当于以特定格式从屏幕输入输出;而sscanf和sprintf则是将屏幕换成了字符数组。以PAT B1054 求平均值为例说明:本题意思很简单,但在判断输入数据是否合法中是否最多精确到小数点后2位的判断直接写循环遍历输入的数据并不方便,此时如果会使用sscanf和sprintf的话就会简单很多。如下所示:先定义字符数组a记录输入的数据,再通过函数sscanf将其...

2020-04-25 17:16:15 244

原创 游园会盖章-第二届“传智杯”全国大学生IT技能大赛(决赛)

https://www.zhihu.com/question/388180965/answer/1163540927这次初赛只AC了一题,没想到进了决赛,决赛的题目真的挺难的,后三题基本都设计一些算法方面的东西,所以果断放弃了。第二题一时间没有想到思路写了一会也放弃了,故这次总的来说只做了第一题,幸而第一题在第二次提交的时候就AC了,较上次初赛好了不少。这道题初看觉得很麻烦,全是字符串...

2020-04-20 19:42:56 493

原创 从 A1091 Acute Stroke 中看BFS

这道题是由一道基本的二维图中求“1”的块数转化来的,不同于原题是二维,四方向;这道题中将图(即矩阵)扩展为三维,六方向,然后求相连的“1”的块数,同时,题目中要求只有该块内1的数目大于等于T才能算作有效块。Attention:1.题目最后要求的不是块数,而是有效块内的1的数目。2.BFS中记录数组inq记录的是当前位置是否入队而非是否已经访问过,区别在于若仅是是否访问过可能会造成该位置已在...

2020-04-17 19:26:03 87

原创 从 A1103 Integer Factorization 中看DFS

此题解法参考《算法笔记》题意解读:输入N,K,P,要求找到K个数(可以相同)的P次方的和等于N,若能找到按要求输出,找不到则输出“Impossible”。分析:因为要求的都是数的P次方,不妨先将不大于N的数的P次方先按序求出来,用一个vector存放,然后再进行DFS,从大到小找(因为题目中要求从大到小输出且多种情况时找所有数字加起来和最大的那个,所以从大到小找可以很方便的解决这个问...

2020-04-17 19:01:53 92

原创 第二届“传智杯”全国大学生IT技能大赛(初赛)赛后总结

本次赛后总结写的很及时O(∩_∩)O哈哈~P6363 软件工程实习这道题想必很多同学都别坑了,我试错了5次才AC,挺简单的一道题,没有什么复杂的算法,就很基本的按照题意一步一步走就行,但是坑却不少,首先是数据类型的选择,其次的四舍五入,第一次算均值是不需要四舍五入的,第二次才需要;四舍五入可以直接用round()函数。这些做到后还是不行的,因为最后求总分的时候需要四舍五入,所以记录分数的类型...

2020-04-12 14:44:48 4184 10

空空如也

空空如也

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

TA关注的人

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