自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 问答 (1)
  • 收藏
  • 关注

原创 第十一届蓝桥杯省赛第一场C/C++B组题目与个人解答

第十一届蓝桥杯省赛C/C++B组题目与个人解答)试题 A: 跑步训练试题B:纪念日试题C:合并检测试题D:REPEAT程序试题E:矩阵试题F:整除序列试题G: 解码试题H: 走方格试题 I: 整数拼接试题 J: 网络分析试题 A: 跑步训练本题总分:5 分【问题描述】小明要做一个跑步训练。初始时,小明充满体力,体力值计为 10000。如果小明跑步,每分钟损耗600 的体力。如果小明休息,每分钟增加 300 的体力。体力的损耗和增加都是均匀变化的。小明打算跑一分钟、休息一分钟、再跑一分钟、再休

2020-10-08 15:46:46 3062 3

原创 第十届蓝桥杯省赛C/C++组题目和个人解答

第十届蓝桥杯省赛C/C++组题解与体会Q1.组队Q2年号子串Q1.组队作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容。每位球员担任 1 号位至 5 号位时的评分如下表所示。请你计算首发阵容 1号位至 5 号位的评分之和最大可能是多少?编号 1 号位 2 号位 3 号位 4 号位 5 号位1 97 90 0 0 02 92 85 96 0 03 0 0 0 0 934 0 0 0 80 865 89 83 97 0 06 82 86 0 0

2020-10-03 22:56:28 800

原创 算法竞赛入门经典第十章知识点总结

数学概念和方法欧几里得算法算法引入:除法表达式题目描述欧几里得算法(辗转相除法)代码表示除法表达式代码Eratosthenes筛法算法引入代码解释欧几里得算法算法引入:除法表达式题目描述给出一个这样的除法表达式:X1/X2/X3/·····/Xk,其中Xi是正整数。除法表达式应当按照从左到右的顺序求和。但是可以在表达式中嵌入括号以改变计算方式。输入X1/X2/X3/·····/Xk,判断...

2020-08-25 23:44:12 231

原创 算法竞赛入门经典计数基础

计数基础)有重复元素的全排列(可重集)结论推导过程可重复选择的组合组合数推导(杨辉三角)重头戏约数的个数小于n且与n互素的整数个数代码解释有重复元素的全排列(可重集)问题描述:有k个元素,其中第i个元素有ni个,求全排列个数。这个问题,在组合数学中,就是可重集的全排列。可重集在组合数学上表示为S={a1n1, a2n2, a3n3…aknk}则S的全排列 = n!n1!n2!n3!......

2020-02-10 22:31:43 303

原创 算法竞赛入门经典第十章知识点总结1

数学概念和方法欧几里得算法算法引入:除法表达式题目描述欧几里得算法(辗转相除法)代码表示除法表达式代码Eratosthenes筛法算法引入代码解释平方因子代码扩展欧几里得算法定义代码同余与模算术公式大整数取模幂取模模线性方程组a关于模n的逆欧几里得算法算法引入:除法表达式题目描述给出一个这样的除法表达式:X1/X2/X3/·····/Xk,其中Xi是正整数。除法表达式应当按照从左到右的顺序...

2020-02-07 22:11:46 293

原创 算法竞赛入门经典第十一章知识点总结(不包括网络流)

CH11图论模型算法和总结(不包括网络流)无根树转有根树问题的思考过程书本代码解释表达式树问题思考过程代码解释最小生成树定义kruskal算法并查集代码解释最短路问题(带权)单源最短路Dijkstra算法(有向图)书本代码解释优化的代码Bellman-Ford算法朴素代码优化代码多源最短路Floyd算法代码写在前面,很多东西看了代码就懂了,关键是如何引入这些东西。是否有一个逻辑思考过程,并不是靠...

2020-01-30 13:56:25 289

原创 笔记bomblab phase_4 && phase_5 && phase_6

phase_4先读入两个int类型的数。读入的第一个数的地址在%rsp + 8的位置。然后调用函数在地址0x400fe2时,通过前面0x400fce-0x400fdf可以计算出%ecx此时的值是0x7。往下看,假设执行了0x400fe4指令,就跳到了0x400ff2指令,然后%ecx和%edi再比较。第一次是jle(小于或等于),第二次是jge(大于或等于)。要想都满足条件,那就只能是0x...

2019-09-08 23:34:44 2002

原创 笔记cs:app--bomblab phase_1&&phase_2&&phase_3

大名鼎鼎bomblab实验必要时需要自己画出函数栈帧!必要时需要自己画出函数栈帧!必要时需要自己画出函数栈帧!由于不会作图,这里就不画了。phase_1通过反编译bomb文件得到phase_1的汇编代码观察phase_1的汇编代码观察将0x402400传入%esi, %esi是函数调用时的参数存放的寄存器,因为函数调用所用的寄存器都是依次有顺序的。%rdi, %rsi, %rdx...

2019-08-16 11:26:53 537

原创 深入理解计算机系统实验1datalab笔记

1.bitXor,思路:同时为0或者1的时候才为0,其他情况为1,所以可以先&操作(x & y),获得同时为1的。再将x,y进行~,然后再&,得到就是同时为0的(~x ^ ~y)。然后在这两个式子中都为0的就是01或10的。所以可以将这两个式子|运算再~就可以了。/* * bitXor - x^y using only ~ and & * Exampl...

2019-07-26 18:22:21 1829

原创 datalab-handout实验1的准备工作

这个第一个lab准备工作写在前面,这个关于如何开始编写程序,测试程序的正确性的。!!!最重要有一台linux系统的电脑,虚拟机也可以。需要从这个网址下载实验文件。http://csapp.cs.cmu.edu/3e/labs.html ,找到第一个实验,Data Lab 然后点击Self Study Handout,会有下载一个解压包。解压出来的文件有bits.c,btest等文件,然后b...

2019-07-25 01:23:07 1053 3

原创 c++编译时的一些常见错误(未完)

1.there are no arguments to '*****' that depend on a template parameter, so a declaration of '******' must be available这个问题产生可以检查是否应用了名字空间。我曾经写的代码出现了这个错误template <typename T>void queue_psn&l...

2019-05-07 10:29:11 1899 1

转载 (转)c++ 控制符

dec 设置整数的基数为10 hex 设置整数的基数为16 oct 设置整数的基数为8 setbase(n) 设置整数的基数为n(n只能是16,10,8之一) setfill(c) 设置填充字符c,c可以是字符常量或字符变量 setprecision(n) 设置实数的精度为n位。在以一般十进制小数形式输出时,n代表有效数字。在以fixed(固定小数位数)形式和scientif...

2019-04-12 20:08:21 1387

原创 39级台阶——蓝桥杯

题目:小明刚刚看完电影《第39级台阶》。离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!站在台阶前,他突然又想着一个问题:如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?用的是动态规划的思想,也可以递归dfs来做,后者比前者耗时。动态规划(递推):定义一个数组dp[], 其中dp[...

2019-03-14 13:25:58 711

原创 HDOJ2058The sum problem笔记

题目地址** 在等差数列下,对于某数s,在某个长度下的和相等,那么有且只有一个。**代码#include &lt;iostream&gt;#include &lt;cstdio&gt;//事实上,每个长度如果可以相等,那么有且只有一个可能使该长度的值与M是相等的。 using namespace std;int main() { int N, M; while(sca...

2019-03-05 21:12:36 246

原创 HDOJ2018母牛的故事笔记

题目地址一开始做这道题,实在难受,题意都不太懂。题意应该是母牛年初生一头小牛,然后第四个年头,成长成母牛,就是包括自己被生出来的那一年,就是第n年生出来,第n + 3年自己成长成母牛还生了一头小牛。了解了题意,应该就简单了。第n年牛数量的增加取决于母牛的数量,而母牛的数量又取决与到第n年有多少头母牛,也就是第n - 3年的牛的数量。所以递推式是f[n] = f[n - 1] + f[n ...

2019-03-05 09:17:30 199

原创 HDOJ2036改革春风吹满地笔记——任意多边形求面积

题目地址学习了任意多边形的计算,通过向量叉乘来进行计算。计算公式 S = 1 / 2 * (∑(xiy(i + 1) - x(i + 1) yi) + (xky0 - x0yk)如果逆时针给出坐标,求得是正的,就是答案。如果顺时针给出坐标,求得是负,需要变正具体推导过程博客地址1还学了海伦公式求三角形面积S = abs(p * (p - a) * (p - b) * (p - c))...

2019-03-04 20:41:57 266

原创 HDOJ2095find your present (2) 笔记——关于有用的位操作

题目地址题目的意思就是找到一个只有唯一一个数字的,如果搜索,时间复杂度是O(n ^ 2), n &lt; 1000000,(一百万), 超时。看了discuss, 发现位操作太巧妙了,所以做下笔记提醒自己。位操作异或: 单纯的位而言0 ^ 1 = 1;1 ^ 1 = 0;0 ^ 0 = 0;贴上代码#include &lt;cstdio&gt;int main() { int ...

2019-03-04 17:11:15 244

原创 HDOJ2092整数解笔记

题目地址解决的方法很简单就是判定。要做笔记的地方就是是不是一定需要用双重循环?在第二次做的时候想到的时二重循环,就是复杂度为O(n ^ 2), 有20000 - 2个数,起码要算接近20000 * 20000 次,肯定超时。回去看第一次解决的代码,只用了一重循环,因为已经知道了和 同 积,这个就很重要了,就少算很多那些和不等的数了,直切要害。厉害。***是不是一定要二重循环?先想一下这...

2019-03-04 16:12:14 307

原创 HDOJ2066一个人的旅行笔记——dijkstr算法

题目地址dijkstr算法:将dijkstr算法实现时一些问题。首先,每一次都寻找权最小的边,这个要通过一次循环,假如有n个点需要进行考虑,那么需要进行n次循环。因为每一次循环之后都需要进行寻找最小权边,直到第n个点,所以是一个二重循环。之后的松弛就可以了。参考博客博客地址ac代码#include &lt;iostream&gt;#include &lt;cstring&gt;#i...

2019-03-03 10:34:37 285

原创 c++primer笔记const限定词作用在指针和引用以及作为函数的形参

const限定词:顶层const:直接作用在对象上,使得对象是一个常量。底层const:对于复合类型,例如指针。一个指针是常量指针还是一个指向常量的指针,有区别。例如const int *p 底层const,表明p指向一个常量,不可以通过p来改变p指向的对象的值。int const *p 顶层const, 表明是一个常量指针,初始化后就不能变了。永远指向那个地址。常量引用:不可以通过常量引用...

2019-03-02 19:09:31 342

原创 HDOJ2077汉诺塔IV笔记———与汉诺塔三得一些不同

题目地址思维过程:与汉诺塔三的不同就是允许最大得盘子叠放在最上面,考虑有n个盘子次数设为f(n),最大的是第n个,所以只需要把n - 1个盘子从左边移到中间,然后第n个盘子就可以移动两次+2,然后就可以从最左边移到最右边了,然后再把中间的n - 1个盘子移到右边,好像就是直接f(n) = f(n - 1) + 2?后来一想,不对,只允许最大的在上面,而f(n - 1)是有n - 1个盘子时的次数...

2019-02-27 10:52:43 247

原创 HDOJ2064汉诺塔III笔记-推导过程

题目地址思路过程:要想所有盘子从最左边移到最右边,肯定要先把最大的盘子移动好,所以就要先把除了最大盘子的所有盘子移到最右边,这样,最大的盘子才可以开始移到中间,然后最右边的盘子要移到最左边,这样才可以将最大的盘子从中间移到右边,然后就是将其他盘子移到右边了。最重要的就是将除了最大盘子以外的所有盘子从最左边移到最右边和从最右边移到最左边是一样的步骤比如有n个盘子设次数为f(n),最大的为第n个盘...

2019-02-27 09:16:39 370

原创 HDOJ2063过山车笔记——匈牙利算法(最大匹配)

题目地址我在做这道题时距离我写这篇博客已经有一个多月了,当时看到这道题,以为是贪心题,先让最少选择的先上,因为多选择意味着尽量多,现在仔细想了想,是错的,要看怎么错,可以这样想,如果不是最少选择的先上,会不会增加匹配数。看了discuss,啊!匈牙利算法,厉害。匈牙利算法博客趣写算法写一下基本概念增加印象。交错路:从未匹配点出发,经过未匹配边,匹配边,未匹配边,匹配边…如此循环增广路...

2019-02-26 22:56:55 262

原创 HDOJ2050折线分割平面笔记——与对于分割平面的一些小体会

题目地址思维过程:第一次做的时候,并没有抱着解决一类题的观念去做,美其名曰抱着解决问题的观念。然后还看了下面的递推求解练习,知道是递推题,所以只想着画出来当n=3时的面数。原本的想法是尽量切割更多的平面,连对于直线切割平面怎么获得最大的平面数都不晓得。可是这个“更多的平面”很是模糊,将递推变成了模拟,并且是毫无根据的模拟,没法做。然后就是今天回顾了,发现漏下许多知识,包括直线切割平面如果获得最...

2019-02-26 21:40:55 219

原创 HDOJ2061 Treasure the new start, freshmen!笔记

题目地址这道题和字符串处理没有一点关系,还想着能练一下string,需要注意的就是格式#include &lt;cstdio&gt;#include &lt;algorithm&gt;using namespace std;int main(void) { int N; while(scanf("%d", &amp;N) != EOF) { char a[100][30]; ...

2019-02-25 21:24:56 282

原创 HDOJ2060——Snooker

题目地址如果在TX玩的Snooker的规则是国际规则的话,那么在打入红球之后再打入其他颜色的球应该要放回去的,就不应该是简单的红球的分数加上其他颜色球的分数。只能按照题目来#include &lt;cstdio&gt;#include &lt;algorithm&gt;using namespace std;int main(void) { int n; while(s...

2019-02-25 21:03:09 333

原创 HDOJ2053——Switch Game笔记

题目地址这道题有点提示太多了,好像题意并没有说进行几次的操作,可是后面的例子给如果超出n了就不用测试了,因为超过n,n就不可能是某个数的倍数了,这就给了提示。贴上代码#include &lt;stdio.h&gt;int main(void) { int n; while(scanf("%d", &amp;n) != EOF) { int condion =...

2019-02-25 20:49:41 187

原创 HDOJ2049不容易系列之(4)——考新郎笔记——组合数和错排公式的应用

题目地址就是一个组合数公式的运用和错排公式的运用#include &lt;cstdio&gt;#include &lt;algorithm&gt;using namespace std;int main(void) { int C; long long a[20 + 1] = {0}; a[2] = 1; for(int i = 3; i &lt;= 20; i++) { a...

2019-02-25 20:05:06 241

原创 关于计算组合数的笔记

需要熟悉组合数的代码,可以快速做出来,所以先做个笔记。有两种代码实现代码1;直接按照C(n, m) = (m * m - 1 * m - 2 * m - 3 * m - 4 * … * m - n + 1) / n!因为从m到m - n + 1, 共需要进行m - m + n - 1 = n - 1次的加,而从1加到n,也需要n - 1次加,所以一个循环就可以。//依托公式:C(n, m...

2019-02-25 19:52:37 227

原创 HDOJ2048神,上帝及老天爷笔记—关于递推的一些心得

题目地址这道题是一道递推题,关于错排的递推题,思考错排的递推式时出现了一个思考的误区。如f[n] 时n个元素错排的可能,那么先把n- 1个元素错排,n - 1个元素错排时,可以分成两部分,第一部分是第n个元素错排了,第二部分是不错排,这个想法是错的。这样实际解决的是n个元素错排。心得:设定Pn为某个状态,如果要达到某个状态,那么需要什么状态来达到。例如就这道题错排的公式推导要想达到n个元素...

2019-02-25 18:54:14 246

原创 HDOJ2047阿牛的EOF牛肉串——重点是关于递推题的一些总结

题目地址递推题感觉就是一般给出了一些进行下一步的约束条件,所以第n个和前面的项存在关系。突然间感觉好奇妙,可是想描述出来又力不从心。是由这道题的递推推导得到一些感觉,写一下这道题的递推过程,以及看了别人的推导过程后顿悟。开始做这种题目时,总是想通过排列或者组合来做,可是因为有了约束条件,所以并不是简单的排列组合,抑或不是排列组合。进行下一步时总是有约束条件,这就当前步与下一步存在关系了。对于...

2019-02-23 21:12:23 190

原创 HDOJ2046骨牌铺方格笔记

题目地址和前面的超级楼梯,蜜蜂走蜂房类似的。对于2 * n个格子,要铺满2 * n个,首先要铺满2 * (n - 1)或者铺满2 * (n - 2),当铺满了2 * (n - 1), 剩下的一个只能竖放,当铺满了2 * (n - 2),如果竖放,2 * (n - 1)已经包含了这些可能,所以只能横放。所以也有dp的思想在里面所以递推方程是d[n] = d[n - 1] + d[n - 2]...

2019-02-23 15:34:05 182

原创 HDOJ2045不容易系列之(3)—— LELE的RPG难题笔记

题目地址这道题还是很有意思,如果不去考虑首尾的不能相同,那么对于n来说,会有3 * 2 ^ (n - 1)项(n &amp;gt;= 3)。考虑n == 3,第n - 1个格子是都不同于第n - 2个格子,所以第n 个格子可以涂2种颜色。这两种颜色某一种颜色与第一个格子的颜色是相同的,当考虑了首尾不能相同,那就第n个格子可以涂1种颜色。可以得出一个结论d[n]=3 * 2 ^ (n - 1) -...

2019-02-23 14:40:08 169

原创 HDOJ2045勤劳的蜜蜂笔记

题目地址这道题和前面的超级楼梯有相像的地方,但题目的描述有问题,看了discuss才知道原来是只能爬向比当前蜂房数字大的蜂房,也就是说可以走一格或两格,和超级楼梯像,不过超级楼梯固定了起点,而这道题通过的是两个蜂房之间的距离,还是dp的思想。int会WA#include &lt;iostream&gt;#include &lt;algorithm&gt;#include &lt;cmath...

2019-02-23 10:42:07 205

原创 HDOJ2042不容易系列之二笔记

题目地址个个都说递归,可是我有点抗拒递归。好像递归和递推的差别一个是自顶向下,一个是自下向顶,这道递归不难,可是这个递归,还是要递归到最底,和递推的差别是什么呢,递推需要打表这个差别?递归代码#include &lt;iostream&gt;using namespace std;int Recurse(int n) { if(n == 1) { return 4; } el...

2019-02-22 22:38:56 233

原创 HDOJ2041超级楼梯笔记-对于dfs的第一尝试

题目地址n为1时答案是1,从第一级踏上第一级,只能上一级或二级,不应该是0?开始的时候用了dfs来做,但是我这样写的时间复杂度应该为O(2 ^ n),如果没估算错,毕竟新手,很可能是错的。当n为40,2 ^ 40太大了,肯定超时,也不出所料,TL。#include &amp;lt;cstdio&amp;gt;#include &amp;lt;algorithm&amp;gt;#include &amp;lt;ctime&amp;g.

2019-02-22 21:48:34 330

原创 HDOJ2040亲和数笔记

题目地址判断是不是约数简单,判断的时候循环的退出条件应该要小于该数。真约数百度说不包括1和自身,可是题目示例包括了1,只能按照题目来。想法很简单,可是很久之前做的,现在想的时候竟然想的是用一个数组来存储约数真的是一言难尽啊,而之前的源代码是只需要一个变量,如果是约数就加一些。汗颜#include &lt;stdio.h&gt;#include &lt;math.h&gt;int mai...

2019-02-22 19:55:24 203

原创 HDOJ2037笔记今年暑假不AC(贪心题目)

题目地址重要的是如何贪心。贪心只是一个思想,并不是解决一个问题的特定解法,是一个思想。思维过程,又要选择开始早的,结束时间也早的,时间跨度还要小最好时间互不相交。最好就0-1-2-3-4-5-6-7-8-9-10-…-24,(总需要一个算法开始的地方,自然的选择了0为开始,如果选择了开始时间,0-7时间跨度太大,里面有其他的节目,如果选择开始时间,并不能决定结束时间。而时间的跨度是由开始时间和...

2019-02-22 11:34:40 239

原创 HDOJ2084数塔(简单动态规划)

题目地址关于数字三角形,很容易找到其中的状态方程。参考《竞赛入门》中第九章动态规划第一节。状态方程为的d[i][j] = max(d[i+1][j], d[i + 1][j + 1];用一个二维数组来存储数字三角形,就可以了。贴上源代码,这道题只是初始看了动态规划#include &lt;cstdio&gt;#include &lt;algorithm&gt;#include &lt;...

2019-02-22 10:10:57 231

原创 HDOJ2054A==B?笔记

题目地址这道题是大数比较的题,第一次做的时候,傻乎乎的直接比较是不是相等,当然WA,然后第二次有了字符串的概念,用了字符串来做,想了很多种情况,如果输入的数不是同一进制的怎么办,发现如果这样想这道题没法做了,就当成了相同进制,通过字符串来比较。因为要字符串判断,所以要判断有没有无谓的东西使得两个相等的数不一样,例如000.001000和0.001这两个数是相等的,可是字符串却会判断不相等。两...

2019-02-14 23:06:00 287

空空如也

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

TA关注的人

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