- 博客(36)
- 收藏
- 关注
原创 git仓库大文件检测处理
获取前五的大文件列表(blob id)git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -5获取对应的文件名git rev-list --objects --all | grep <blob id>删除文件git filter-branch --index-filter 'git rm --cached --ignore-unmatch <your-file-name>'rm -
2022-04-18 00:59:49
383
原创 《程序开发心理学》笔记
最近阅读了温伯格的《程序开发心理学》一书,非常有趣,作者试图用学术的方法去研究影响程序开发的因素,在这个过程中也提出了一些自己对程序开发的看法。书中对如何提高程序员团队的开发效率给出了作者自己的意见,特别强调了培训对程序开发的重要性。可能是因为英文文本中的专业表述比较多?翻译版充斥着长难句,阅读体验很差。程序开发心理学第一篇 作为人类行为的程序开发第一章 阅读程序第二章 优秀程序的要素技术规范日程计划适应性Fisher基本定理:一个系统对某一特定环境的适应性越强,它适应新环境的能力也就越弱。
2021-11-24 01:04:21
457
原创 使用K8s调度Nvidia GPU
在Kubernetes配置与集群监控的搭建和Docker常用命令中,我们介绍了如何安装Docker以及Kubernetes。对于集群而言,本文将更进一步地介绍如何使用Docker+K8s进行集群的GPU管理。安装Nvidia驱动Nvidia的驱动可以在官网下载。注意自己的系统内核以及显卡型号。安装完成后,在命令行使用nvidia-smi命令来查看显卡列表以及相关信息。如果成功安装,将会看到如下的结果。~$ nvidia-smiSat Nov 13 22:21:26 2021 +--
2021-11-13 22:48:42
3821
原创 Kubernetes配置与集群监控的搭建
K8S安装Dockerdocker的安装流程可以参考官方文档https://docs.docker.com/install/linux/docker-ce/ubuntu/查看架构
2021-11-09 01:43:48
1006
原创 Docker常用命令
在平时开发的过程中,docker可以用来方便地获取一个纯净的开发/部署环境,本文介绍了docker的安装方法、最常用的几个命令以及在使用过程中定位问题的方式。安装docker使用阿里云源sudo apt-get updatesudo apt-get -y install apt-transport-https ca-certificates curl software-properties-commoncurl -fsSL http://mirrors.aliyun.com/docker-ce/l
2021-11-08 01:26:47
448
原创 最小费用最大流(附C语言实现)
#include//最小费用最大流 #includeusing namespace std;const int N=100;int map[2*N+2][2*N+2];//0为源点 1-n老师 n+1-2n类型 2N+1为汇点 保留的是边的权值(费用) int flow[2*N+2][2*N+2];//流量int path[2*N+2];//记录节点i在此次增广中的前驱
2011-10-25 19:13:22
377
原创 匈牙利算法(附C语言实现)
问题简介 设G=(V,E)是一个无向图。如顶点集V可分割为两个互不相交的子集V1,V2之并,并且图中每条边依附的两个顶点都分属于这两个不同的子集。则称图G为二分图。二分图也可记为G=(V1,V2,E)。 给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附于同一个顶点,则称M是一个匹配。 选择这样的子集中边数最大的子集称为图的最大匹配问题(maxim
2011-10-23 08:43:05
4145
原创 外星人的密码数字(附C语言实现)
描述 Description XXXX年突然有外星人造访,但大家语言不通,不过科学家们经过研究发现外星人用26个英文字母组成的单词中最长不降子序列的长度来表述数字,且英文字母的排列顺序不同,现给出其排列顺序,再给出外星人说的每个数字(其实是每个英文单词,用空格隔开),翻译出外星人所说的数字(连续输出,最后加回车)。(因为是最长不降子序列,所以数字中没有0,也就是说外星人的数字是>=1的数字)例如 我们正常的字母排列顺序是abcdefg…….xyz,代表a abcd efg hhh ihg四
2010-11-14 10:31:00
1911
原创 美元(附C语言实现)
题目来源:http://www.tyvj.cn:8080/Problem_Show.asp?id=1095描述 Description 在以后的若干天里戴维将学习美元与德国马克的汇率。编写程序帮助戴维何时应买或卖马克或美元,使他从100美元开始,最后能获得最高可能的价值。输入格式 Input Format 输入文件的第一行是一个自然数N,1≤N≤100,表示戴维学习汇率的天数。接下来的N行中每行是一个自然数A,1≤A≤1000。第i+1行的A表示预先知道的第i+1天的平均汇率,在这一天中,戴维既
2010-11-13 23:59:00
2751
原创 数字三角形题解(附C语言实现)
<br />题目来源:http://www.tyvj.cn:8080/Problem_Show.asp?id=1044<br /><br /><br />背景 Background09年 USACO 11月月赛 铜牌第一道描述 Description示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路<br />径,使该路径所经过的数字的总和最大。<br /> 每一步可沿左斜线向下或右斜线向下走;<br /> 1<三角形行数<25;<br /> 三角形中的数字为整
2010-11-13 23:43:00
1038
原创 一笔画(欧拉回路)(附C语言实现)
<br />#include<fstream>using namespace std;ifstream fin("Problem.in");ofstream fout("Problem.out");const int N=501;int d[N];int map[N][N];int res[1000001];int k=0;int l=0;int n;void go(int v){ for (int i=1;i<=l;i++) {
2010-10-27 21:46:00
1056
原创 银河英雄传说(并查集)(附C语言实现)
<br />并查集不解释……<br />code:<br />#include<stdio.h>#include<memory.h>#include<math.h>int T;int *father;int *children;int find_father(int x){ while(father[x]!=-1)x=father[x]; return x;}//找到根节点 int find_children(int x){ while
2010-10-27 21:44:00
1722
1
原创 std::qsort使用样例
<br />对一个int型的长度为n(由自己输入)的数组进行从小到大的排序<br />#include<iostream>#include<stdlib.h>using namespace std;int *num;int cmp(const void *a,const void *b){ return *((int *)b)-*((int*)a);//前减后从小到大 后减前从大到小}int main(){ int n; cin>>n;
2010-10-19 14:56:00
2446
原创 数列(附C语言实现)
<br /><br />数列<br />(sequence.pas/c/cpp)<br />【问题描述】<br />给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:<br />1,3,4,9,10,12,13,…<br />(该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,…)<br />请你求出这个序列的第N项的值(用10进制数表示)。<br />例如,对于k=3,N=100,正确
2010-10-13 12:22:00
5047
原创 邻接表存储图的SPFA的C实现
<br />边类:<br />struct ArcNode{ ArcNode *nextarc; int a,b; int weight;}*E;//边集<br />点类:<br />struct node{ ArcNode *firstarc;}*V;//点集<br />Code:#include<iostream>using namespace std;const int oo=32767;struct ArcNode{
2010-10-13 12:06:00
858
原创 最短路径之SPFA算法的C实现
<br />写得很傻……<br />队列优化的BellmanFord算法<br />空间浪费很大,没用邻接表存储,写得很丑,将就着看吧<br />Code:<br />#include<iostream>#include<string>using namespace std;const int oo=2500;//最大的路径值const int Max_Node=2501;//最大边的条数 int n,m;//n点 m边int *D;int *queue;int begin;
2010-10-11 21:47:00
527
原创 最短路径之BellmanFord算法的C实现
<br />Code:<br /><br />#include<iostream>using namespace std;const int oo=1000000;int n,m;//n为点的个数 m为边的条数int begin,end;//begin为起始点 end为结束点struct bian{ int a,b; int w;}*E;int *D;int Ford(){ int i,j; for (i=1;i<
2010-10-06 20:46:00
632
原创 沙子合并题解(附C语言实现)
以长度划分阶段……CODE:#includeusing namespace std;int *a;int **he;int n;int **ans;int work(){ int l; int i,j,k; for (k=2;k
2010-10-03 19:59:00
1545
原创 高精度乘法(不压位)(附C语言实现)
<br />高精度乘法<br />主要语句:<br />ans[x+y]+=num1[x]*num2[y];ans[x+y+1]+=ans[x+y]/10;ans[x+y]%=10;<br />没有压位,压位预处理比较麻烦,完成后上传~<br />不压位code:<br />#include<iostream>#include<string>using namespace std;string s1,s2;int l1,l2;int *num1,*num2,*ans;int
2010-10-02 23:52:00
700
原创 最小生成树之Kruskal算法(附C语言实现)
<br />思路:贪心算法 快速排序->并查集<br />输入格式:n m(n为点的个数,m为边的条数)<br /> 然后m行,每行三个数字a,b,c<br /> a为边的权值,b和c为边的两个顶点<br />输出格式:一共n-1行,表示最小生成树的边<br /> 每行三个数字a,b,c<br /> a为边的权值,b和c为边的两个顶点<br />时间复杂度O(eloge)<br />//最小生成树 无向图 #include<iostre
2010-08-11 22:05:00
814
3
原创 最长不下降子序列(附C语言实现)
#include#includeusing namespace std;int main(){ string s1,s2; cin>>s1>>s2; int i,j; int **ans=new int*[s1.size()+1]; for (i=0;i
2010-06-21 15:35:00
689
原创 C语言动态定义数组
<br />动态定义一维数组:<br />int *p=new int[n]//定义一个长度为n的一维int型数组<br />动态定义二维数组<br />int **p=new int*[n];for (i=1;i<=n;i++){p[i]=new int[m];}//定义一个int型的n*m的数组
2010-06-21 15:33:00
581
原创 滑雪(附C语言实现)
题目:描述 Description trs喜欢滑雪。他来到了一个滑雪场,这个滑雪场是一个矩形,为了简便,我们用r行c列的矩阵来表示每块地形。为了得到更快的速度,滑行的路线必须向下倾斜。 例如样例中的那个矩形,可以从某个点滑向上下左右四个相邻的点之一。例如24-17-16-1,其实25-24-23…3-2-1更长,事实上这是最长的一条。输入格式 Input Format 输入文件第1行: 两个数字r,c(1第2..r+1行:每行c个数,表示这个矩阵。 输出格式 Output Fo
2010-06-21 15:25:00
1917
原创 加等式(动态规划)(附C语言实现)
问题描述:对于一个整数集合,我们定义“加等式”如下:集合中的某一个元素可以表示成集合内其他元素之和。如集合{1,2,3}中就有一个加等式:3=1+2,而且3=1+2和3=2+1是相同的加等式,也是这个集合唯一的加等式。给定一个整数集合,编程找出其所有的加等式的个数输入格式:第一行为t,表示测试数据组数。(1≤t≤10);接下来t行,每行表示一组测试数据。其中第一个数为m(1≤m≤30),表示集合
2009-11-19 05:42:00
885
1
原创 矩形分割(动态规划)(附C语言实现)
矩形分割(cut)Description出于某些方面的需求,我们要把一块N×M的木板切成一个个1×1的小方块。对于一块木板,我们只能从某条横线或者某条竖线(要在方格线上),而且这木板是不均匀的,从不同的线切割下去要花不同的代价。而且,对于一块木板,切割一次以后就被分割成两块,而且不能把这两块木板拼在一起然后一刀切成四块,只能两块分别再进行一次切割。现在,给出从不同的线切割所要花的代价,求把整块木
2009-11-14 13:08:00
8684
原创 KMP算法(附C语言实现)
#include#include#includevoid getnext(int next[],char s[],int l){ int i=1,j=0; next[1]=0; while(i<l) { if(j==0 || s[i]==s[j]) {
2009-11-13 20:01:00
678
原创 开心的金明(附C语言实现)
描述 Description 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N 元。于是,他把每件物品规定了一个重要度,分为5 等:用整数1~5 表
2009-11-07 22:38:00
875
原创 最长公共子序列(附C语言实现)
最长公共子序列 最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Substring)。其定义是,一个数列 S ,如果分别是两个或多个已知数列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。 动态规划的一个计算最长公共子序列的方法如下: 以两个序列 X、Y 为例子: 设有二维数组 f[i,j] 表示 X 的
2009-10-26 21:07:00
1221
1
原创 堆排序(附C语言实现)
定义 n个关键字序列Kl,K2,…,Kn称为(Heap),当且仅当该序列满足如下性质(简称为堆性质): (1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ n) 若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字
2009-10-22 22:33:00
1878
原创 希尔排序(附C语言实现)
希尔排序是一种插入排序法,它出自D.L.Shell,因此而得名。Shell排序又称作缩小增量排序。 基本思想: 不断把待排序的对象分成若干个小组,对同一小组内的对象采用直接插入法排序,当完成了所有对象都分在一个组内的排序后,排序过程结束。每次比较指定间距的两个数据项,若左边的值小于右边的值,则交换它们的位置。间距d按给定公式减少: di+1 =(di +1)/2 ,直到d等
2009-10-15 22:43:00
7873
原创 棋盘覆盖问题(附C语言实现)
(棋盘覆盖问题)在一个2k × 2k 个方格组成的棋盘中恰有一个方格与其他方格不同(图中标记为-1 的方格),称之为特殊方格。现用L 型(占3 个小格)纸片覆盖棋盘上除特殊方格的所有部分,各纸片不得重叠,于是,用到的纸片数恰好是(4k −1) / 3 。在下表给出的一个覆盖方案中,k=2,相同的3个数字构成一个纸片。#include using namespace std;int bo
2009-10-11 22:27:00
7856
原创 二分搜索法(附C语言实现)
二分搜索法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。它的基本思想是,将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。如果xa[n/2],则我们只要在数组a的右半部继续搜索x。二分搜索法的应用极其广泛,而且它的思想易于理解,但是要写一个正确的二分搜索算法也不是一件简单的事。第一个二分搜索算
2009-10-08 21:09:00
2295
原创 最短路径之Floyd算法(附C语言实现)
定义 Floyd算法又称为弗洛伊德算法,插点法,是一种用于寻找给定的加权图中顶点间最短路径的算法。核心思路 通过一个图的权值矩阵求出它的每两点间的最短路径矩阵。 从图的带权邻接矩阵A=[a(i,j)] n×n开始,递归地进行n次更新,即由矩阵D(0)=A,按一个公式,构造出矩阵D(1);又用同样地公式由D(1)构造出D(2);……;最后又用同样的公式由D(n-1)构造出矩阵D(n)。矩阵D
2009-10-07 18:04:00
7512
原创 快速排序(附C语言实现)
基本思想 快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。算法过程 设要排序的数组是A[0]……A[N-1],首先任意选取一
2009-10-07 17:51:00
468
原创 链表(附C语言实现)
链表 是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比较顺序结构,链表比较方便插入和删除操作。 线性表的链式存储表示的特点是用一组任意的存储单元存储线性表的数据元素(这
2009-10-07 17:23:00
1150
1
原创 Gangs(附C语言实现)
一道比较好的并查集题目:GangsGangs(1027)Time Limit:1000MS Memory Limit:65536KDescription 1920年的芝加哥,出现了一群强盗。如果两个强盗遇上了,那么他们要么是朋友,要么是敌人。 而且有一点是肯定的,就是A的朋友的朋友是A的朋友;A的敌人的敌人也是A的朋友。 两个强盗是同一伙的当且仅当他们是朋友。现在给你一些关于强盗们
2009-10-07 17:16:00
5871
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人