
算法基础知识
糖宋元明清
这个作者很懒,什么都没留下…
展开
-
c从标准输入流读取一行的的方法
int main(){ char data[1000]; while(gets(data)) { int len = strlen(data) ; printf("%s %d\n",data,len); } return 0;}原创 2018-06-28 18:15:45 · 3824 阅读 · 0 评论 -
stl-vector
#include<vector>#include<algorithm>#include<iostream>#define iter vector<int>::iteratorusing namespace std;int main(){//一。初始化 vector <int> data1(10,1);//初始化data1...原创 2019-02-26 11:57:02 · 155 阅读 · 0 评论 -
stl-string
#include<string>#include<algorithm>#include<iostream>using namespace std;int main(){//一。初始化 string str1("123456",2,2); cout<<str1<<endl; //从小标2开始,长度为2的字符,输出34//...原创 2019-02-26 11:55:50 · 309 阅读 · 0 评论 -
算法回顾
1. 二分 二分简单理解poj32582. 快速排序 hdu_14253. 搜索 (1)广搜 (2)深搜 深搜(2019CampWinterDay3A,博客链接) 广搜(三个水杯)4. std (1)set (2)map (3)string (5)vector ...原创 2019-02-15 19:19:39 · 247 阅读 · 0 评论 -
关于结构体的构造函数
为了方便结构体的初始化我们需要在结构体内写构造函数;如下:#include<stdio.h>struct node{ int x,y; node(){}; node(int a,int b) : x(a), y(b) {};};int main(){ node data[100]; //注意如果没有无参的构造函数这行代码会出错的 node a =...原创 2019-01-12 20:21:20 · 1002 阅读 · 0 评论 -
用循环不定式来证明冒泡排序的正确性
循环不定式可以用来证明一个算法的正确性:比如我现在有一个算法A,我要证明它的正确性:步骤如下:第0步:定义循环不定式;第1步:证明循环不定式在算法开始的时候是正确的;第2步:证明循环不定式在算法每次迭代(循环)的时候是正确的;第3步:证明循环不定式在算法结束时是正确的;以下是用循环不定式来证明冒泡排序的正确性:首先看代码:#include<stdio.h&g...原创 2018-09-27 23:27:48 · 2612 阅读 · 0 评论 -
关于精度的问题
在一些问题中经常会遇到一些关于精度的保留;1.要求保留小数后n位小数:代码如下#include<stdio.h>int main(){ double num = 1.123456789; int n = 6; printf("%0.*lf\n",n,num); //1.123457 return 0;}注意,他会在小数点第n+1位四舍五入;2.要求截取小数后n位,也...原创 2018-07-15 16:14:10 · 633 阅读 · 0 评论 -
stl-二分找上下界
下面介绍两个函数用来查找一个有序序列关键字的上下界upper_bound返回第一个大于的元素的下标;lower_bound返回第一个大于或等于元素的下标;代码如下:#include<stdio.h>#include<algorithm>using namespace std;int main(){ int data[10] ={0,1,1,2...原创 2018-07-14 17:17:28 · 240 阅读 · 0 评论 -
位运算及常用的功能
注:在涉及到位运算时,一定要注意位运算的优先级。该加的括号一定要加在计算机中,cpu只能接受二进制的数据和指令;接下来就学习一下二进制的运算——位运算二进制的运算有:按位与 &按位或 |按位异或 ^按位取反 ~左移<<右移>>A B A&B A|B A^B 0 0 0 ...原创 2018-07-13 11:21:12 · 2686 阅读 · 5 评论 -
stl-map
map:map的功能:自动建立Key - value的对应。key 和 value可以是任意你需要的类型。根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,000,000个记录,最多查找20次。快速插入Key -Value 记录。快速删除记录根据Key 修改value记录。遍历所有记录。#include<stdio.h>#includ...原创 2018-07-10 10:01:44 · 467 阅读 · 0 评论 -
stl-set
set是一个能储存单键的容器;它最大的特性就是那个键最多出现一次;一set有很多操作1.构造2.插入3.遍历4.查找和读取5.删除#include<stdio.h>#include<string.h>#include<string>#include<algorithm>#include<iostre...原创 2018-07-10 21:21:20 · 411 阅读 · 1 评论 -
关于数据对拍
数据对拍是一种通过找到错误输出数据寻找bug的方法;首先,我们可以跟据题意通过bfs,暴力等方法写出一份正确的代码,然后写个随机生成数据和验证输入输出的代码我们可以拿一道题来熟悉这个流程:路径规划(route)题意很好理解,就是给出起点,和终点,求出起点到终点的所需的步数,其中上下左右,斜着走八个方向都算一步;大致思路就是,优先斜着走,因为斜着走即在水平方向有位移,在竖直方向也...原创 2019-03-10 18:54:26 · 636 阅读 · 0 评论