
信息学
雪国恋人
雪国人
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【NOIP算法】大数的加法
题目: 求两个不超过200位的非负整数的和 输入:有两行,每行是一个不超过200位的非负整数,可能有多余的前导0 输出:一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342 【样例输入】 22222222222222222222222 3333333333333333333333 【样例输出】 55555555555555555555555 ...原创 2019-02-13 20:16:56 · 811 阅读 · 0 评论 -
【常用函数2】sort()函数的简单实用方法
排序是我们最常遇到的编程问题,事实上在<algorithm>头文件中就包含一个排序函数:sort() 用法一:一维数组,升序 #include <iostream> #include <algorithm> using namespace std; int main() { int a[10]={11,43,1,45,67,89,33,456,2,...原创 2019-04-19 22:04:26 · 339 阅读 · 0 评论 -
【常用函数4】字符串逆转函数 strrev()、reverse()
一、strrev( ) 函数 头文件:#include<cstring> 或 #include<string.h> #include<iostream> #include<cstring> using namespace std; #define N 20 int main(){ char ch[N]="hello!"; strrev(...原创 2019-04-29 14:07:17 · 1263 阅读 · 0 评论 -
【常用函数6】fill()函数的使用
前言 前面我们讲解了memset()函数,我们知道memset()函数是“按字节填充值”的,当填充整数型数组时,只能填充0和-1。那么有没有可以填充任意值的函数呢?有!这就是我们要给大家介绍的fill()函数,我们称之为“按元素填充值”函数。 代码 包含的头文件:#include<algorithm> 使用方法:fill(arr, arr + n, 要填入的值); ...原创 2019-05-05 15:38:28 · 3021 阅读 · 0 评论 -
【常用函数5】数组元素逆转函数 reverse()
前言:前面我们介绍了reverse()函数能够将字符串逆转,reverse函数也能够将一般的 整数型、浮点型、字符型 数组元素逆转。 参考代码: 包含头文件:#include <algorithm> #include<iostream> #include<algorithm> using namespace std; int main(){ int...原创 2019-04-30 09:23:56 · 2141 阅读 · 0 评论 -
【数论】最大公约数和最小公倍数
最大公约数的求法有两种:辗转相除法 和 枚举法。 枚举法 #include<iostream> using namespace std; int main(){ int a,b,max; cout<<"请输入两个整数:"; cin>>a>>b; for(int i=1;i<=a&&i<=b;i++) { ...原创 2019-05-06 16:03:42 · 386 阅读 · 0 评论 -
【知识小贴士5】数位分离的两种写法
数位分离 就是将一个数字的各个位上的数取出来,例如:5437,分离:千位5,百位4,十为3,个位7。 写法一: #include <iostream> using namespace std; int main() { int n; //我们以四位正整数为例 cout<<"请输入一个四位数:"; cin>>n; //保...原创 2019-05-27 09:42:50 · 1141 阅读 · 0 评论 -
【NOIP算法:回溯】基础问题2:全排列问题
问题描述 输入n,输入n个元素,输出n个数的全排列。(0<n<=15) 【样例输入】: 3 1 2 3 【样例输出】: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 参考代码 #in...原创 2019-05-30 11:26:39 · 427 阅读 · 0 评论 -
【NOIP算法:回溯】基础问题3:组合+全排列问题
问题描述 求从m个数中取r个数,(m、r都是大于0的正整数,且r<m<=15)。 输入格式: 第一行 m r 第二行 输入m个正整数 输出格式: 所有可能的组合的全排列。 【样例输入】: 3 2 1 2 3 【样例输出】: 3 2 2...原创 2019-05-30 11:45:30 · 366 阅读 · 0 评论 -
【数论】分解质因数
【描述】 每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,把一个合数用质因数相乘的形式表示出来,叫做分解质因数。如30=2×3×5。分解质因数只针对合数,对于质数只能表示为1和他本身相乘。如:17=1×17 【输入】 一个正整数n。(n>1) 【输出】 如果n是一个合数,则输出n的质因数表达式。如果n是一个质数,则输出:“n是一个质数无法分解” 【样例输入】...原创 2019-06-20 13:53:27 · 1324 阅读 · 0 评论 -
【常用函数3】itoa()和atoi() 函数的使用方法
前言 数值型字符串与对应的数之间的相互转换,在我们题目中的经常使用,例如:“12345” 转换为对应的整数值 12345,567 转换为对应的字符串 “567”。今天先来讨论,整数型字符串与其对应整数值之间的转换函数:itoa,atoi。浮点数下次讨论。从函数名称你也能猜出 a:ASCII码,i:int 单个数与对应字符之间的转换 不论是单个字符,还是字符串,与对应数字之间的转换本质上都是...原创 2019-04-24 13:41:09 · 496 阅读 · 0 评论 -
【NIOP算法:回溯】基础问题1 :组合问题
前言 排列组合问题是NOIP竞赛中非常常见且难度较大的一类题目,主要有两类:组合问题、全排列问题。这里我们先讨论组合问题,全排列问题后面再讨论。 问题 数组A的长度为N(0<N<=15),从这N个数中取出M个数。问:共有几种取法?并列出每种取法取出的数据组合。注意:我们这里不讨论数组中重复数据的问题(即:一个组合中可以有重复的数据)。 例如:int A[4]={1,2,3,4}...原创 2019-04-23 15:46:12 · 685 阅读 · 0 评论 -
【NOIP算法】图论 - Dijkstra算法
概述 迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。图论的内容属于较为复杂的算法问题,看了一些博客文章,基本都描述冗长,只好自己来写了。我试图用简洁的语言、清晰的图示、明确的步骤带你用一个半天精力搞清楚这个问题。 图解:Dijkstra算法的基本思想 以上图G1为例,对对迪杰斯特拉进行算法演示(以第4个顶点D为起点) 引进两个集合S和U。...原创 2019-04-27 17:17:37 · 411 阅读 · 0 评论 -
【NOIP算法】大数的减法
题目: 大整数的减法,求两个大的正整数相减的差 输入:共2行,第1行是被减数a,第2行是减数b(a>b).每个大整数不超过200位,不会有多余的前导零 输出:一行,即所求的差 【样例输入】 999999999999999999999999999999999999 9999999999 【样例输出】 999999999999999999999999990000000000 分...原创 2019-02-13 20:32:10 · 561 阅读 · 0 评论 -
【知识小帖士 2】细致分析!C++字符串的接收问题
【cin的问题】 我们通常使用 cin 来做输入接收,但是使用cin在接收字符串的时候有一个问题:它不能接受带有空格的字符串。因为遇到空格,cin认为输入结束。 #include <iostream> using namespace std; #define N 100 int main() { char a[N]; cin>>a; cout&...原创 2019-03-20 12:40:52 · 452 阅读 · 0 评论 -
【市赛真题】温馨的家(矩阵运用题)
【问题描述】 企鹅皮皮从小就是一个淘气的孩子。现在,他已经长大了,需要自己建一个新家了。你知道企鹅的家里用小石块在地面上铺出来的吧?为了让自己的家看起来更漂亮,皮皮找了很多钟不同颜色的石块,并把它们铺成一圈一圈的:先找某种颜色的一颗放中心,在它周围铺上一圈第二种颜色的,再在周围铺上一圈第三种颜色的。。。。。。 当然这是一个漂亮的家。 你能用你的知识,让计算机画出皮皮的家吗? 【输入】 输入一...原创 2019-03-21 11:22:34 · 1345 阅读 · 0 评论 -
【NOIP算法】大数相乘
前面我们介绍了大数的相加、相减,我们知道了为什么计算机无法直接做大数的运算,同时我们也知道我们做大数运算程序的方法。本节课,我们介绍大数相乘。 题目: 求两个不超过200位的非负整数的积 【输入】:有两行,每行是一个不超过200位的非负整数,可能有多余的前导0 【输出】:一行,即相乘后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342 【样例输入】 5000...原创 2019-03-22 15:03:36 · 584 阅读 · 0 评论 -
【知识小帖士 1 】C++中,简单的文件操作
C++已经是青少年信息学各大竞赛(区赛、市赛、NOIP、NOI)的唯一编程语言,在考试时都要求使用文件完成输入输出操作。如果不会文件操作,就如同一个武士剑术高超,但是比武时忘了带剑,好不吃亏? 参考代码: #include <fstream> using namespace std; ifstream cin("data.in"); ofstream cout("data.ou...原创 2019-03-19 10:37:42 · 358 阅读 · 0 评论 -
【NOIP算法】大数除法
我们这里研究的大数除法是:被除数是高精度数,除数是低精度数 分析 1)除法是从高位开始的,所以字符型被除数不用逆序转存到整数数组,顺序转存即可 2)余数*10+本位的数 作为下一个被除数 参考代码 #include <iostream> #include <cstring> using namespace std; #define N 200 in...原创 2019-03-23 15:08:39 · 548 阅读 · 0 评论 -
【常用函数1】memset()函数的使用
1、概述 memset()函数,称为按字节赋值函数,使用时需要加头文件 #include<cstring>或者#include<string.h>。通常有两个用法: (1)用来给整形数组整体赋值为0或者-1; (2)给字符数组整体赋值 2、整形数组整体赋值 整形数组整体赋值为0或-1: #include <iosream> #include <...原创 2019-04-11 16:02:10 · 847 阅读 · 0 评论 -
【知识小帖士4】各数据类型取值范围
前言: 很多同学纠结于数据的取值范围问题,事实上在我们的系统头文件中有专门表示各个数据类型取值范围的宏。 一、基本数据类型的分类 1、整形: 1)int、short int、long int、long long int 2)unsigned int、unsigned short int、unsigned long int、unsigned long long in...原创 2019-04-21 16:41:51 · 855 阅读 · 0 评论 -
【知识小贴士3】cin 与 cin.getline()函数同时使用时的一个疑问
问题 前面我们说过,cin在接收字符串时不能接收含有空格的字符串,所以我们使用cin.getline()函数。但是当如果在cin.getline()函数前面用到cin,你会发现出问题了!!!!,如下: #include <iostream> using namespace std; int main() { int a; char ch[100]; cin...原创 2019-04-18 14:40:13 · 972 阅读 · 0 评论 -
【知识小贴士】未知个数的多个字符串接收,以‘\n’结束
接受多个字符串,最终以‘\n’结尾,怎么实现 #include<iostream> #include<cstring> using namespace std; #define N 10 int main(){ string str[N]; int i=0; char ch; while(cin>>str[i]) { if((ch=getc...原创 2019-10-08 10:37:40 · 443 阅读 · 0 评论