
c++
7Maggie_C
这个作者很懒,什么都没留下…
展开
-
C++ 并查集 例题讲解
一、基本性质1.在基于并查集的基础上增加记录数组_rank,表示i与其同集合根节点的关系二、例题讲解2.1【食物链 POJ - 1182】——vjudge题目链接题意:动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N...转载 2019-09-14 22:22:54 · 1084 阅读 · 0 评论 -
C++ 搜索之广度优先搜索(BFS)
例题1:附C++代码://// 1456.cpp// 胜利大逃亡//// Created by chenmeiqi on 2019/4/11.// Copyright © 2019年 chenmeiqi. All rights reserved.//#include <iostream>#include <queue>...原创 2019-04-11 17:23:51 · 1746 阅读 · 0 评论 -
C++ 高精度整数,大数的进制转换
附 C++ 代码://// 62.cpp// 进制转换//// Created by chenmeiqi on 2019/4/1.// Copyright © 2019年 chenmeiqi. All rights reserved.//#include <iostream>#include <cmath>using namesp...原创 2019-04-01 21:08:45 · 2261 阅读 · 0 评论 -
C++ 搜索之枚举
应用:附C++代码://// 1045.cpp// 百鸡问题//// Created by chenmeiqi on 2019/4/10.// Copyright © 2019年 chenmeiqi. All rights reserved.//// 注意此题有前提条件就是鸡的总数量一定为100!#include <iostream>u...原创 2019-04-10 20:11:54 · 551 阅读 · 0 评论 -
C++ 高精度整数,求n的阶乘(n!),大数乘小数如何处理
附代码://// 61.cpp// N的阶乘//// Created by chenmeiqi on 2019/3/31.// Copyright © 2019年 chenmeiqi. All rights reserved.//#include <iostream>#include <cmath>using namespace std...原创 2019-04-01 14:30:41 · 3246 阅读 · 0 评论 -
C++ 分解一个大数的素因数
题目:先附上我写的代码:#include <iostream>using namespace std;int main(int argc, const char * argv[]) { int n=0; static int a[1000000001]={0}; // 把大数组开在了 Data Segment 中 a[0...原创 2019-03-27 19:42:22 · 3199 阅读 · 0 评论 -
C++ 初始化数组过大,如何解决开大数组内存溢出的问题
C语言占用的内存可以分为5个区:①代码区(Text Segment):不难理解,就是用于放置编译过后的代码的二进制机器码。②堆区(Heap):用于动态内存分配。一般由程序员分配和释放,若程序员不释放,结束程序时有可能由操作系统回收。(其实就是malloc()函数能够掌控的内存区域)③栈区(Stack):由编译器自动分配和...转载 2019-03-27 19:18:39 · 27459 阅读 · 6 评论 -
C++ 图论之拓扑排序
应用:附C++代码://// 1448.cpp// Legal or Not//// Created by chenmeiqi on 2019/4/10.// Copyright © 2019年 chenmeiqi. All rights reserved.//#include <iostream>#include <vector...原创 2019-04-10 15:08:44 · 522 阅读 · 0 评论 -
C++ 高精度整数,两个大数相加如何处理
这是一例典型的考察高精度整数的题目,其输入非常巨大(1000位),我们将不能使用任何整数类型来直接保存它。所以我们只能采用上文中所定义的结构体来完成对其的保存,并且实现两个高精度整数的加法。附代码://// 60.cpp// a+b//// Created by chenmeiqi on 2019/3/29.// Copyright © 2019年 chenm...原创 2019-03-29 19:18:32 · 1815 阅读 · 0 评论 -
C++ 图论之邻接链表的实现
我们知道,图的一种表示的数据结构是邻接链表。而谈到邻接链表,大家可能会对链表产生恐惧。较好地使用链表而不出现错误需要对链表原理的深刻理解和扎实的编程功底,那么我们该如何快速地学会使用邻接链表呢?这里,我推荐使用标准模版库(STL)中的标准模版 std::vector。接下来,我们了解一些vector在实现邻接链表中的应用。首先我们定义一个结构体,包括邻接结点和边权值,用来表示一条边。...原创 2019-04-02 19:53:42 · 2397 阅读 · 1 评论 -
C++ 图论之并查集
首先,我们定义一个数组,用双亲表示法来表示各棵树(所有的集合元素个数总和为N):int Tree[N];用Tree[i]来表示结点i的双亲结点,若Tree[i]为-1则表示该结点不存在双亲结点,即结点i为其所在树的根结点。那么,为了查找结点x所在树的根结点,我们定义以下函数:int findRoot(int x){ int ret; wh...原创 2019-04-02 20:26:37 · 594 阅读 · 0 评论 -
C++ 搜索之递归
例题1:附C++代码://// 1458.cpp// 汉诺塔III//// Created by chenmeiqi on 2019/4/12.// Copyright © 2019年 chenmeiqi. All rights reserved.//#include <iostream>using namespace std;lon...原创 2019-04-12 21:01:12 · 460 阅读 · 0 评论 -
C++ 重载运算符使用const的原因
如这段代码: bool operator <(const student &a ) const{ if(score!=a.score) return score<a.score; else if(name.compare(a.name)!=0) return name<a.name; else if(a...原创 2019-05-06 15:58:39 · 8120 阅读 · 0 评论 -
C++机试技巧
滚动数组调试技巧补充技巧提醒原创 2019-05-05 17:33:01 · 1446 阅读 · 0 评论 -
C++标准模版库STL之map
例题代码//// 105.cpp// 产生冠军//// Created by chenmeiqi on 2019/5/5.// Copyright © 2019年 chenmeiqi. All rights reserved.//#include <iostream>#include <map>using namespace std...原创 2019-05-05 17:04:19 · 302 阅读 · 0 评论 -
C++ 标准模版库STL之string
例题1:代码://// 104.cpp// 字符串的查找删除//// Created by chenmeiqi on 2019/5/4.// Copyright © 2019年 chenmeiqi. All rights reserved.//#include <iostream>#include <string>us...原创 2019-05-04 20:15:58 · 241 阅读 · 0 评论 -
C++ 动态规划例题详解
递推问题利用递推解决问题,我们就要模仿求斐波那契数列的过程。首先,确定几个规模较小的问题答案。然后考虑如何由这几个规模较小的答案推得后面的答案。一旦有了递推规则和数列初始的几个值,计算机程序就能帮助我们求解数列后面的所有数字,我们的问题也得到了解决。例题1:代码://// 93.cpp// N阶楼梯上楼问题//// Created by chenmeiqi on...原创 2019-04-17 19:59:16 · 2851 阅读 · 0 评论 -
C++ vector之删除元素
---- 向量容器vector的成员函数pop_back()可以删除最后一个元素.---- 而函数erase()可以删除由一个iterator指出的元素,也可以删除一个指定范围的元素。---- 还可以采用通用算法remove()来删除vector容器中的元素.---- 不同的是:采用remove一般情况下不会改变容器的大小,而pop_back()与erase()等成员函数会改变容器的大...转载 2019-04-17 14:37:27 · 47463 阅读 · 0 评论 -
C++ vector的N种遍历方法
随着C++11标准的出现,C++标准添加了许多有用的特性,C++代码的写法也有比较多的变化。vector是经常要使用到的std组件,对于vector的遍历,本文罗列了若干种写法。(注:本文中代码为C++11标准的代码,需要在较新的编译器中编译运行)假设有这样的一个vector:(注意,这种列表初始化的方法是c++11中新增语法)vector<int> valLi...转载 2019-04-17 14:33:15 · 7781 阅读 · 0 评论 -
C++ 图论之最短路径
Floyd算法应用:附C++代码://// 1447.cpp// 最短路//// Created by chenmeiqi on 2019/4/9.// Copyright © 2019年 chenmeiqi. All rights reserved.//#include <iostream>using namespace std...原创 2019-04-09 19:09:05 · 1467 阅读 · 0 评论 -
C/C++中基本数据类型所占内存大小
C中不同数据类型所占的字节大小,在不同的操作系统和编译器下,是不同的,一般主要说gcc下,32位或64位系统的,红色部分是32和64位系统不同的:转自https://blog.youkuaiyun.com/zcyzsy/article/details/77935651,方便查询...转载 2019-03-19 11:55:14 · 1686 阅读 · 0 评论 -
C/C++编程问题中%运算符的含义与处理方式
相信熟悉 C/C++的读者对%运算符一定不会陌生,我们将其称为求模运算符,通俗的讲即求一个数被另一个数除后剩余的余数。%运算符的用法非常简单,我们用形如 a % b 的语句来调用该运算符。其中变量 a,b 必须为整型变量,例如 int、short 等,而不能为浮点数。且 b 变量必须为非零值,若出现模零错误,程序会因为该异常意外终止。在评判系统中表现为评判系统给出了运行时错误,程序未运行完成就...原创 2019-03-19 11:32:03 · 4890 阅读 · 0 评论 -
c++ 求次方 pow
引入头文件math.hpow(a,b)最开始在网上查的是power,好像不管用。应该是pow原创 2018-08-19 21:25:24 · 8364 阅读 · 0 评论 -
c++编程题 袋鼠过河
题目描述一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子,每隔一米就有一个,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳的更远。每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量为5,就代表袋鼠下一跳最多能够跳5米,如果为0,就会陷进去无法继续跳跃。河流一共N米宽,袋鼠初始位置就在第一个弹簧上面,要跳到最后一个弹簧之后就算过河了,给定每个弹簧的力量,求袋鼠最少需要多少跳能够到...原创 2018-08-03 08:44:24 · 1148 阅读 · 0 评论 -
c++编程题 彩色宝石项链
题目描述有一条彩色宝石项链,是由很多种不同的宝石组成的,包括红宝石,蓝宝石,钻石,翡翠,珍珠等。有一天国王把项链赏赐给了一个学者,并跟他说,你可以带走这条项链,但是王后很喜欢红宝石,蓝宝石,紫水晶,翡翠和钻石这五种,我要你从项链中截取连续的一小段还给我,这一段中必须包含所有的这五种宝石,剩下的部分你可以带走。如果无法找到则一个也无法带走。请帮助学者找出如何切分项链才能够拿到最多的宝石。输入...原创 2018-08-02 00:32:56 · 1691 阅读 · 2 评论 -
c++编程题 求数列的和
最近心好累,行为识别模型明明训练的好好的,收敛也正常,Avg loss也很小,就是测试效果不好(接近没效果)!深度学习之路真是道阻且长啊,求求了~~题目描述数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。输入描述:输入数据有多组,每组占一行,由两个整数n(n < 10000)和m(m < 1000)组成,n和m的含义如前所述。输出描述:对于每...原创 2018-07-31 23:27:15 · 4560 阅读 · 0 评论 -
c++编程题 水仙花数
题目描述春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。输入描述:输入数据有多组,每组占一行,包括两个整数m和n(100 ≤ m ≤ n ≤ 999)。输出描述:对于每个测试实例,要求输出所有在给定...原创 2018-07-30 23:21:50 · 18089 阅读 · 0 评论 -
c++编程题 电话号码分身
这是昨天写的一道题,太晚了没有做完就没发出来。题目描述继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替 ("ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIG原创 2018-07-30 22:06:59 · 719 阅读 · 0 评论 -
c++编程题 句子反转
呼转眼周三也要过去啦。今天在实验室终于装好了python2.7 + opencv3.2 + caffe环境,成功跑起minist和师姐的代码,胸中一块大石终于落下..不得不吐槽下实验室的电脑太坑了,别人留下来的果然没好东西hhh各种东西又杂又乱,卸了安安了卸我真是配环境配吐了,每天不知道在干啥。好在终于结束了,接下来才是难关啊开始我的mtcnn之旅! - 好了进入正题,今天做了一道句子反转的题...原创 2018-07-25 23:43:43 · 2668 阅读 · 1 评论 -
c++编程题 树的高度
题目描述现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度输入描述:输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组成,下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号输出描述:输出树的高度,为一个整数示例1输入50 10 21 31 4...原创 2018-07-24 23:57:54 · 3204 阅读 · 0 评论 -
c++编程题 保留最大的数
终于到家了!开始好好学习算法及数据结构〜这是一道两天前就在写的题,算法是想出来了,但是读入的时候总是出现问题!分享下我的解题历程吧〜题目如下:题目描述给定一个十进制的正整数数目,选择从里面去掉一部分数字,希望保留下来的数字组成的正整数最大。输入描述:输入为两行内容,第一行是正整数number,1 ≤ length(number) ≤ 50000。第二行是希望去掉的数字...原创 2018-08-19 23:37:15 · 902 阅读 · 0 评论 -
C++读入一行字符串
在C++中,要读取一行一共有三种方法一.对于字符数组:方法一:getline()读入整行数据,它使用回车键输入的换行符来确定输入结尾。调用方法: cin.getline(str, len);第一个参数str是用来存储输入行的数组名称,第二个参数len是要读取的字符数。 1 #include <iostream> 2 using namespace std; 3 ...转载 2019-03-14 14:42:23 · 30997 阅读 · 3 评论 -
C++ 如何保留小数和有效位数
cout<<setiosflags(ios::fixed)<<setprecision(2);//需要头文件#include <iomanip>然后再输出实数类型变量即可以保留2位小数输出了,当然你要保留三位小数,setprecision(3)就行。setprecision是指设置输出精度,当没有cout<<setiosflags(i...转载 2019-03-14 14:45:14 · 17740 阅读 · 2 评论 -
C++ 二分求幂——当a、b很大时,怎样快速得到 a 的 b 次方 (a^b)
附代码://// 57.cpp// 人见人爱A^B//// Created by chenmeiqi on 2019/3/29.// Copyright © 2019年 chenmeiqi. All rights reserved.//#include<iostream>#include<array>#include <...原创 2019-03-29 15:08:38 · 1521 阅读 · 0 评论 -
C++ 确定一个数是否为素数(素数筛法)
附C++程序:(这里约定:0,1,负数都是非素数)#include <iostream>#include <cmath>using namespace std;int main(int argc, const char * argv[]) { int n=0; while (cin>>n) { bool prim...原创 2019-03-25 18:52:43 · 4230 阅读 · 0 评论 -
C++ 求两个正整数的最小公倍数(Least Common Multiple, LCM)
关于最大公约数,请见我上一篇博文:https://blog.youkuaiyun.com/qq_36770641/article/details/88724619附C++代码:(输入两个均为正整数的情况,其他情况请自行考虑。)#include <iostream>using namespace std;int GCD(int a,int b){ // 求最大...原创 2019-03-25 18:35:31 · 9349 阅读 · 0 评论 -
C++/欧几里得算法 求两个数的最大公约数(Greatest Common Divisor, GCD)
附上 C++ 程序:(输入两个均为正整数的情况,其他情况请自行考虑。)#include <iostream>using namespace std;/* 思路:(若 a、b 全为0则它们的最大公约数不存在,此处a、b不会同时为0)若 a、b 其中之一为0,则它们的最大公约数为 a、b 中非0的那个; a、b 都不为0,则使新 a = b,新 b = a % b...原创 2019-03-21 20:13:28 · 2529 阅读 · 0 评论 -
C++常用的大小写转换的方法
思路1:根据字母的ASCII表进行转换:由表格可以看出,对应大小写字母之间相差32,由此可以衍生出以下编程的思路:程序1.1#include <iostream> using namespace std; int main(){ char a[20]; int i = 0; cout<<"请输入一串字符:\n"; cin>>a...原创 2019-03-20 20:29:01 · 31312 阅读 · 1 评论 -
如何理解和选择C++里的那些容器
std::array是在C++11中才引入的,与内置数组相比,array是一种更安全、更容易使用的数组类型。与内置数组类似,array对象的大小是固定的。因此,array不支持添加和删除元素以及改变容器大小的操作。与内置数组一样,标准库array的大小也是类型的一部分。当定义一个array时,除了指定元素类型,还要指定容器大小。为了使用array类型,我们必须同时指定元素类型和大小。array仅仅...转载 2019-03-19 17:32:15 · 374 阅读 · 0 评论 -
C++ char转换为int(char to int )
1.通过ascii码:char a = '0';int ia = (int)a; /* note that the int cast is not necessary -- int ia = a would suffice */cout<<ia<<endl;结果如下:可以看出这种方法得到的其实是char对应的ascii码。因为ascii码...原创 2019-03-14 15:00:09 · 92944 阅读 · 2 评论