自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Hadoop的SequenceFile使用(学校实验)

感觉最后这个实验还是有点难度的,前前后后花了整整一个下午的时间,只给出实验思路和关键代码,仅供学习参考,千万不要直接抄袭啊。。。实验题目本实验要求学生通过SequenceFile实现对多个小文件的封装。要求如下:使用随机数生成以(整数,字符串)为(key,Value)的文本文件,文件的大小内容任意,文件数量不少于100个;如果需要,可以选择以下代码生成随机文件。使用SequenceFile对以上文件进行封装,生成一个独立文件,压缩格式任意;实现以下的三种方式的查询:给出文件名,可以

2022-05-22 19:21:37 617

原创 程序设计与分析——贪心算法实验

仅供参考【题目大意】第 1 题 背包问题:已知一个载重为 M 的背包和 n 件物品,第 i 件物品的重量为 wi,如果将第 i 件物品全部装入背包,将有收益 pi,这里,wi>0,pi>0,0 i<n。所谓背包问题是指求一种最佳装载方案,使得收益最大。输入:第一行物品个数 n 和背包载重 M,以下 n 行输入物品编号 i,物品收益 pi,物品重量 wi。输出: x1,x2,…,xn,… xi ,i<n,每个 xi 是第 i 件物品装入背包中的部分(小数位保留二位)。【

2022-05-21 15:41:52 661

原创 LeetCode第 293 场周赛 题解

移除字母异位词后的结果数组思路分析先给每个字符串排序,然后如果当前的字符串和前一个字符串不相等,那么这个就放到最后的答案里面。代码class Solution {public: vector<string> removeAnagrams(vector<string>& words) { vector<string> ans; int n=words.size(); string now="";

2022-05-16 23:32:15 172

原创 Codeforces Round #791 (Div. 2)题解

A题 A. AvtoBus题意分析有n个轮子,分别是4轮车和6轮车上的,问最少和最多有多少辆车?如果不合法,输出-1思路分析奇数的情况肯定是不合法的,输出-1.然后,我们需要知道4x+6y=n4x+6y=n4x+6y=n,我们需要想办法最大化和最小化x+y。分情况讨论。最小化的时候,肯定是优先满足六轮车,num1=n6num1=\frac{n}{6}num1=6n​,剩下m=n−6num1m=n-6num1m=n−6num1,那么此时四轮车m4\frac{m}{4}4m​辆,为如果m除以

2022-05-16 22:10:15 762

原创 Redis主从复制总结

今天,自己动手花了几个小时在本地和远程配置了一个Redis主从复制,感觉蛮有意思的,所以分享一波。知识介绍首先,我们需要知道什么是主从复制?redis的主从复制就是我们设置一个master服务器,然后设置多个slave从服务器,主服务器存储着最新的数据,每次主服务器的数据出现变化的时候,都会将对应的命令传输到各个slave服务器,这样,我们就可以实现主服务器和从服务器的数据的同步了。为什么需要?在企业的开发中,主从复制可以避免单机故障导致的数据和服务的丢失,保障了数据安全和服务的稳定运行。.

2022-05-15 23:17:19 182

原创 非递归实现有序数组构建BST

前置知识BST,就是我们平时说的平衡二叉树。这种树的性质是对于节点root,root左边的所有的子节点的权值都小于这个root的权值,root右边所有子树的权值都大于root的权值。BST构建的两种方法递归实现这种实现方法一般比较方便,思维含量也相对较低。就是根据树的可递归的性质,我们对树进行递归构建,从根开始向叶子结点进行构建,我们利用二分的方法进行处理,当前边界二分之后的终点的权值就是我们当前这个结点的权值了。代码如下/** * struct TreeNode { * .

2022-05-15 23:11:42 209

原创 2020江西省大学生程序设计竞赛题解

A Simple Math Problem这个是一个数论题目,我们先将题目要求的式子进行转化∑i=1n∑j=1i[gcd(i,j)==1]f[j]=∑i=1n∑j=1nf[i][gcd(i,j)=1]−∑i=1n∑j=1if[i][gcd(i,j)=1]+f(1)\sum_{i=1}^n\sum_{j=1}^i[gcd(i,j)==1]f[j] \\=\sum_{i=1}^n\sum_{j=1}^nf[i][gcd(i,j)=1]-\sum_{i=1}^n\sum_{j=1}^if[i][gcd

2021-10-22 14:12:05 872 2

原创 2019CCPC哈尔滨站题解

J. Justifying the Conjecture题目意思我们需要将一个合数转化为一个素书和一个合数相加的结果。思路分析我们很容易判断如果这个数字x是奇数,那么我们可以和3和x-3组合在一起。因为x-3一定是一个偶数,但是这里要排除x-3=2的情况,所以我们先对0-5的情况进行特判就行了。然后如果x为偶数,那么拆分成2和x-2的形式,因为这里x-2一定是一个偶数,偶数除了2都是合数。代码如下#include<bits/stdc++.h> using name

2021-09-17 10:52:19 555

原创 Codeforces Global Round 16题解A-E

A. Median Maximization题意:给出一个数组的大小,和这个数组的和,我们需要构造一个数组,使得我们最后得到的数组排序之后的上中位数尽可能大,要求这个数组的数字都要大于等于0.贪心+构造。显然,由于我们数组的总值是固定的,所以为了使中位数尽可能大,我们需要想办法尽可能将有限的数字分的份数更少。怎么分呢?就是中位数的位置前的都分0,其他就平均分,中位数向下取整就行了。最后的答案就是⌊s/(n−⌈n2⌉+1)⌋\lfloor s/(n-\lceil \frac{n}{2} \rceil +

2021-09-13 18:03:21 241

原创 2019ICPC-银川站补题

下下周就要打icpc银川站了,今天和队友一起做了一套2019年的银川站的原题,感觉收获很多,也发现了很多问题。趁有时间补下题吧,也算是给自己积点幸运值。希望接下来的icpc银川站可以取得自己满意的成绩。菜鸡只希望拿个铜牌就行了。QAQ。N. Fibonacci Sequence签到题,直接输出非波纳西数列的前5项就行了,拼手速的话直接用python就行了。print('1 1 2 3 5')B. So Easy给一个n行n列的矩阵,初始时全部都是0,可以对某一行整行或者某一列的整列进行同时加上某

2021-05-01 22:48:03 882 1

原创 埃氏筛和线性筛的比较

这段时间在洛谷上面写题目的时候,发现对于莫比乌斯反演这种题目,以及一些其他的求素数的题目,假如要进行筛素数的时候,用埃氏筛一般都会被T,所以我想对这两种算法进行一个性能的对比。首先,我们来看到埃氏筛,先给出代码://筛出1-n之间的素数bool vis[1e7]={false}; //初始化全为falsevoid Eratosthenes(int n){ for(int i=2;i<=n;i++){ if(vis[i]==false){ //发现这个是素数

2021-04-20 09:27:05 543 2

原创 第十二届蓝桥杯参赛感想

写在前面,这次蓝桥杯基本没有准备,原因是参加我们学校家园工作室举办的hackweek,即时是考前半个小时还在部署自己写好的项目,反正就是那种书都不看的情况。本次蓝桥杯说实话,感觉这次的省赛的难度比以往大了很多,以往的题目大部分都是靠模拟出来的,会搜索基本就能拿省一,但是这次的感觉会搜索只能签到,会DP应该勉强才能省一。首先,本人参加的是CA组,先来说一下我的做题情况,第一题应该没啥问题,直接for循环模拟过去,知道遇到第一个不满足的情况即可。第二题,我是先暴力枚举任意两个点的坐标,然后记录他们的斜率和精

2021-04-20 08:36:22 463

原创 Codeforces Round #713 (Div. 3)题解 F,G题

G. Short Task题意:给出一个数字c,让你求最小的N,使得∑d∣N=c\sum_{d|N}=c∑d∣N​=c.思路:首先,我们需要知道一个算术基本定理。N=p1c1p2c2p3c3..pkckN={p_1}^{c_1}{p_2}^{c_2}{p_3}^{c_3}..{p_k}^{c_k}N=p1​c1​p2​c2​p3​c3​..pk​ck​∑d∣N=(1+p1+p12+...+p1c1)(1+p2+p22+...+p2c2)...(1+pk+pk2+...+pkck)\sum_{d|

2021-04-11 18:51:08 192

原创 Educational Codeforces Round 106 (Rated for Div. 2) C. Minimum Grid Path

题意:在一个二维坐标系中,我们从(0,0)到(n,n),中途最多可以转弯n-1次,当然可以转更少次的弯,每次转弯都有一个消耗值。问到达(n,n)消耗值最小是多少?思路:首先,我们发现,奇数和偶数可以单独分开来,他们之间是不影响的。我们很容易就能想到我们可以枚举到达终点的转弯的位置。然后注意,这之后的都没有必要考虑了。(这是一个坑点),对于前面的,我们可以预处理出每个方向的每个位置之前出现数字的最小值。同时计算一下每次转弯的前缀和。之前的步数我们只要走一步就行了。然后剩余的步数都是由每个方向的最小值的走完

2021-04-11 12:53:46 74

原创 P1450 [HAOI2008]硬币购物

题意:给出四种硬币的面值,然后给出四种银币的数量,最后给出一个总的金额s。让我们求不同的选取方案数使得总金额加起来为s。思路:1、暴力破解, 四重for循环,时间复杂度O(N^4),直接白给。2、先求两两组合而成的可能的总面值,然后用一个map记录该金额对应的选取个数,最后从1-1e5进行枚举,时间复杂度为O(N^2)。3、背包+容斥+差分。这个题目,我们发现从正面求的话时间复杂度很高,因为有数量的限制。那么我们反其道而行之。我们先用完全背包求没有限制的方案数,然后减去限制一个的方案数,加上限制两个

2021-04-10 09:52:28 181

原创 ACM算法知识整理(字符串和数学)

目前大二,弱校ACMer。队友们都希望在接下来的区域赛取得好成绩。所以现在打算分工每个人主攻几个算法考点,我被分配到了字符串和数学。在队友的建议下我决定做一个知识点的总结,有个计划目标总是好的。数学类位运算整除相关素数+ 埃式筛+ 线性筛+ Min25筛最大公约数欧拉函数同余方程线性同余方程&乘法逆元中国剩余定理高次同余方程博弈论巴什博弈威佐夫博奕Fibonacci博弈尼姆博弈公平组合博弈(Impartial Combinatori Games)

2021-03-26 21:43:47 166 1

原创 数据结构复习总结

写在前面,复习数据结构期末考试,感觉自己复习没效率啊,所以还是把自己的一些复习知识点分享出来吧。我们学校用的教材是《数据结构C语言版》(清华大学出版社)一、基础知识1、基本概念和术语数据:数据是对客观事物的符号表示,在计算机科学中指所有能输入到计算机中并且被计算机程序处理的符号的总称。数据元素:数据元素是数据的基本单位。数据对象:是性质相同的数据元素的集合。数据结构:是相互之间存在一种或者多种特定关系的数据元素的集合。结构:集合,线性结构,树形结构,图状结构,网状结构。2、算法特性:有穷

2021-01-13 15:22:01 272

原创 数论学习之质数

我们主要介绍两种高效的找质数的方法。1、埃式筛法对于一个质数x,我们知道x的倍数肯定不是质数了,如:2是质数,所有2x2,2x3,2x4这些都不是质数了。我们利用一个数组v来进行标记,没被标记的就是质数了。时间复杂度为O(NloglogN)O(NloglogN)O(NloglogN)代码://埃式筛void primer(int n){ memset(v,0,sizeof(v)); for(int i=2;i*i<=n;i++){ if(v[i]) continue; for(

2020-08-27 21:21:08 395 1

原创 数论学习之约数

最近学数论真的感觉自己脑子很不好用啊,一个证明题想半天。感觉一些基础的知识还是比较重要的,所以就记录下来吧,加深一下印象。对于一个整数n,假如我们想求到这个整数的所有的约数的话,我们只要对其1−n1-\sqrt{n}1−n​之间找可以被n整除的那些数,然后就可以找到它们的约数了。时间复杂度O(n)O(\sqrt{n})O(n​).代码://试除法int factor[1600],m=0;for(int i=1;i*i<=n;i++){ if(n%i==0){ factor[++m]=

2020-08-27 20:18:48 187

原创 关键路径学习心得

预备知识:AOV(Activity On Vertex)网,也叫做顶点活动网。指的是用顶点表示的是时间,用边集表示的是时间发生的先后顺序。AOE(Activity On Edge)网,也叫做边活动网。指的是用带权的边集表示活动,用顶点表示事件的有向图,也就是经过该活动之后就可以发生这个事件了。注意这两种是不同的模型,但是AOV网也可以在一定程度上转化为AOE网,就是把一个结点拆成两个点,然后从两个点之间添加一条边表示权,两个网都是有向无环图。最长路径:我们之前学过最短路径的求法,而最长路径顾名思义就

2020-07-26 14:57:06 867

原创 拓扑排序

先来认识一下有向无环图:一个有向图的任意顶点都无法通过一些有向边回到该点自身,就称之为有向无环图。对于拓扑排序,是根据边的先后顺序来进行排列,比如:u->v,表示点可以由u到达v,那么u就要排在v的前面,如果两者之间的层数相同,那么就可以任意的排列,当然有的时候题目会限制,比如按照编号大小来进行排列。看这个图,我们已经标明了它们的边的指向,1,3都是可以当作起点,因为它们都是属于第一层的点,1->2,说明1排在2的前面,然后我们发现4可以由2,3都可以指向,则2,3一定要在4的前面,所以我们

2020-07-26 12:04:49 218

原创 最小生成树之prim算法&&kurskal算法

首先,我们来说一下图当中的最小生成树,对于一个无向图来说,它的最小生成树的定义如下:1,该数经过所有的结点2,经过的所有的结点的边权之和最小3,这棵树的起点可以是任意的点,不过一般都是题目中指定的prim算法:适用范围:边多点少的稠密图。复杂度:O(v^2)与Dijkstra算法相比,该算法的区别是里面的d数组,Dijkstra算法的d表示的是当前的结点v距离起始节点s的最短距离,而该算法的d表示的是当前结点和它的上一个结点之间的最短距离。我们的Dijkstra算法里面的起点在我们的prim算

2020-07-26 00:06:12 184

原创 Bellman-Ford算法和SPFA算法以及Floyd算法学习心得

对于BF算法,我们主要是用于解决Dijkstra算法不能解决的问题,我们之前说到,Dijkstra算法的使用范围是结点之间的边权为正数的情况。所以BF算法可以解决边权为负的情况。我们考虑环的问题,我们可以知道,如果某个点经过一系列的点后回到自身后,如果边权之和为正的话,则称为正环,为0则为零环,为负则为负环。对于正环和零环的情况,我们可以知道不会影响最短路径的取值,但是如果出现负环,我们的算法就很可能受到影响。但是,因为我们考虑的是有向图的情况,如果我们从源点出发不能通过该负环到达我们要源点自身,那么最短

2020-07-24 22:33:58 245

原创 git的一些基本命令的使用

git安装下载地址: https://git-scm.com/download/win在git下载好之后,第一件事就是要设置你的用户名和邮件地址(这很重要)$ git config -global user.name "这里填你的用户名"$ git config -global user.email "这里填写你的邮箱"这里的–global命令只需要运行1次,然后你后面的操作基本都是使用的这些信息。但是,有的时候我们需要在不同的目录下用不同的邮箱或用户名,这个时候我们可以在相对的目录下运行没有–g

2020-07-24 10:36:06 170

原创 图论学习之Dijkstra算法的总结

图算法——最短路径——Dijkstra(迪杰斯特拉)算法思路整理及基本模板这种算法是为了解决最短路径中的一种问题——在一个有向图中,从某一个固定的点出发,然后求到达每个结点的最短的路径的距离。一开始对于这类问题的思路是可不可以用一个记忆化的搜索进行暴力搜索,然后遍历到当前结点的时候进行更新为最小值。但是似乎如果数据量比较大的时候复杂度有点大。下面就来介绍一下Dijkstra算法基本思想,就是从最初规定的出发的那个点开始进行传递,然后先假设最初点s到其余所有的点距离为无穷大,然后逐层更新每个点的最短路径

2020-07-23 11:57:01 4083

原创 记2020年第十一届蓝桥杯感想

怎么说呢?蓝桥杯算是我人生中参加的第一场比赛吧,其实我还是把这场比赛看得比较重的。但是,考完之后却让我有些失落。先来介绍一下这次比赛的过程吧,可能是太激动了,早上老早就起来了,匆匆吃完早餐后然后看了一会书就出发前往考场了。到了考场之后先熟悉了一下电脑的配置和编译器的环境。C++/C组选手用的是devc++编译器。终于到了九点了,可以开题了。一看第一个填空题,好像可以手算,但是为了保险起见还是写了个程序算了一下。啊!怎么算出来有十多位数,没开longlong,啊!怎么开了longlong卡住了,难道这题数

2020-07-05 18:00:01 8343 31

原创 干货!!!分数的加减乘除源代码

过年了,小编来给大家发福利了!!!需要的拿走,这是分数的加减乘除如何用程序实现?#include<iostream>#include<cmath>struct beg{ int up; //表示分数的分子 int down; //表示分数的分母};beg reduction(beg a);beg add(beg a,beg b);beg red...

2020-01-24 14:35:46 3043

原创 快速排序法源码

快速排序法的思路是:1,先将A中的第一个元素存入temp中,再令left和right分别指向序列的两端;2,对于右端right,只要有A[right]大于temp,那么right就往左移一个单位;当某时候A[right]小于temp时,将此时的right指向的元素给此时的A[left];3,执行完2的步骤后,再对于左端left,只要A[left]小于或等于temp,则将left往右移;当遇到...

2020-01-21 16:33:01 582

原创 算法之大数运算乘除源代码

首先,我要声明这里的乘是指高精度与低精度相乘,除是高精度除以低精度1,其实乘法与加法类似,差别就在于carry可能是两位数以上,其余与我上篇博客加法代码一致。2,除法主要是要传入三个参数,被除数和除数以及高精度最高位与除数相除所得的余数。下面献上代码#include<iostream>#include<string.h>using namespace std;...

2020-01-20 12:38:57 556

原创 算法之大数运算加减法源代码

很多小伙伴对计算机编程的算法感兴趣,但在很多竞赛类算法网站中,大数运算往往是必考的,而课本有基本未提及,所以,小编今天来提供算法的基本运算的源码(加减)。对于大多数大数运算,往往是超出int 的范围,比如有2的100次方,100的100次方等等,或是超过题目内存限制,这时大数运算就能大展身手,其实,大数运算其实就是字符串的运算,再将其与结构体相结合。所以,对字符串和结构体还不熟悉的小伙伴建议先去...

2020-01-19 18:59:40 1380

原创 如何用到c/c++文件

很多大一新生,特别是刚接触计算机的萌新们,对于c/c++文件可能会感到很迷茫,往往无从下手,而且老师课堂时间讲的又少,不知道如何用到文件。今天,小编就来为大家初步讲解一下c/c++文件如何操作(因为本人也是萌新,所以尽量会从萌新的角度去讲解,后续学到了新东西后会继续和大家一起分享的)。在此,大家首先应该了解以下几点(已经知道的小伙伴可以直接掠过这一部分):1,什么是文件路径名。比如,我在D盘下...

2020-01-16 11:38:56 360

原创 如何编写一个学生考试信息管理程序

编写一个函数inGrade(),其功能是输入学生数据;编写函数aveGrade(),其功能是计算学生的平均成绩;编写函数maxGrade(),其功能是查找平均成绩最高的学生的数据;编写函数out Grade(),其功能是输出学生的成绩数据。现有15名学生的数据信息,每个学生的数据信息包括学号、姓名、4门课程(programmer、database、network、operat-system)的成绩...

2019-12-21 12:10:42 939

空空如也

空空如也

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

TA关注的人

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