
算法
文章平均质量分 69
楼上小宇
more AC, more happy!!!
展开
-
RMQ算法
1. 概述RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j当然,该问题也可以用线段树(也叫区间树)解决,算法复杂度为:O(N)~O(logN),这里我们暂不介绍。2.RMQ算法对于该问题,最容易想到的解决方案是遍历,复杂度是O(n)。但当数据量非常大转载 2015-01-28 11:09:45 · 526 阅读 · 0 评论 -
二叉树的建立与遍历
前言### 建立### 前序遍历### 中序遍历### 后序遍历### 层次遍历### 求二叉树深度- ### 求二叉树宽度二叉树的建立与遍历code#include<stdio.h>#include<malloc.h>#include<iostream>using namespace std;typedef struct BTNode{ char data;原创 2016-09-16 23:15:58 · 620 阅读 · 0 评论 -
根据年月日计算星期几 (蔡勒公式)
//蔡勒公式计算输入年月日,求该天是星期几#includeint main(){ int year,month,day; while(scanf("%d%d%d",&year,&month,&day)!=EOF) { if(month == 1||month == 2)//判断month是否为1或2 { year--; //某年的1、2月要看作上一年的13、14月原创 2015-03-06 20:36:22 · 1646 阅读 · 0 评论 -
已知二叉树的后序/前序遍历和中序遍历,求前序/中序遍历
前序遍历: 1.访问根节点 2.前序遍历左子树 3.前序遍历右子树 中序遍历: 1.中序遍历左子树 2.访问根节点 3.中序遍历右子树 后序遍历: 1.后序遍历左子树 2.后序遍历右子树 3.访问根节点一.用后序遍历和中序遍历求前序遍历 从遍历的定义可知,后序排原创 2015-04-06 19:14:16 · 934 阅读 · 0 评论 -
c++中字符数组与字符串的转换
1:字符数组换为字符串#include #include using namespace std;int main(){ char a[10]="aaaabbbba"; string s(&a[0],&a[strlen(a)]); cout<<s<<endl; system("pause");}2:把字符串转换为字符数组见代码原创 2015-03-14 23:24:57 · 1438 阅读 · 0 评论 -
动态规划之01背包
动态规划之01背包原创 2015-02-11 21:46:18 · 777 阅读 · 0 评论 -
由rand7生成rand10以及随机数生成方法的讨论
ZZ 毕达哥拉斯半圆问题:rand7是一个能生成1-7的整数随机数。要求利用rand7生成1-10的整数随机数。可以参看原帖。在lz提示下又找到了更简洁的方法,同余循环法,只需要一行代码!我很浅的探讨几种方法,还需要更深入的学习。感慨一下知识的浩瀚和自己的渺小。1.组合数学方法我在帖子里给出了这样的方法,这个很简单的算法,却似乎不那么容易被理解。第1次 1转载 2015-02-10 15:00:18 · 759 阅读 · 0 评论 -
一道经典的面试题:如何从N个数中选出最大(小)的n个数?
一道经典的面试题:如何从N个数中选出最大(小)的n个数?北京交大LuoBin这个问题我前前后后考虑了有快一年了,也和不少人讨论过。据我得到的消息,Google和微软都面过这道题。这道题可能很多人都听说过,或者知道答案(所谓的“堆”),不过我想把我的答案写出来。我的分析也许存有漏洞,以交流为目的。但这是一个满复杂的问题,蛮有趣的。看完本文,也许会启发你一些没有想过的解决方案(我一直认转载 2015-02-10 15:32:07 · 868 阅读 · 0 评论 -
大数运算之大数乘法
关于大数运算的乘法运算,无疑还是采用字符串的输入,然后进行反转字符串,最后进行进位运算即判断数是否大于等于10,是的话则进一位。然后判断最高位所在的位置,进行输出。直接上代码,水平有限,目前只能写出这种水平的了,多多指教/* Name: 大数乘法 Copyright: Author: sty Date: 15/2/7 Description: */#i原创 2015-02-07 11:26:43 · 772 阅读 · 0 评论 -
矩阵构造方法与矩阵乘法
矩阵乘法(百度百科) 矩阵乘法是一种高效的算法可以把一些一维递推优化到log( n ),还可以求路径方案等,所以更是是一种应用性极强的算法。矩阵,是线性代数中的基本概念之一。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。由于它把许多数据紧凑的集中到了一起,所以有时候可以简便地表示一些复杂的模型。矩阵乘法看起来很奇怪,但实际上非常有用,应用也十分广泛。基本定义原创 2015-02-08 15:56:34 · 864 阅读 · 0 评论 -
ACM算法分类
相信每一位玩ACM程序设计竞赛的同学来说,都有一个从入门到精通的过程,而且分享他们经验的时候,见到最多的就是一种合作和拼搏精神,乐在其中的那种激情。 Wilbert即将毕业,作为一个菜鸟级的入门玩家,一直很想知道如何能在程序设计竞赛中成为一个高手。即将无缘类似竞赛的我,终于整理出了一些程序设计竞赛ACM训练之道,愿与大家分享。 首先是编程的能力,一般要做到50行以内的程序不用调转载 2015-02-01 15:53:09 · 868 阅读 · 0 评论 -
acm算法练习
OJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094) 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法转载 2015-02-01 16:23:18 · 821 阅读 · 0 评论 -
深入理解递归函数的调用过程
下面是个关于递归调用简单但是很能说明问题的例子:/*递归例子*/#includevoid up_and_down(int);int main(void){ up_and_down(1); return 0;}void up_and_down(int n){ printf("Level %d:n location %p/n",n,&n); /* 1 */ if(n<转载 2015-01-28 21:09:56 · 543 阅读 · 0 评论 -
poj pku图论、网络流入门题总结、汇总(转)
POJ 2449 Remmarguts' Date(中等)http://acm.pku.edu.cn/JudgeOnline/problem?id=2449题意:经典问题:K短路解法:dijkstra+A*(rec),方法很多相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144该题亦放在搜索推荐题中转载 2015-01-28 12:42:50 · 1001 阅读 · 0 评论 -
快速幂取模算法
在网站上一直没有找到有关于快速幂算法的一个详细的描述和解释,这里,我给出快速幂算法的完整解释,用的是C语言,不同语言的读者只好换个位啦,毕竟读C的人较多~所谓的快速幂,实际上是快速幂取模的缩写,简单的说,就是快速的求一个幂式的模(余)。在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快、计算范围更大的算法,产生了快速幂取模算法。[有读者反映在讲快速幂部分时有点含糊,所以在这里对转载 2015-01-28 10:21:43 · 1121 阅读 · 1 评论 -
决定换一个新的博客(blog.youkuaiyun.com/sty945)
发现现在的这个博客的用户名一直改不了,看起来太不舒服了,所以决定换一个博客账号,当前账号以后不再更新新博客地址如下:blog.youkuaiyun.com/sty945点击切换原创 2017-11-19 10:21:26 · 1031 阅读 · 0 评论