竞赛知识点
文章平均质量分 62
yanyanwenmeng
这个作者很懒,什么都没留下…
展开
-
POJ 3061 Subsequence 尺取法
http://poj.org/problem?id=3061SubsequenceTime Limit:1000MS Memory Limit:65536K Total Submissions:28853 Accepted:12121 DescriptionA sequence of N positive integers (10 <...原创 2019-12-26 22:13:39 · 160 阅读 · 0 评论 -
5.2 筛法求素数
一个数,如果只有1和它本身两个因数,这样的数叫质数(或素数)。如2、3、5、7都是质数。 一个数,如果除了1和它本身还有别的因数,这样的数叫合数。如4、6、15、49都是合数。 1既不是质数,也不是合数。 #include<iostream>#include<cstdio>using namespace std;int main(){ int ...原创 2018-07-14 17:53:11 · 350 阅读 · 0 评论 -
sscanf的用法
sscanf的作用:从一个字符串中读进于指定格式相符的数据。利用它可以从字符串中取出整数、浮点数和字符串。sscanf和scanf的区别:scanf是以键盘作为输入源,sscanf是以字符串作为输入源。sscanf:原型:int sscanf(const char *str, const char *format,......);说明:sscanf()会将参数str的...转载 2018-09-18 11:00:05 · 73384 阅读 · 7 评论 -
12.4 set和pair
set里面不允许有重复的元素,所以如果插入的数set里面已经有了,就会导致插入不成功。pair中的两个数命名一定是first和second,只不过变量类型可以不一致而已。#include<iostream>#include<set>using namespace std;int main(){ int a[]={1,2,3,8...原创 2018-09-05 16:53:10 · 835 阅读 · 0 评论 -
二分法求解最大最小值模板
二分法题解:https://www.cnblogs.com/hyl2000/p/5734908.html这类问题有个明显的特征:使最小值最大或者使最大值最小。这个时候大概步骤就是先对读进来的数据进行排序(因为二分查找是在有序的数据上进行的)然后执行二分。其中二分里的check函数是最关键的部分,例如第一题中我们就是二分答案,然后在check中贪心的来安排牛的位置,看是否能够满足答案。而第二题也...原创 2018-09-02 17:20:18 · 4470 阅读 · 0 评论 -
11.2 二分查找的原理及其实现
pow(2,10)=1024,所以只需要10次。二分查找的数必须为有序的。#include<iostream>using namespace std;int BinarySearch(int a[], int n, int k){ int left = 0; int right = n-1; while(left <= right) { in...原创 2018-08-30 13:10:15 · 428 阅读 · 0 评论 -
[Error] ld returned 1 exit status?编译错误
是由于程序正在运行输入数据,忘了关掉运行框,然后又去点运行造成的。原创 2018-08-31 00:14:30 · 35599 阅读 · 0 评论 -
11.1 程序或算法的时间复杂度
要找固定操作a[j]>a[i]和a[k]=a[k-1]可以合并为一个固定操作,因为a[j]>a[i]和a[k]=a[k-1]并不是都要执行pow(n,2)次,所以可以看成他们执行次数的和为O(n2)次。在noi相关比赛时,一定要考虑最坏复杂度。举例:常数复杂度:在一个已经排好序的序列里面求最大值或者最小值,在常数时间内就可以找到最大最小值。...转载 2018-08-30 10:45:41 · 982 阅读 · 0 评论 -
牛顿迭代法求平方根
原理:#include<iostream>#include<cstdio>//#define EPS 0.001double EPS = 0.001; using namespace std;int main(){ double a; cin >> a; if(a >= 0) { double x1 = a/2, lastx = x...原创 2018-07-15 23:17:31 · 369 阅读 · 0 评论 -
向上取整,向下取整,四舍五入
6. 图像模糊处理 点击打开链接描述给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理:1. 四周最外侧的像素点灰度值不变;2. 中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。输入第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1 <= n <= 100,1 <= m <= 100。接下来n行,每...原创 2018-07-15 20:25:59 · 7772 阅读 · 0 评论 -
malloc new
原型:extern void *malloc(unsigned int num_bytes)头文件:#include 或 #include (注意:alloc.h 与 malloc.h 的内容是完全一致的。)功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free转载 2017-10-28 15:28:01 · 180 阅读 · 0 评论 -
IP与域名的关系
转载自:https://blog.csdn.net/zhangliangzi/article/details/50617374我们也知道每一台机都有一个唯一ip地址,特别难记,所以出现了今天的DNS(域名)当我们的计算机想要和一个远程机器连接时,我们可以申请连接该机器ip地址下的DNS,例如:www.baidu.com。连接的时候,DNS会提供一个ip地址,供服务器去找寻所以,...转载 2018-09-14 16:56:23 · 15937 阅读 · 5 评论 -
atof函数
atof函数原型double atof(const char *str);作用:将字符串转换为双精度浮点数(double).头文件:#include<stdlib.h>返回值: 返回转换后的浮点数,如果字符串str不能被转换为double,那么返回0.0函数说明:atof()会扫描茶树str字符串,跳过前面的空格字符,直到遇到数字或者正...转载 2018-09-27 20:35:06 · 7075 阅读 · 0 评论 -
Dev C++报错找不到zlib1.dll解决办法以及调试入门
调试时出现下面的界面解决办法1.下载zlib1.dll:http://www.pc6.com/softview/SoftView_81060.html2.解压后放到系统目录中32位系统:放到C:\Windows\System32\(此处为系统目录)64位系统:放到C:\Windows\SysWOW64\然后再次点击“调试”即可。32调试的方法...原创 2019-06-01 22:12:59 · 13071 阅读 · 12 评论 -
STL: list & list知识点
描述写一个程序完成以下命令:new id ——新建一个指定编号为id的序列(id<10000)add id num——向编号为id的序列加入整数nummerge id1 id2——合并序列id1和id2中的数,并将id2清空unique id——去掉序列id中重复的元素out id ——从小到大输出编号为id的序列中的元素,以空格隔开输入第一行一个数n,表示有多少个命令...原创 2019-01-07 22:47:33 · 637 阅读 · 0 评论 -
链表:约瑟夫问题 (两种解法)
描述约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。 输入每行是用空格分开的两个整数,第一个是 n, 第二个是 m ( 0 < m,n <=300)。最后一行是:0 0 输...原创 2019-01-07 19:11:25 · 2055 阅读 · 0 评论 -
区间内的真素数
描述找出正整数 M 和 N 之间(N 不小于 M)的所有真素数。真素数的定义:如果一个正整数 P 为素数,且其反序也为素数,那么 P 就为真素数。例如,11,13 均为真素数,因为11的反序还是为11,13 的反序为 31 也为素数。输入输入两个数 M 和 N,空格间隔,1 <= M <= N <= 100000。输出按从小到大输出 M 和 N 之间(包括...原创 2019-01-05 18:23:04 · 2166 阅读 · 2 评论 -
最大质因子序列(输出逗号的处理)
描述任意输入两个正整数m, n (1 < m < n <= 5000),依次输出m到n之间每个数的最大质因子(包括m和n;如果某个数本身是质数,则输出这个数自身)。输入一行,包含两个正整数m和n,其间以单个空格间隔。输出一行,每个整数的最大质因子,以逗号间隔。样例输入5 10样例输出5,3,7,2,3,5来源元培-From Whf...原创 2019-01-05 18:08:15 · 594 阅读 · 0 评论 -
判决素数个数
描述输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。输入两个整数X和Y(1 <= X,Y <= 105)。输出输出一个整数,表示X,Y之间的素数个数(包括X和Y)。样例输入1 100样例输出25【易错点】本题需要注意,x和y的大小没有确定,因此当x>y时,需要交换两个数#include<cstdio>#...原创 2019-01-05 17:53:34 · 2194 阅读 · 0 评论 -
素数对
描述两个相差为2的素数称为素数对,如5和7,17和19等,本题目要求找出所有两个数均不大于n的素数对。输入一个正整数n。1 <= n <= 10000。输出所有小于等于n的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出empty。样例输入100样例输出3 55 711 1317 1929 3141 4359...原创 2019-01-04 09:51:49 · 685 阅读 · 0 评论 -
学生辅导2018.11.1
一. sizeof的用法二. 两种强制类型转换的方法三. 整数的类型 一. sizeof的用法返回一个对象或者类型所占的内存字节数.#include<cstdio>int main(){ int a; char b; bool c; double d; float e; printf("%d %d %d ...原创 2018-10-31 14:28:27 · 239 阅读 · 0 评论 -
删除字符串中的第一个递减区间的数
例如有一个字符串为141519,要删除第一个递减区间的数,即删除4,最后要输出11519,该如何做呢?这就需要利用指针,将数依次往前移动,最后的数减少1.#include<iostream>#include<cstring>using namespace std;char a[50];int main(){ cin >> a; int...原创 2018-10-14 23:48:22 · 240 阅读 · 0 评论 -
删除字符串串首零的方法
假设字符串为00001,最后要输出1.方法1:用bool值记录零值#include<iostream>#include<cstring>using namespace std; char a[] = "00001";int main(){ int n = strlen(a); bool flag = false; for(int i = 0; ...原创 2018-10-14 23:18:23 · 2979 阅读 · 0 评论 -
continue和break、return 0
#include<iostream>using namespace std;int main(){ int i; for(i=1;i<=5;i++) { if(i==1) continue;//跳过本次循环,进入下一次循环 cout<<i<<endl; } return 0;} continue:跳过本次循环...原创 2017-10-10 21:19:56 · 464 阅读 · 0 评论 -
pair的用法
pair的类型: pair 是 一种模版类型。每个pair 可以存储两个值。这两种值无限制。也可以将自己写的struct的对象原创 2017-10-03 02:26:40 · 496 阅读 · 0 评论 -
二叉树的建立,删除,查找,插入,输出(数据结构)
1. 建立二叉树void pre_crt(tree &bt)//按先序顺序输入二叉树中节点的值,生成{ char ch; ch=getchar();//二叉树的单链表存储结构,bt为指向根节点的指针,,'$'表示空树 if(ch!='$') { bt=new node;//建根节点 bt->data=ch; pre_crt(bt->lchild); p原创 2017-08-30 18:32:25 · 1615 阅读 · 0 评论 -
遍历二叉树(数据结构,递归)
在二叉树的应用中,常常要求在树中查找具有某种特征的结点,或者对全部结点逐一进行某种处理。这就是二叉树的遍历问题。所谓二叉树的遍历是指按一定的规律和次序访问树中的各个结点,而且每个结点仅被访问一次。“访问”的含义很广,可以是对结点作各种处理,如输出结点的信息等。遍历一般按照从左到右的顺序,共有3种遍历方法,先(根)序遍历,中(根)序遍历,后(根)序遍历。先序:根、左、右;中序:左、根、右;原创 2017-08-30 16:57:59 · 368 阅读 · 0 评论 -
二叉树的存储结构(数据结构)
1. 链式存储结构即单链表结构或双链表结构(同树)。数据结构修改如下:typedef struct node;typedef node *tree;struct node{ char data; tree lchild,rchild;};tree bt;typedef struct node;typedef node *tree;struct node{原创 2017-08-30 13:37:44 · 1141 阅读 · 0 评论 -
树的存储结构(数据结构)
1. 数组,称为“父亲表示法”const int m=10;//数的节点数 struct node{ int data,parent;//数据阈,指针阈 };node tree[m]; int tree[100];tree[1]=2;//1的父亲节点为2优缺点:利用了树中除根结点外每个结点都有唯一的父结点这个性质。很容易找到树根,但找孩子时需要遍历整个线性表。原创 2017-08-30 12:50:13 · 786 阅读 · 0 评论 -
递归如何节省时间
1. 设立存储每次递归结果的数组:参考例题:http://blog.csdn.net/yanyanwenmeng/article/details/774103052. 减少不必要的步骤:参考例题:http://blog.csdn.net/yanyanwenmeng/article/details/77384789原创 2017-08-23 21:36:58 · 824 阅读 · 0 评论 -
cin scanf getchar cin.get cin.peek
参考网址:http://blog.csdn.net/cyuyanenen/article/details/51602922一、scanf scanf一般可用于读取数字、字符、字符串; 结论: (1)当 scanf 从缓冲区中读取单个字符(%c)时,若缓冲区中第一个字符是空格、tab或换行这些分隔符时,scanf 不会将其忽略,会读取并清除。 (2)当 scanf 从缓冲区中读取原创 2017-08-20 20:47:08 · 466 阅读 · 0 评论 -
分治的概念
基本思想:当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法在时间上相当长,或者根本无法直接求出。对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个问题的解法。如果这些子问题还较大,难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。这就是分治策略的基本思想。分治法原创 2017-08-21 18:27:47 · 634 阅读 · 0 评论 -
strstr函数和strchr函数
strstr函数:参考网址:http://blog.csdn.net/smf0504/article/details/51372073包含文件:string.h或cstring函数名: strstr函数原型:1extern char *strstr(char *str1, const char *str2);原创 2017-08-21 11:17:23 · 522 阅读 · 0 评论 -
pow函数的用法
参考网址:http://szshdy.blog.163.com/blog/static/132201251200910126347233/原型:extern float pow(float x, float y);用法:#include功能:计算x的y次幂。说明:x应大于零,返回幂指数的结果。原创 2017-08-20 21:56:32 · 16619 阅读 · 0 评论 -
strcmp strcpy
(一)strcmp (例题:http://blog.csdn.net/yanyanwenmeng/article/details/77434453)strcmp(字符串名1,字符串名2):比较字符串1和字符串2的大小,比较的结果由函数带回;1. 如果字符串1>字符串2,返回一个正整数;2. 如果字符串1=字符串2,返回0;3. 如果字符串1实际上,字符串原创 2017-08-20 21:33:07 · 349 阅读 · 0 评论 -
STL max_element,min_element
#includeC++ STL 求向量中的最大值和最小值min_element(v.begin(),v.end()) max_element(v.begin(),v.end()) sizeof(n)/sizeof(int)min_element 算法返回最小的元素的位置中序列 [first, last)。 max_element返回范围内值最大那个元素的迭代器,原创 2017-09-17 00:49:38 · 285 阅读 · 0 评论 -
指针与字符串
一、字符串的表示形式在 C++中,我们可以用两种方式访问字符串。(1)用字符数组存放一个字符串,然后输出该字符串。int main(){ char str[]="I love china! "; printf("%s\n",str);} (2)用字符指针指向一个字符串。可以不定义字符数组,而定义一个字符指针。用字符指针指向字符串中的字符。int main(){ ch原创 2017-09-08 21:42:29 · 536 阅读 · 0 评论 -
指针和数组
一、指针与数组的关系 指向数组的指针变量称为数组指针变量。一个数组是一块连续的内存单元组成的,数组名就是这块连续内存单元的首地址。一个数组元素的首地址就是指它所占有的几个内存单元的首地址。一个指针变量即可以指向一个数组,也可以指向一个数组元素,可把数组名或第一个元素的地址赋予它。如要使指针变量指向第 i 号元素,可以把 i 元素的首地址赋予它,或把数组名加 i 赋予它。 设有数组 a,指向原创 2017-09-08 13:28:24 · 1103 阅读 · 0 评论 -
堆
堆的定义堆结构是一种数组对象,它可以被视为一棵完全二叉树。树中每个结点与数原创 2017-10-01 22:56:02 · 241 阅读 · 0 评论 -
优先队列的使用方法(自定义排序)
参考1:http://blog.csdn.net/ac_gibson/article/details/44200411参考2:http://www.cppblog.com/shyli/archive/2007/04/06/21366.html那么何为优先队列呢,在优先队列中,元素被赋予优先级,当访问元素时,具有最高级优先级的元素先被访问。即优先队列具有最高级先出的行为特征。原创 2017-10-02 23:31:49 · 29248 阅读 · 9 评论