
C++
文章平均质量分 50
yiichan
这个作者很懒,什么都没留下…
展开
-
函数调用栈详解
前几天忙里偷闲重做6.828,发现在lab 1 exercise 11卡住了,才发现之前觉得很熟了的函数调用栈已经因为太久没接触忘了,一年没有用过这些东西了。看了几篇博客,发现理解还是不够深入,只能自己再手动测一下试一试了。写了一个C文件,叫temp.c#include <stdio.h>int double_add_int(int a, int b) { int c = a; int d = b; int e = a + b + c + d; retu原创 2021-07-09 11:08:09 · 1198 阅读 · 3 评论 -
include errors detected cannot open source file glib.h glib.h glibconfig.h no such file or directory
最近写网安作业,要用到libvmi,发现打开源码缺失库glib。cannot open source file glib.h发现要先安装glib。sudo apt-get install libglib2.0-dev之后使用g++ -v -E -x c++ -会输出g++ 需要include的所有路径。如下。wang-an@ubuntu:~/libvmi/examples$ g++ -v -E -x c++ -Using built-in specs.COLLECT_GCC=g++原创 2021-07-04 16:18:55 · 1493 阅读 · 0 评论 -
C++ Primer 5th 2.3 复合类型
2.3.1 引用引用就是一个对象的别名,由于被引用的一定要是一个对象,而引用本身不是对象,所以不能定义引用的引用。引用一定要在定义时就指定被引用对象。引用的类型和被引用对象的类型一定要是相同的。int i = 1024;int &r = i;double &r1 = i; //错误,i为int,而r1为double型,不相同,不对应2.3.2 指针空指针对于空指针,有至少三种定义方法。int *p = NULL; //NULL是预编译变量,在预编译时会被替换成0,等价原创 2021-01-12 20:10:31 · 202 阅读 · 0 评论 -
POJ 1013 称硬币 枚举 花式调bug 易犯错误
POJ 1013 称硬币 枚举 花式调bug 易犯错误标签(空格分隔): 算法竞赛 算法哇,这道鬼题我居然调了两天,严重耽误了我的学习进度。但是发现的问题也很重要,一定要引以为戒!!!! 问题: Sally Jones has a dozen Voyageur silver dollars. However, only eleven of the coins are tru...原创 2018-03-28 10:39:50 · 312 阅读 · 0 评论 -
生理周期 OpenJ_Bailian - 4148
生理周期 OpenJ_Bailian - 4148标签(空格分隔): 算法竞赛生理周期 OpenJ_Bailian - 4148 人生来就有三个生理周期,分别为体力周期、感情周期和智力周期,它们的周期长度分别为23天、28天和33天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,在智力周期的高峰,人会思维敏捷,注意力容易高度集中。因为三个周期的长度不同,所以...原创 2018-03-28 11:10:59 · 257 阅读 · 0 评论 -
熄灯问题 BailianPOJ 2811 或者 BailianPOJ 1222
熄灯问题 BailianPOJ 2811 或者 BailianPOJ 1222标签(空格分隔): 算法 算法竞赛题目有些长,就不写了,在北大百炼平台上有,1222是英文版题,2811是中文版。这道题我听的郭炜老师的课,做的真心巧妙,用的也是出乎意料。具体解题思路在下面的代码里,是老师的源程序,我手动敲的。其中有很多个地方不好懂,统一分析在代码最后。#include <memo...原创 2018-03-28 21:42:18 · 262 阅读 · 0 评论 -
波兰表达式
波兰表达式标签(空格分隔): 算法竞赛2694:逆波兰表达式查看 提交 统计 提示 提问总时间限制: 1000ms 内存限制: 65536kB描述逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的逆波兰表示法为* + 2 3 4。...原创 2018-04-04 21:32:45 · 1305 阅读 · 3 评论 -
特殊的密码锁
特殊的密码锁标签(空格分隔): 算法竞赛总时间限制: 1000ms 内存限制: 1024kB描述有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态。然而让人头疼的是,当你按一个按钮时,跟它相邻的两个按钮状态也会反转。当然,如果你按的是最左或者最右边的按钮,该按钮只会影响到跟它相邻的一个按钮。当前密码锁状态已知,需要解...原创 2018-03-29 15:57:12 · 2277 阅读 · 0 评论 -
类模板与运算符重载(一个简单的例子)
类模板与运算符重载(一个简单的例子)标签(空格分隔): C++ 算法竞赛下面是一段简单的代码,表示我们建立了一个类模板Vector,可以看做是对STL中vector的简单实现。 为了让这个Vector支持通过下标访问,所以我们需要对[]这个运算符进行重载。 由于是类模板,所以在类模板内部,遵循这样的格式: T& operator ** (int i);...原创 2018-04-12 14:18:22 · 2979 阅读 · 1 评论 -
ACM-ICPC Hong Kong F.Nearby Bicycles
ACM-ICPC Hong Kong F.Nearby Bicycles标签(空格分隔): 算法竞赛水题,但是中间好像有错误数据,就是中间多个空格或者换行的那种。所以我的输入部分代码过不了,但是读走前面的空格或者换行的代码就可以。下面注释部分是我的结构体和输入操作,本机检验输入没问题,提交上去就WA。我用的是gyx的结构体和输入部分代码,就过了。算法很简单,暴力就行了。不提了。 但是...原创 2018-04-06 10:54:04 · 306 阅读 · 0 评论 -
ACM-ICPC 2017 Hong Kong E.Base Station Sites
ACM-ICPC 2017 Hong Kong E.Base Station Sites标签(空格分隔): 算法竞赛当时傻乎乎的取点,还讨论了半天,看着榜上刷出这道题的人越来越多,知道是道水题却做不出来,好尴尬。最后才想到是二分法枚举可能的长度。#include <iostream>#include <cstdio>#include <algo...原创 2018-04-06 10:57:58 · 417 阅读 · 0 评论 -
C++ 输出二进制数
这几天学组成原理,碰到需要输出二进制数的情况,验证a÷(2^n)≠a>>n,我想用高级语言内在的模块实现,程序如下。bitset后面的<>中的数字,指定输出的位数#include<iostream>#include<bitset>using namespace std;int main(){ int a; cin>>a;...原创 2019-07-29 15:41:31 · 19808 阅读 · 4 评论 -
更相减损法和辗转相除法(GCD)求最小公倍数和最大公约数
更相减损法和辗转相除法(GCD)求最小公倍数和最大公约数标签(空格分隔): 算法 算法竞赛这两种算法平时经常听到,听起来也很装逼,但是我老是忘了他们的原理,今天好好想想,写下来。更相减损法 更相减损法最早起源于我国的《九章算术》,用于求两个数的最小公倍数。大意是给定两个数a,b,如果存在偶数,就将偶数以2;否则,就比较两数大小,用大数减小数,得到一个差;对差和剩下的那个小数重复...原创 2018-03-25 17:55:54 · 1351 阅读 · 0 评论 -
程序设计实习MOOC - 程序设计与算法(三)第一周测验 4-神秘的数组初始化
程序设计实习MOOC / 程序设计与算法(三)第一周测验 4:神秘的数组初始化标签(空格分隔): C++4:神秘的数组初始化总时间限制: 1000ms 内存限制: 65536kB描述填空,使得程序输出指定结果#include <iostream>using namespace std;int main(){ int * a[] = {// 在...原创 2018-03-21 11:14:15 · 1196 阅读 · 0 评论 -
UVA 514 Rails 铁轨 栈的模拟
UVA 514 Rails 铁轨 栈的模拟标签(空格分隔): 算法竞赛 C++ 算法 紫书这道题第一次见是在acm俱乐部寒假训练赛中,但是当时太菜了,即便知道是用栈来做,也想不出怎么模拟。过了一个寒假,学了些C++,感觉能做了,但是找不到用栈模拟火车还是车站,所以还是做不出。直到看了提示,知道是用栈模拟车站后,这才做出来的。原题不打了,在紫书140页。我只写解题过程。为了达到重...原创 2018-03-03 19:39:48 · 355 阅读 · 0 评论 -
数列求和的线性递归实现和二分递归实现
数列求和的线性递归实现和二分递归实现标签(空格分隔): 数据结构 算法以前上C程序设计时,递归就搞得糊里糊涂的,甚至连最简单的一个青蛙跳问题都做不出来。过了几个月了,因为学习数据结构重新学习了一下,归纳了一下如何写出一个递归程序。 递归分为好几种模式,这里先介绍线性递归和二分递归。以对一个整型数列求和为例。先上代码。假设最常用的设加和器循环累加的方法是朴素法。//递归实现数组...原创 2018-03-08 19:28:07 · 769 阅读 · 0 评论 -
Little Boxes hdu - 6225
#include <stdio.h>#include <stdlib.h>#include <string.h> #define N 1001char a[N],b[N],c[N],d[N];int a1[N],b1[N],c1[N],d1[N];int main() { int n; scanf("%d",&n); ...原创 2018-03-24 20:21:03 · 379 阅读 · 0 评论 -
幻方是一种很神奇的N*N矩阵 问题 A: 神奇的幻方
问题 A: 神奇的幻方 时间限制: 1 Sec 内存限制: 128 MB 提交: 149 解决: 119 [提交][状态][讨论版][命题人:admin] 题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行、每列及两条对角线上的数字之和都相同。 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间。 之后,按如下方式从小到...原创 2018-03-24 20:33:35 · 5340 阅读 · 0 评论 -
国王将金币作为工资,发放给忠诚的骑士。 问题 G: 金币
题目描述 国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。请计算在前K天里,骑士一共获得了多少金币。 输入 输...原创 2018-03-24 20:37:10 · 17284 阅读 · 3 评论 -
扫雷游戏是一款十分经典的单机小游戏。 问题 H: 扫雷游戏
题目描述 扫雷游戏是一款十分经典的单机小游戏。在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。注:一个格子的周围格子包括其上、下、左、...原创 2018-03-24 20:39:05 · 8302 阅读 · 2 评论 -
02-线性结构4 Pop Sequence(25 分)
02-线性结构4 Pop Sequence(25 分)标签(空格分隔): 数据结构 C++02-线性结构4 Pop Sequence(25 分)Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and pop randomly. You are ...原创 2018-03-22 12:23:20 · 395 阅读 · 0 评论 -
02-线性结构3 Reversing Linked List(25 分)
02-线性结构3 Reversing Linked List(25 分)标签(空格分隔): 数据结构 算法竞赛02-线性结构3 Reversing Linked List(25 分)Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elemen...原创 2018-03-22 00:21:59 · 763 阅读 · 0 评论 -
POJ 2386 Lake Counting DFS初步
POJ 2386 Lake Counting DFS初步标签(空格分隔): 算法 算法竞赛 Description Due to recent rains, water has pooled in various places in Farmer John's field, which is represented by a rectangle of N x M (1 ...原创 2018-03-14 10:39:51 · 236 阅读 · 0 评论 -
Ants poj 1852
Ants poj 1852标签(空格分隔): 算法竞赛 An army of ants walk on a horizontal pole of length l cm, each with a constant speed of 1 cm/s. When a walking ant reaches an end of the pole, it immediatelly fa...原创 2018-03-12 20:50:47 · 212 阅读 · 0 评论 -
Maximum Subsequence Sum 最大子列和算法拓展 浙大考研复试题
Maximum Subsequence Sum 最大子列和算法拓展 浙大考研复试题标签(空格分隔): 算法 数据结构 算法竞赛题目描述也很像最大子列和问题。给出一个整型数组,求他的最大子序列和,并且输出和最大时子序列的首元素和末元素。特别的,如果存在最大和相等的情况,就输出下标最小的那组;如果该数组全是负数,就输出0,以及首元素和末元素的值,相互之间用空格隔开。Sample Inp...原创 2018-03-12 20:12:49 · 784 阅读 · 0 评论 -
挑战程序设计竞赛 1.6.1 三角形 计算组合三角形的最大周长
挑战程序设计竞赛 1.6.1 三角形 计算组合三角形的最大周长标签(空格分隔): 挑战程序设计竞赛 算法竞赛题目很简单,就是输入一个数n,表示接下来输入一个有n个元素的数列,作为一些帮的长度,然后挑选其中的棒组成周长最长的三角形,输出这个最大周长。input52 3 4 5 10output12很简单的一道小题,但是用的方法很多样。书上给了全部遍历的方法,计算每...原创 2018-03-11 19:38:45 · 666 阅读 · 0 评论 -
最大子列和算法
最大子列和算法标签(空格分隔): 算法 数据结构PS:今天开始在中国大学MOOC上看浙江大学的数据结构课,难度确实很大,但是收获也很大。最大子列和算法被许多数据结构教材用来演示算法时间复杂度的分析,但是其中的后两种算法都不好懂,这里对所有算法都做一下说明。先上代码,里面囊括了所有的四种算法。代码虽是用C++写的,但是其中对C++特殊性质的应用只有一处,就是用max函数实现计算三...原创 2018-03-10 20:06:31 · 284 阅读 · 0 评论 -
数据结构 线性表的唯一化算法
数据结构 线性表的唯一化算法标签(空格分隔): 算法 数据结构最近在看两个数据结构的网课,分别是学堂在线清华大学邓俊辉老师的和浙江大学陈越老师的,学到了很多有用的东西。比如下面这个线性表部分的算法(来自清华大学网课),对线性表进行唯一化处理的算法。对一个线性表(课程里面用vector指代),如果想要进行它的唯一化处理,就需要每一种元素仅仅保留一个。比如说{0,1,6,4,8,1,9...原创 2018-03-11 14:33:46 · 700 阅读 · 0 评论