自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 memset初始化最大值最小值问题

对于int类型memset(a,127,sizeof(a)) 设置为几乎最大值约等于231(实际上为0x7f7f7f7f)memset(a,0x3f,sizeof(a)) 设置为最大值的一半memset(a,128,sizeof(a)) 设置为几乎最小值memset(a,192,sizeof(a)) 设置为最小值的一半对于...

2020-08-15 14:57:04 959

原创 「贪心算法」LeetCode 55 跳跃游戏

题目概述:给定一个数组,每个数字表示处于该位置时可以移动的最大距离,问从第一个位置出发,能否到达最后一个位置。题目解析:题目没有限制跳跃的方向,但是我们思考一下就知道没有必要往左跳。因为往左跳之后的位置你之前就可以到达了。题目给定了一个终点,我们可以通过寻找哪些点可以到达终点,再把这些点当成新的终点,再寻找哪些点可以到达新的终点,依次往复。看到最小的终点是否能从起点到达即可。因为能到达远处肯定可以到达近处,所以终点越近越好,我们在写代码的时候要从后往前遍历,而且要实时更新终点,使其保持最小的状态.

2020-08-08 19:59:35 181

原创 「二叉树」HDOJ3791 二叉搜索树的生成序列比较

HDOJ3791<二叉搜索树>题意概述:给出两个二叉搜索树的生成序列,判断是否能生成相同的二叉搜索树。解决:二叉搜索树的生成序列有以下的特点:根结点在最前面左子树为小于根结点的所有结点,右子树为大于根结点的所有结点而我们又知道: 如果两个树相同,只需要使他们的根结点、左子树、右子树相同就行了。而左子树和左子树相同又成为了一个本问题的小问题,所以我想到了使用递归来设计函数。判断函数:bool IfEqual(string a,string b){//使用字符串来存

2020-06-16 17:06:23 171

原创 「二叉树」HDOJ 3999 二叉搜索树的最短字典序列

HDOJ3999 <The Order of A Tree>题目概述:给定一个二叉搜索树的生成序列,求这个树 的字典序最小生成序列求解:对于一个二叉搜索树来说,因为他的特性,导致所有的左子树小于右子树,而又因为对于二叉树的节点来说,生成序列中左子树和右子树的先后顺序不影响其的生成。并且,对于二叉搜索树,根结点一定在最前面。这样我们就知道了求最小生成序列的原则:1. 先输出根结点2. 输出左子树3. 输出右子树这不就是先序遍历吗!!!所以我们这题的思路就是:先根据给定的生

2020-06-16 15:10:19 332

原创 gets

gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但***换行符会被丢弃***,然后在末尾添加’\0’字符。其调用格式为:gets(s);

2020-06-15 22:30:43 506

原创 「Codeforces」 #645 div2

A. Park Lighting题目概述:给定一个n x m的矩阵,现在有一种灯能照亮相邻的两个格子,问最少有多少盏灯可以照亮全部的矩阵。问题解析:首先想到如果n x m为奇数,那么肯定至少有一个灯只贡献了一个格子的光。即一个灯和另一个灯同时照亮了一个格子,重复了。不过这是不可避免的。而如果n x m为偶数,那么理论上最好情况是每个灯都可以照亮两个格子,没有浪费。问题的解决:首先想到只有一行的情况(同只有一列),那么只需要将灯顺序排列下去即可。 如果有奇数的格子的话:那么最后一个

2020-05-28 15:09:45 130

原创 「DFS」从不同的一组数中选取k个数的总方法

例题:HDOJ1342题目大意:输出从给定的k个数中选取6个数的所有选取方法题解:dfs的入门题型是全排列题,其实和这类题很像全排列题目中dfs函数的写法:void dfs(int step){ if(step==Volume+1){ 输出标记数组 } for(int i=0;i<Volume;i++){ if(vis[a[i]]==0{ b.push_back(a[i]); vis[a[i]]=1; dfs(step+1); b.pop_back(

2020-05-10 01:20:04 219

原创 「Codeforces」Phoenix #638 div2

AA. Phoenix and Balance题目大意有n个硬币,每个的价值为21,22,23,… 2n,n为偶数。现在要求把这n个硬币分为两堆,使得两堆的价值差距最小。题目解析看到2的n次方首先要想到二进制,n个硬币的价值可以用二进制这样来表示:假设n个硬币价值总和为sum我们想要分到最平衡的两堆的话,就要使一堆尽可能的逼近sum/2:我们知道,任何一堆的价值和sum/2...

2020-05-05 21:56:12 105

原创 优先队列中对象为结构体或者类时重载运算符 注意点

一种是写成成员函数:class node{public: int step,x,y; bool operator <(const node&n) const{ return this->step < n.step; }};注意:当写成成员函数时,该重载函数必须为常成员函数。即加const修饰。第二种是写成友元函数:cl...

2020-04-20 23:23:06 115

原创 「并查集」HDOJ1325 《Is it a tree?》

原题链接:HDOJ1325——————————————————————————————题目大意:给定一个序列,序列中每两个数字表示前者为后者的父结点。试判定由给定的序列所构成的是否是一颗树,(树可能为空,即什么都没有)一颗树有三个特点:如果树不为空,那么树只有一个根结点从根结点到树中的每一个结点都有且仅有一条路径除了根结点外,每个结点只有一个父结点图中第一、二个为树,第三个不为...

2020-04-11 00:42:45 101

原创 「DP」【二维背包】HDOJ_2159FATE

FATETime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 24157 Accepted Submission(s): 11148Problem DescriptionProblem Description最近xhd正在玩一款叫做...

2020-04-05 13:42:31 133

原创 调用成员函数cmp排序时出错的解决方法

在一个类中我想使用sort函数调用同一个类中的cmp函数时class A{ bool cmp(int x,int y){ return x<y; } int st(vector<int >&a){ sort(a.begin(),a.end(),cmp); }}会发生错误:因为成员函数。究其原因,是因为非静态的成员函数必须被绑定到一个类的对象或...

2020-03-29 12:54:05 411

原创 「DP」HDU-superjumping

原题:谷歌翻译版:题意:给定一个一维棋子序列,每个棋子上有一个数字。每次只能从小的数跳到较大的数且不能回跳,每种跳法均有它的数字和。输出最大的那个。对于第n个数an,在其结尾的最长递增序列中,它的前面必是小于其的数。所以我们在以前面n-1个数中小于an为结尾的最大值中寻找最大值用一维dp数组来记录以每个位置结尾的最大值:dp[i]=max(dp[j] )+a[i] (j<i,...

2020-03-28 22:44:51 99

原创 【DP】HDU-免费馅饼

数塔Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 124 Accepted Submission(s) : 80Problem Description在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:有如下所示的...

2020-03-28 22:21:06 118

原创 [DP] 数塔

从9往下走,遇到分叉。从9开始的最优解=9+max(12开始的最优解,15开始的最优解)。而12开始的最优解=12+(10开始的最优解,6开始的最优解)15开始的最优解=15+(6开始的最优解,8开始的最优解)。以此类推就可以得到双亲结点的最优值=本结点值+max(子结点开始的最优值)于是我们可以从最下方开始计算。最先可以计算出来的位置为第N-1层(设总层数为N),因为第N层的最优值=结...

2020-03-28 21:17:41 100

转载 [编程问题]数组开的太大导致爆栈

在占用内存空间较大的局部数组声明的前面加static将其从堆栈数据段挪到全局数据段即可避开因局部数组大小超过默认堆栈大小1MB造成程序不能正常运行的问题。容量大小从小到大:栈≤全局数据≤堆≤文件≤硬盘≤磁盘阵列≤云存储当程序需要使用比如2GB~1TB左右的存储时,最简单的办法恐怕得是用文件读写模拟内存读写了吧。windows参考_fseeki64函数,linux参考fseeko64函数。...

2020-03-25 00:56:42 966

原创 c++ 中*&的应用(个人理解

1. &的介绍我们都知道&在c语言中表示的是取地址符而在c++中表示引用int &b=a这表示b为a的别名,即以后对b的任何操作都可以看成对a的操作你也可以这么理解:在这句之后,你用替换把b换为a,在任何意义上都是完全一样的。应用方法:int main(){ int a; int &b=a; print()}这样将b作为a的别名。p...

2020-03-24 23:19:06 7719 10

原创 HDOJ2050——折线分割平面

传送门:HDOJ2050我们知道直线分割平面一条直线共有2个交点,新增的平面数=1第二条直线要与第一条直线有交点分割区域最多,图中第二条直线带来了三个交点:A,B,C我们从A看向C。从A到B将绿色区域分割成两份,即新增一个区域。从B到C将蓝色区域分割成两份,新增第二个区域。看来不算初始的点A,新增的区域好像和新增的交点数一致。我们再画第三条直线第三条线新增了4个点,从1到4看...

2020-03-15 12:21:37 424

原创 HDOJ1007Quoit Design——日常折磨

原题链接:HDOJ1007本来看到这样的题我应该是一脸懵逼的,但是幸运的是由于太菜没来得及做,导致做到这题的时候已经被科普解法了。没错!就是按照x+y排序 分治!按照了解到的解法,我知道了每块区域要划分为左半区,右半区,一左一右的中间区。(还没学到分治于是用到递归写出了这样的代码#include "iostream"#include <algorithm>#include ...

2020-03-10 23:03:38 115

转载 回车、换行的区别(\n,\r的区别)

他们间的区别其实是个回车换行的问题先来段历史符号ASCII码意义\n13换行\r10回车回车”(Carriage Return)和“换行”(Line Feed)这两个概念的来历和区别。在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟可以打10个字符。但是它有...

2020-03-05 12:23:04 1634 1

空空如也

空空如也

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

TA关注的人

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