逆波兰表达式 定义:传统的四则运算被称作是中缀表达式,即运算符实在两个运算对象之间的。逆波兰表达式被称作是后缀表达式,表达式实在运算对象的后面。 逆波兰表达式: a+b —> a,b,+ a+(b-c)…
分类:算法
TSP问题的模拟退火解法
TSP问题的模拟退火解法 产生测试数据 import random as rd n=eval(input('城市数量:')) res=[] for i in range(1,n): for j in range(i+1,…
贪心算法求解存放磁带问题(vector数组键盘输入,C++sort函数)
问题描述:设有n个程序{1,2…n}要存放在长度为L的磁带上。每个程序都有自己存放的所需要的长度,问怎么能存放更多的程序? vector和sort真是好用啊~。 输入实例: 6 50 //6代表多少个程序,5…
后缀数组代码理解加注释
一段三四十行的代码却看了一个下午,仿佛又回到了刚学C语言的时候,终于看懂了,写下注释,晚上写题。 后缀数组是用来在线处理模式串匹配问题的算法,比如有一个文本串aabaaaab,我们求出一个sa数组,sa[i] = x表示…
《剑指offer》-求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号
/* * 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 * 思路:不能使用四则运算,就只剩下位运算了。例如17+5 * 17转化成二进制10001,5转化成二进制0101。 * 首先不考…
hdu 4714 (树形dp)
题意:给一棵树,删除一条边和增加一条边代价都是1,问把所有节点连成环,最少的代价。 思路:可以将树删成ans+1条链,答案就是ans+ans+1。如果一个节点的分支数大于1的话,就把该点与父节点的边删点,该节点形成的链数…
关于递归和迭代
首先明确递归和迭代的概念。 递归:程序调用自身的编程技巧(将大问题化解为相同结构的小问题,从待解问题一直分解到已知答案的最小问题,在逐级返回得 &nbs…
贪心算法-哈夫曼编码
《算法导论》引理16.2:令C为一个字母表,其中每个字符c属于C都有一个频率c.freq。令x和y是C中频率最低的两个字符,那么存在C的一个最优前缀码,x和y的码字长度相同,且只有最后一个二进制位不同。(证明问题具有贪心…
求素数的几个方法
#define N 100000000 求1~N中的素数个数; // 方法一: 直接判断n是否为素数 n为正整数</span> bool IsPrime1(int n) // 在VS2010中运行时间为239…
lintcode落单的数|||
题目: 给出2*n + 2个的数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字。 样例: 给出 [1,2,2,3,4,4,5,3],返回 1和5 答案: public class Solution { /*…
插值法 数值分析
在本章介绍一下数值分析里的插值法,分为Lagrange插值和Newton插值。 引述:在很多时候我们都会遇到这样类似的问题,飞机失事后将会坠落在哪里,卫星太空飞船返航会坠落在哪里,,等等类似的问题。将其抽象成数学问题,就…
Merge k Sorted Lists 的分治法总结
合并k个排序链表,并且返回合并后的排序链表。 样例 给出3个排序链表[2->4->null,null,-1->null],返回 -1->2->4->null 一.…