C/C++
c
每天学点
这个人很懒,没有简介
展开
-
C++:list结构算法
C++:list结构算法原创 2023-01-19 15:00:14 · 801 阅读 · 1 评论 -
C++:vector结构算法
C++:vector结构算法原创 2023-01-19 13:30:30 · 1155 阅读 · 0 评论 -
c语言:单片机除法求余算法
c语言:单片机除法求余算法原创 2023-01-18 13:37:33 · 1059 阅读 · 0 评论 -
c语言:CRC-16/MODBUS校验码生成算法
c语言:CRC-16/MODBUS校验码生成算法原创 2023-01-18 13:28:39 · 720 阅读 · 0 评论 -
c语言:联合体和位域及其嵌套
c语言:联合体和位域及其嵌套原创 2023-01-18 13:21:23 · 325 阅读 · 0 评论 -
c++—引用。。。
目录目录前言引用的概念交换a和b的值引用作为函数的返回值常引用例子前言纯自学,看的mooc上郭老师的课,整理整理。。。不然全忘了。。引用的概念类型名&引用名=某变量名;int&r=n;r引用了n,r的类型是int&,r是引用变量。 某个变量的引用等价于这个变量,r和n是一回事。 注意: 定义引用时一定将其 初始化成引用某个变量; 初始化后,他就一直引用该变量,不会再引用别的变量原创 2017-11-06 17:32:34 · 313 阅读 · 0 评论 -
const
目录目录定义常量定义常量指针定义常引用定义常量const int max=22;const double p=3.1415;const char* sch="zzuli";定义常量指针1.不可通过常量指针修改其指向的内容 {常量指针指向的内容不能随意修改}int n,m;const int *p=&n;*p=5; ///不行n=4;///其指向的内容可以通过其他方式修改p=&m;原创 2017-11-06 18:02:02 · 169 阅读 · 0 评论 -
new
动态内存分配用new运算符实现动态内存分配动态内存分配分配一个变量分配一个数组new运算符返回值类型释放动态分配出来的内存空间分配一个变量p=new t; t是任意类型名,p为类型为t*的指针。 动态分配出一片大小为sizeof(t)字节的内存空间,并将该内存空间的起始地址赋值给p。int*pn;pn=new int;*pn=5;分配一个数组p=new t[n]; t是任意类型名,原创 2017-11-06 18:30:02 · 547 阅读 · 0 评论 -
malloc动态分配数组以及指针数组大小
对于二维数组:一般来说,当给两个数分别表示行列,但两个数的范围过大,就需要动态分配。 int i,j,m,n; scanf("%d%d",&m,&n); int **a; a=(int**)malloc(sizeof(int*)*m); for(i=0;i<m;++i) a[i]=(int *)malloc(sizeof(int)*n);...原创 2017-11-11 14:26:46 · 9079 阅读 · 0 评论 -
不用数组,解决众数问题(前提 :众数出现的次数必须大于n/2)
内存限制4mb用数组不通过,怎么办?众数出现的次数必须大于n/2第一行输入一个整数n (1<=n<=1E6)接下来一行n个整数 mi (1<=MI<=1E9) 表示第i种糖果的个数,整数之间用空格隔开输出mi中出现次数最多的那个数,占一行510 10 10 20 3010#include<...原创 2017-11-17 21:06:42 · 849 阅读 · 0 评论 -
vector简单应用
输出vector中元素,以及插入删除元素#include#includeusing namespace std;templateclass T&gt;void printvector(T s,T e)//输出vector元素 { for(; s!=e; ++s) cout&quot; &quot;; cout&lt;&lt;endl;}int main(){//插入和删除函数,两种形式,原创 2018-01-28 10:30:07 · 461 阅读 · 0 评论 -
函数对象应用
计算几个数的n次方和#include#include#include#include#includeusing namespace std;int sumsquares(int total, int value){ return total+value*value;}templateclass T>//模板 void printinterval(T first原创 2018-01-28 11:37:18 · 214 阅读 · 0 评论 -
stl中使用自定义大小排序
#include#include#include#include#include#includeusing namespace std;class myless{ public: bool operator()(const int &c1,const int &c2) { return (c1%10)10);原创 2018-01-28 12:15:33 · 658 阅读 · 0 评论 -
(dp)数字三角形
题目方案1递归方案二递推题目数字三角形问题。有一个由非负整数组成的三角形,第一行只有一个数,除了最下行 之外每个数的左下方和右下方各有一个数 从第一行的数开始,每次可以往左下或右下走一格,直到走到最下行,把沿途经过的数 全部加起来。如何走才能使得这个和尽量大? 1.把当前的位置(i, j)看成一个状态 ,然后定义状态(i, j)的指标函数d(i, j...原创 2018-01-29 10:01:30 · 262 阅读 · 0 评论 -
动规最长上升子序列
#include#includeusing namespace std;#define maxx 101int a[maxx];int n;int maxlen[maxx];int main(){ int i,j; cin>>n; for(i=1;i<=n;++i){ cin>>a[i];//数组a存数 maxlen[i]=原创 2018-01-29 10:44:59 · 142 阅读 · 0 评论 -
动规最长公共子序列
首先,有俩参数分别是s1,s2,那就要用二维数组. 确定状态maxlen(i,j),表示s1第i个与s2第j个元素组成的最长公共子序列个数 再找临界状态:maxlen(i,0)=0,maxlen(0,j)=0 再找状态转移方程: 如果s1第i-1个元素和s2第i-1个元素相等,那么maxlen(i,j)=maxlen(i-1,j-1)+1 如果s1第i-1个元素和s2第i-1个元素不相等原创 2018-01-29 11:33:53 · 157 阅读 · 0 评论 -
深入剖析:Super Jumping! Jumping! Jumping! (动规)
分析:题意就是,在一个数组里找递增的子序列的最大和,而且子序列元素可以不相邻。 我先上一个错误代码,这是我刚看完题后一分钟就写的,事实上没想象中简单,等会我分析一下错误原因#include#include#includeusing namespace std;int a[1001];int m[1001];int main(){ int n,i,j; wh原创 2018-02-01 11:20:12 · 523 阅读 · 0 评论 -
震惊!printf 与scanf 不可告人的秘密
目录1. printf与scanf2.sqrt函数3.π4.三位数反转5.三整数排序1. printf与scanf#include&amp;lt;stdio.h&amp;gt;int main(){ printf(&quot;%lf\n&quot;,8.0/5.0); printf(&quot;%lf\n&quot;,8/5.0); p原创 2018-02-09 10:42:30 · 449 阅读 · 0 评论 -
算法竞赛入门经典 第二章总结
1.例题aabb输出 所有形如aabb的4位完全平方数 分析: 方案1.判断a*1100+b*11是不是完全平方数(枚举a和b) 方案2.判断4位完全平方数是否满足aabb形式(枚举1000到9999中的完全平方数) 代码:#include&lt;stdio.h&gt;#include&lt;math.h&gt;int main(){ int a,b; ...原创 2018-02-10 11:53:25 · 223 阅读 · 0 评论 -
算法竞赛入门经典 第五章总结1
例题1:输入多行数据,每行包含若干个以空格隔开的整数,输出每行中所有整数之和#include&amp;lt;iostream&amp;gt;#include&amp;lt;string&amp;gt;#include&amp;lt;sstream&amp;gt;using namespace std;int main(){ string line; while(getline(原创 2018-02-10 12:19:36 · 259 阅读 · 0 评论 -
c++类和对象初步
程序设计与算法(三)C++面向对象程序设计-郭炜 第二周 总结整理:目录:类成员的可访问范围成员函数的 重载及参数缺省构造函数 constructor复制构造函数 copy constructor类型转换构造函数析构函数 destructors1.类成员的可访问范围在类的定义中,用下列访问范围关键字来说明类成员 可被访问的范围: – priv...原创 2018-02-12 09:52:14 · 323 阅读 · 0 评论 -
类和对象提高
程序设计与算法(三)C++面向对象程序设计-郭炜 第三周 总结整理: 目录:this指针静态成员成员对象和封闭类友元 friends常量成员函数1.this指针C++程序到C程序的翻译 class CCar { public: int price; void SetPrice(int p); }; voi...原创 2018-02-12 13:48:18 · 300 阅读 · 0 评论 -
算法竞赛入门经典 第七章 总结
目录:1 简单枚举2 枚举排列3 子集生成7.1 简单枚举例题7-1 除法(Division, UVa 725) 输入正整数n,按从小到大的顺序输出所有形如abcde/fghij = n的表达式,其中a~j恰好 为数字0~9的一个排列(可以有前导0),2≤n≤79。 样例输入: 62 样例输出: ...原创 2018-02-12 23:06:25 · 570 阅读 · 0 评论 -
线性表总结
线性表及其实现多项式的表示什么是线性表线性表的抽象数据类型描述线性表的顺序存储实现线性表的链式存储实现线性表及其实现多项式的表示[例] 一元多项式及其运算 一元多项式 : 主要运算:多项式相加、相减、相乘等 【分析】如何表示多项式? 多项式的关键数据: 多项式项数n 各项系数ai 及指数 i 方法1:顺序存储结构...原创 2018-02-24 09:47:51 · 323 阅读 · 0 评论 -
堆栈总结
堆栈什么是堆栈堆栈的抽象数据类型描述栈的顺序存储实现堆栈什么是堆栈计算机如何进行表达式求值? 算术表达式5+6/2-3*4。 正确理解: 5+6/2-3*4 = 5+3-3*4 = 8-3*4 = 8-12 = -4 由两类对象构成的: 运算数,如2、3、4 运算符号,如+、-、*、/ 不...原创 2018-02-24 10:07:36 · 812 阅读 · 0 评论 -
队列总结
什么是队列队列(Queue):具有一定操作约束的线性表 插入和删除操作:只能在一端插入,而在另一端删除 数据插入:入队列(AddQ) 数据删除:出队列(DeleteQ) 先来先服务 先进先出:FIFO 队列的抽象数据类型描述类型名称:队列(Queue) 数据对象集:一个有0个或多个元素的有穷线性表。 操作集:长度为MaxSize的队列Q Qu...原创 2018-02-24 10:40:14 · 641 阅读 · 0 评论 -
D P- 免费馅饼
题目都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽然在游戏中是个身手敏捷的高手,但在现实中运动神经...原创 2018-02-26 09:41:12 · 398 阅读 · 1 评论 -
震惊!Fibonacci Again
题目There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n&gt;=2). InputInput consists of a sequence of lines, each containing an integer n. (n &lt; 1,000,00...原创 2018-02-26 11:35:57 · 243 阅读 · 0 评论 -
震惊! Leftmost Digit
题目Given a positive integer N, you should output the leftmost digit of N^N. InputThe input contains several test cases. The first line of the input is a single integer T which is the number of ...原创 2018-02-26 12:40:41 · 285 阅读 · 0 评论 -
位运算基础知识
用于对整数类型(int,char, long 等)变量中的 某一位(bit),或者若干位进行操作。比如: 1) 判断某一位是否为1 2) 只改变其中某一位,而保持其他位都不变。 C/C++语言提供了六种位运算符来进行位运算操作: &amp; 按位与(双目) | 按位或(双目) ^ 按位异或(双目) ~ ...原创 2018-02-27 09:54:03 · 277 阅读 · 0 评论 -
震惊! Rightmost Digit 快速幂解决
题目Given a positive integer N, you should output the most right digit of N^N. InputThe input contains several test cases. The first line of the input is a single integer T which is the number o...原创 2018-02-27 10:52:20 · 1047 阅读 · 0 评论 -
震惊!筛法求素数并打表!
#include &lt;stdio.h&gt;#include &lt;math.h&gt;#define MAX 70000int a[MAX+1];int prime[MAX+1];int k=0;void susu(){ prime[k]=2; for(int i=3;i&lt;=MAX;i+=2) a[i]=0; for(int i=3;...原创 2018-02-27 12:26:01 · 317 阅读 · 0 评论 -
c语言中闰年 日期 天数 统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形
常识:1、3、5、7、8、10、12月份,每个月31天。2月闰年有29天,非闰年28天其他月份,每月30天 闰年:一年有365天,闰年有366天,所谓闰年,即能被4整除且不能被100整除的年份,或是能被400整除的年份; 这两次比赛都考了这,我每月有多少天都分不清啊啊啊,怎么做!!!所以今天我特意整理整理题目描述有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不...原创 2018-03-11 21:59:01 · 526 阅读 · 0 评论 -
c++ stl 容器 迭代器 stl用法示例
基本概念容器概述 1)顺序容器 vector, deque,list 2)关联容器 set, multiset, map, multimap 3)容器适配器 stack, queue, priority_queue 迭代器 用于指向顺序容器和关联容器中的元素 迭代器用法和指针类似 有const 和非 const两种 通过迭代器可以读取它指向的元素 通过...原创 2018-04-05 16:41:15 · 247 阅读 · 0 评论 -
跳跃游戏(数组下标跳跃)
给定一个非负整数数组,假定你的初始位置为数组第一个下标。数组中的每个元素代表你在那个位置能够跳跃的最大长度。请确认你是否能够跳跃到数组的最后一个下标。例如:A = [2,3,1,1,4]A=[2,3,1,1,4] 能够跳跃到最后一个下标,输出true;A = [3,2,1,0,4]A=[3,2,1,0,4] 不能跳跃到最后一个下标,输出false。输入格式 第一行输入一个正整...原创 2018-04-20 00:55:39 · 1891 阅读 · 0 评论 -
最大子阵列
在一个数组中找出和最大的连续几个数。(至少包含一个数)例如:数组A[] = [−2, 1, −3, 4, −1, 2, 1, −5, 4],则连续的子序列[4,−1,2,1]有最大的和6.输入格式第一行输入一个不超过1000的整数n。第二行输入n个整数A[i]。输出格式第一行输出一个整数,表示最大的和。样例输入 3 1 1 -2 样例输出 2#inclu...原创 2018-04-20 01:11:59 · 203 阅读 · 0 评论 -
三值排序
排序是一种很频繁的计算任务。一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候。在这个任务中可能的值只有三种1,2和3。我们用交换的方法把他排成升序的。写一个程序计算出,计算出的一个包括1、2、3三种值的数字序列,排成升序所需的最少交换次数。输入第1行为类别的数量N(1≤N≤1000)输入第2行到第N+1行,每行包括一个数字(1或2或3)。输出包含一行,为排成升序所需的...原创 2018-04-20 01:43:21 · 1226 阅读 · 0 评论 -
深度优先搜索重要模板
深度优先搜索(Depth-First-Search)从起点出发,走过的点要做标记,发现有没走过的点,就随意挑一个往前走,走不 了就回退,此种路径搜索策略就称为“深度优先搜索”,简称“深搜”。其实称为“远度优先搜索”更容易理解些。因为这种策略能往前走一步就往前走一 步,总是试图走得更远。所谓远近(或深度),就是以距离起点的步数来衡量的。中国大学mooc 郭炜老师的算法上讲的几个模板(伪代...原创 2018-04-20 16:51:34 · 2527 阅读 · 0 评论 -
c++函数模板
函数模板 为了交换两个int变量的值,需要编写如下Swap函数:void Swap(int &amp;amp; x, int &amp;amp; y) { int tmp = x; x = y; y = tmp;}为了交换两个double变量的值,还需要编写如下Swap函数:void Swap(double &amp;amp; x, double &amp;amp; y) { ...原创 2018-06-10 18:21:04 · 226 阅读 · 0 评论 -
c++类模板
有时,有两个或多个类,其功能是相同的,仅仅是数据类型不同,如下面语句声明了一个类:class Compare_int{ public : Compare(int a,int b) { x=a; y=b; } int max( ) { return (x&gt;y)?x:y;}int min( ){ ret...原创 2018-06-10 18:59:40 · 256 阅读 · 0 评论