
ACM
文章平均质量分 84
rually
这个作者很懒,什么都没留下…
展开
-
哈希法求解百度语言翻译机
题目来源:http://www.programfan.com/acm/show.asp?qid=112#comment百度语言翻译机2006 年百度之星程序设计大赛初赛题目 6 百度语言翻译机 时限 1s 百度的工程师们是非常注重效率的,在长期的开发与测试过程中,他们逐渐创造了一套他们独特的缩率语。他们在平时的交谈,会议,甚至在各中技术文档中都会大量运用。原创 2013-02-17 19:01:48 · 1102 阅读 · 0 评论 -
经典排序算法的汇总之基数排序
经典排序算法的汇总之基数排序基数排序: 找到数组中重复元素 大小为n的数组,里面的数都属于范围[0, n-1]使用条件:数组有n个元素 每个数的取值范围:0~n-1 下面的代码是基数排序的应用,找出数列中是不是有重复元素 代码如下: void radixSort(int a[],int n){ int flag=0; while(!flag) {原创 2013-02-17 20:09:18 · 619 阅读 · 0 评论 -
rep stos dword ptr es:[edi] 是做什么的?
笔者在winDBG中反汇编一个小程序的main函数, 看到了如下的一段代码:0:000> uf . monitor!main [c:\users\myalias\documents\visual studio 2005\projects\mytest\mytest\main.c @ 32]: 32 0042f780 55 push ebp转载 2013-06-25 11:23:26 · 1132 阅读 · 0 评论 -
回溯问题简答总结与8皇后问题的应用
回溯问题的简单总结与8皇后问题的解答原创 2014-02-01 14:38:50 · 1149 阅读 · 0 评论 -
回溯问题的解答关键和程序框架
回溯问题是建立在递归的基础上的,并在解答树的基础上使用了DFS深度优先搜寻解答方案的策略,所以解答回溯问题的关键,在于寻找结束递归的边界条件,以及每一步测试当前方案是否符合题设条件。如果符合条件,进行递归向下,进行下一步的测试,否则继续试探,如果试探都结束,仍然找不到合理的解答,则推出现在所在的递归,及返回上一个递归栈帧,修改上一栈帧的值,重新测试,掌握回溯法,关键在于掌握试探的思想。原创 2014-02-01 20:44:27 · 1084 阅读 · 0 评论 -
ZOJ -027动态规划解答方法
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1027Human Gene FunctionsTime Limit: 2 Seconds Memory Limit: 65536 KB It is well known that a human gene can be considered a原创 2014-02-04 11:31:22 · 1203 阅读 · 0 评论 -
字符数组归并排序操作
两个排序好的字符数组,归并排序依然得到有序字符数组数组char * cmp(char* s1,char* s2) { char *s= (char*)malloc(sizeof(char*)*20); char *ss=s; assert(s1); assert(s2); while(*s1!='\0'&&*s原创 2014-03-15 21:42:36 · 1198 阅读 · 0 评论 -
2014川大复试c语言
问题描述:第二题10个球装入4个篮子,第一个篮子至少1个,第二个至多5个,第三个要是偶数个,第四个随便,编程求可能的情况数void search(int i) { if(i==4&&(a[1]>=1&&(a[2]>=5)&&(a[3]%2==0)&&(a[4]=10-a[1]-a[2]-a[3])>0)) { for(int j=1;j<=4;j++)原创 2014-03-17 18:54:41 · 1844 阅读 · 0 评论 -
背包问题的动态规划解法
01背包问题具体例子:假设现有容量10kg的背包,另外有3个物品,分别为a1,a2,a3。物品a1重量为3kg,价值为4;物品a2重量为4kg,价值为5;物品a3重量为5kg,价值为6。将哪些物品放入背包可使得背包中的总价值最大? 这个问题有两种解法,动态规划和贪婪算法。本文仅涉及动态规划。 先不套用动态规划的具体定义,试着想,碰见这种题目,怎么解决? 首先想到的,一般是原创 2014-09-22 12:54:24 · 1349 阅读 · 0 评论 -
经典排序算法的汇总之插入排序
经典排序算法的汇总之插入排序 插入排序 无序区并入有序曲 有序区 从最左边第一个元素开始void insertsort(int a[],int n){ int x,cnt=0; for(int i=1;i<n;i++) { x=a[i]; int j=i; while(x<a[j-1]) { a[j]=a[j-1原创 2013-02-17 20:04:15 · 521 阅读 · 0 评论 -
经典排序算法的汇总之插入排序
经典排序算法的汇总之插入排序 插入排序:选择排序 从无序区选择最小的//放到有序曲的后面void selectSort(int a[],int n) // 选择排序 从无序区选择最小的//放到有序曲end{ for(int i=0;i<n;i++) { int x=i; for(int j=i+1;j<n;j++) {原创 2013-02-17 20:02:40 · 504 阅读 · 0 评论 -
经典排序算法的汇总之希尔(shell)排序
经典排序算法的汇总之希尔(shell)排序 // shell排序 从开始的n/2为gap开始 ,从第一个数开始 每次加一个gap 直到加的gap //加到数组r右边 所以 每次也就是gap个分组 每个分组使用插入排序 void shellsort(int a[],int l,int r) { int n=r-l+1,x; int gap=n/2;原创 2013-02-17 19:59:10 · 555 阅读 · 0 评论 -
最短路径之folyd算法
Floyd算法floyd算法采用的是(松弛技术),对在i和j之间的所有其他点进行一次松弛。 If D[i,j]>D[i,k]+D[k,j] ThenD[I,j]:=D[I,k]+D[k,j];时间复杂度:为O(n^3);算法描述: a) 初始化:D[u,v]=A[u,v]b) For k:=1 to nFor i:=1 to nFor j:=1 to原创 2013-02-17 19:14:27 · 926 阅读 · 0 评论 -
递归求解kitty猫的基因编码
题目来源: http://www.programfan.com/acm/show.asp?qid=77 题目信息 :kitty猫的基因编码Problemkitty的基因编码如下定义: kitty的基因由一串长度2^k(k<=8)的01序列构成,为了方便研究,需要把,01序列转换为ABC编码。用T(s)来表示01序列s的ABC编码 T(s)=‘A'(当S全由'0'组成) T(原创 2013-02-17 19:30:26 · 2365 阅读 · 0 评论 -
经典排序算法的汇总之快速排序
经典排序算法的汇总之快速排序快速排序核心思想:,找到一个基准, 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。void quickSort(int a[] ,int l,int r){ if(l<r){ int原创 2013-02-17 19:50:59 · 669 阅读 · 0 评论 -
ACM_1001_Exponentiation 详解
http://poj.org/problem?id=1001原题如下: ExponentiationTime Limit: 500MS Memory Limit: 10000KTotal Submissions: 113486 Accepted: 27528DescriptionProblems invol原创 2013-02-17 14:54:54 · 1841 阅读 · 0 评论 -
蛇行矩阵的解法
题目来源: http://www.programfan.com/acm/show.asp?qid=72#comment蛇行矩阵Problem蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 Input本题有多组数据,每组数据由一个正整数N组成。(N不大于100) Output对于每一组数据,输出一个N行的蛇形矩阵。两组输出之间不要额外的空行。原创 2013-02-17 18:22:55 · 1331 阅读 · 0 评论 -
递归求解母牛生小牛问题
题目来源:http://www.programfan.com/acm/show.asp?qid=7#comment http://acm.tongji.edu.cn/showproblem.php?problem_id=1005 母牛生小牛原创 2013-02-17 18:40:34 · 11368 阅读 · 0 评论 -
swap的异或实现办法
swap的异或实现办法 //普通的交换元素实现办法void swap(int &a,int &b){ if(a!=b) { int temp; temp=a; a=b; b=temp; }}异或运算的实现如下: //异或运算的实质:不带进位的加法void Swap1(int &a, int &b){ a ^= b;原创 2013-02-17 19:43:26 · 2216 阅读 · 0 评论 -
经典排序算法的汇总之归并排序
经典排序算法的汇总之归并排序归并排序:归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序 void Mymerge(int *a ,int *b ,int na,int nb){ int c[20]= {0}; int ic=0,ia=0, ib=原创 2013-02-17 19:56:35 · 623 阅读 · 0 评论 -
贪心算法基本思想和代码框架
贪心法的求解过程 用贪心法求解问题应该考虑如下几个方面:(1)候选集合C:为了构造问题的解决方案,有一个候选集合C作为问题的可能解,即问题的最终解均取自于候选集合C。(2)解集合S:随着贪心选择的进行,解集合S不断扩展,直到构成一个满足问题的完整解。(3)解决函数solution:检查解集合S是否构成问题的完整解。(4)选择函数select:即贪心原创 2014-09-22 13:00:09 · 5507 阅读 · 1 评论