基础
文章平均质量分 61
Yoangh
奋斗的小程序猿
展开
-
hdoj 1544 Palindromes
PalindromesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1062 Accepted Submission(s): 460Problem DescriptionA regular palin原创 2013-05-18 11:10:37 · 1014 阅读 · 0 评论 -
hdoj 4923 Room and Moor
题目:hdoj 4923 Room and Moor 来源:2014 Multi-University Training Contest 6题意:给出一个只有1和0组成的序列A,让你构造一个递增的序列B,满足让 求和(AI-BI)^2 尽可能的小。分析:分析发现,前面连续的0和后面连续的1是不影响结果的,而对于某一段,我们假设1的个数为x,0的个数为y,我们原创 2014-08-08 13:39:41 · 1094 阅读 · 0 评论 -
Codeforces Round #264 (Div. 2) C Gargari and Bishops 【暴力】
题目:题意原创 2014-08-31 09:26:48 · 1251 阅读 · 0 评论 -
快速排序算法sort分析
快速排序的思想是分治法的思想。一般是按照这个序列的首元素为 mid 基准,把比比mid大的元素放在后面。比 mid 小的元素放前面。然后依次递归,把在 mid 前面的所有元素当成一个新的序列进行刚才的操作,在mid后面的元素看成一个新的序列也进行这样的操作,直到这样得到的序列为一个元素。则排序完成。当然为基准的元素不一定非要是1:首元素,也可以选2:末尾元素,或者3中间位置元素,4取首、末原创 2015-01-03 21:14:15 · 1519 阅读 · 1 评论 -
C++中文件的读出及写入
1>在C语言中,我们都知道怎样直接用txt文件输入以及把输出结果直接输出到文件中。写法很简单: freopen("Input.txt","r",stdin); freopen("Output.txt","w",stdout);是调一个通用的函数freopen,在头文件中,这个函数有三个参数,第一个表示读入或者输出文件的文件名,第二个有两个可选参数,“w”表示write,即写入原创 2015-03-10 17:27:15 · 22478 阅读 · 0 评论 -
排序算法—快速排序
首先快速排序,数据结构学完之后,把一些排序只是懂思想,一直没有实现,今天花时间实现了一下 快速排序的思想就是每次从一段中随机选一个数,把这一段中比它小的元素放在这个元素的前面,比它大的放在其的后面,然后运用分治的思想,在分别对以当前元素分开的两端分别进行这样的操作,递归即可,因为每次选择一个数是随机的,所以不太稳定,但是综合下来速度还是令人满意的 在hdoj上面测试了一下,和调用STL库函数的效原创 2015-05-16 11:56:40 · 1427 阅读 · 0 评论 -
排序算法-归并排序
归并排序也是一个比较快速的排序算法,其思想是运用分治的思想,先对要排序的数进行分,每次从中间分成两部分,然后知道分成最小,然后在把他们合起来,边合起来边排序,最后有序,每次分的复杂度是log(n),然后合起来变成有序的复杂度O(n),总的复杂度O(n*logn),速度比较快,但是每次合并要占用额外O(n)的空间,如果用链表实现的话可以避免,同时归并排序可用来求逆序对。比如给这样一组数 3 5 2原创 2015-06-19 07:56:24 · 1714 阅读 · 0 评论 -
排序算法-堆排序
堆排序算法是建立在堆这种数据结构的基础上,其实堆听着很高端,其实很简单,就是一个二叉树,但是又特殊条件,就是其父节点比孩子节点都大(或都小)的堆称为最大堆(最小堆),瞬间感觉很简单了,最简单的保存方法就是直接用数组来保存。 给出一组数,我们要使用堆排序,首先需要建堆,但是这一组数首先肯定是不满足上面堆的性质的,所以我们需要调整,让他满足堆得性质,变成一个堆,怎么调整呢?拿最大堆来说,就是对于一个节原创 2015-06-22 21:29:11 · 2335 阅读 · 0 评论 -
C++编译机制(vc++)
2015年9月10日早上10点,面试京东数字营销业务部机器学习系统架构工程师,二面挂在了C++编译机制上面,当然自己平时没有了解过这方面的东西,挂了也算是理所当然。网上这方面的资料不多,但是有一本翻译过来的好书, C++ Under The Hood 这本书里面详细的介绍了C++的编译机制,有兴趣的可以在这里看中译本面试官首先问我最近都看什么技术方面的书? 答:平常看C++的书也比较多,就原创 2015-09-14 15:25:01 · 1810 阅读 · 0 评论 -
TCP/IP实现以及常见问题
三次握手连接建立其实看图会发现其实是很简单的一个过程首先,Client会发送一个SYN包,简单情况是SYN发送成功了,然后Client会把这个连接的Socket放入一个Socket等待队列,是Client这边维护的一个队列,,但是如果这里发送失败了,Server如果不给回复,它会按这个间隔去重新发送,3、6、12、24…重试十几次,会返回一个Connect Time out第二步,Server收原创 2015-11-02 21:01:19 · 1405 阅读 · 0 评论 -
随机数生成
给oj出题目或者自己验证自己代码正确性的话会用到随机数。这里就把一个常用的随机数模板贴在这里,备以后出题目或者测试代码的时候用!#include #include #include int n=100,m=10; //数据范围double random() //生成介于0-1之间的随机数{ return (double)rand() / RAND_MAX;}i原创 2014-02-22 11:00:31 · 1964 阅读 · 0 评论 -
foj 1055 赋值问题 &&1723 我就不信你能找得到 &&1063 三维扫描
Problem 1055 赋值问题Accept: 1255 Submit: 6950Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description在很多程序设计语言中,忘记给变量赋初值的错误常令人头疼。请编程求出含N(0≤N≤100)行的程序段运行以后有哪些变量中有确定的值。 在下面的问原创 2013-06-12 20:45:12 · 2174 阅读 · 0 评论 -
文件操作
#include #include #include int main(){ int T; //读到磁盘文件的组数 FILE *fp; char ch; char str[30]; if((fp=fopen("D:\\progream\\exam.txt","a+"))==NULL) { printf("\nnorror o原创 2013-06-07 20:36:34 · 827 阅读 · 0 评论 -
Uva oj (算法入门经典) 排序与检索系列水题系列
Uva10420 - List of Conquests 题意就是首先给出一个n,表示字符的行数,下面n行字母,开头一个单词国家名字,后面一串人名,要你统计出每个国家人出现的次数,并按字母序输出。 用map容器写的,map容器本身的特性,很好用,代码:#include #include #include #include using namespace std;int main原创 2013-07-08 17:57:38 · 1638 阅读 · 0 评论 -
c语言计算几何系列题、
1:判断一个点在一条直线的那一侧。假定给出的一条直线AB。A(x1,y1),b(x2,y2 ) ,另外给出一个点C(x3,y3),判断点在直线的那一侧。只需判断向量的数乘AB x AC=|AB|*|AC|sina。所以判断在那一侧转化为求sina与0的大小问题,在转化为AB x AC与0的大小问题,则AB =(ax=x2-x1;ay=y2-y1)AC= ( bx=x3-x1;by=原创 2013-07-10 10:07:26 · 2513 阅读 · 0 评论 -
c语言课程设计
c课程设计————图书管理系统 通信一班杨闯亮的。先勿抄袭#include #include #include struct book{ int num; char bname[50]; char wname[20]; char press[50]; char sort[50]; int time; float price; struct book *原创 2013-06-23 10:25:05 · 6925 阅读 · 0 评论 -
C++流类库与输入输出
流是c++中的输入输出的抽象。1:输出流a:控制输出的宽度。width()函数 cout.width(10); //width函数控制输出宽度 cout.fill('*'); //制定宽度不够的地方添加星号b:setw()函数,头文件 coutsetw和width都不断的截取数值,如果数值位超过了制定宽度,将全部输出。还有原创 2013-07-20 17:13:43 · 3375 阅读 · 0 评论 -
HDOJ 2736 Surprising Strings
Surprising StringsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 294 Accepted Submission(s): 209Problem DescriptionThe D-pai原创 2013-09-05 17:35:22 · 1641 阅读 · 2 评论 -
欧几里得定理(nyoj775)
A了一道题目,深入学习了一下欧几里得定理,记录一下:我们平常了解的欧几里得定理就是求两个数最大公约数。求最大公约数的定理是:设a,b是任意两个正整数,则gcd(a,b)=Rn,其中Rn是广义欧几里得除法中最后一个非零余数。算法描述int gcd(int x,int y){ int t=x%y; while(t) { x=y;原创 2013-09-23 16:49:52 · 2015 阅读 · 0 评论 -
二分查找模板 nyoj626
题意就是给你两串数组,找其中相同数字的个数,二分查找模板题,可以有其他简单方法:贴二分查找代码: #include #include #include using namespace std;int a[50010],b[50010];bool search(int x,int *p,int len) //二分查找{ int left=0,right=len-1原创 2013-04-07 09:22:44 · 3361 阅读 · 0 评论 -
Octave语法学习记录
数组和指针的区别数组直接从存储区获取,而指针需要先获取指针直线地址,然后去地址通过偏移量拿实际值,相当于指针保存数据的地址数组存储栈区,而指针存储在堆区是的本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Ma原创 2017-04-06 18:01:06 · 4163 阅读 · 0 评论