`
Touch_2011
  • 浏览: 287185 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论
文章列表
博客地址: http://blog.csdn.net/touch_2011/article/details/6831924
/* 2011第二届国信蓝点杯全国软件专业人才设计与开发大赛 2011第二届国信蓝点杯全国软件专业人才设计与开发大赛选拔赛试题-Java语言高职组最后一题题: A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛, ...
/* 整数的划分问题。 如,对于正整数n=6,可以分划为: 6 5+1 4+2, 4+1+1 3+3, 3+2+1, 3+1+1+1 2+2+2, 2+2+1+1, 2+1+1+1+1 1+1+1+1+1+1+1 现在的问题是,对于给定的正整数n,编写算法打印所有划分。 用户从键盘输入 n (范围1~10) 程序输出该整数的所有划分。 */ #include<stdio.h> #include<string.h> //计算划分种数 int divideNumber(int n,int m) { if(m== ...
/* * 几种排列组合的算法 */ #include<stdio.h> int a[20]; int n; //打印数组 void showArray(int *a) { int i; for(i=1;i<=n;i++) printf("%d",a[i]); printf("\n"); } //翻转法 void overturn() { int i,temp,temp1,temp2,j; int b[20]; for(i=1;i<=n;i++) ...
这是C语言选拔赛最后一题,题目如下:     /* * c语言竞赛初赛本科最后一题 */ #include<stdio.h> #include<string.h> //矩阵 char matrix[5][5]; //存储26个字母在矩阵中的行号和列号,不在矩阵中行列号均为-1 int charSite[26][2]; //填充matrix矩阵 void init() { int i,j,k=0,len; char str[26]; gets(str); len=(int)strlen(str); for( ...
1.基本思路: a.顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。 b.贪心算法一般可以先做一个排序,然后选择。 2.例题: (1)迪杰斯特拉算法求最短路径
1、             基本思想 将一个问题分解为子问题递归求解,且将中间结果保存以避免重复计算。通常用来求最优解,且最优解的局部也是最优的。求解过程产生多个决策序列,下一步总是依赖上一步的结果,自底向上 ...
1.递归的思想: 设计一个递归函数,明确这个递归函数的定义,在这个函数里面反复调用自己从而求出问题的解。递归很多时候用于求有多少种解法的题目:这时要分清有多少种情况,然后把每一种情况产生的解的个数相加。 2.例题分析 (1)放苹果:M个同样的苹果放N个同样的盘子,允许有盘子空着, 问有多少种放法。注意:5 1 1和1 5 1是同一种放法      分析:分两种情况:a.至少有一个盘子为空,此时放法种数与减去这个空盘子的放法种数相同。b.所有盘子都不为空,此时可以从每个盘子里拿掉一个苹果而不影响放
1、分治法思想: 将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。 2.分治法特征: 1) 该问题的规模缩小到一定的程度就可以容易地解决 2) 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质。 3) 利用该问题分解出的子问题的解可以合并为该问题的解; 4) 该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子子问题。 上述的第一条特征是绝大多数问题都可以满足的,因为问题的计算复杂性一般是随着问题规模的增加而增加;第二条特征是应用分治法的前提它也是大多数问题可以满足的,此特征反映了递归思想的应用;第三条特征是关键, ...
  1、回溯法的基本思想 (1)在确定解空间的组织结构后,回溯法从开始结点(根结点)出发,以深度优先方式搜索整个解空间。这个开始结点成为活结点,同时也成为当前的扩展结点。 (2)在当前扩展结点处,搜索向纵深方向移至一个新结点。这个新结点成为新的活结点,并成为扩展结点。 (3)如果在当前扩展结点处不能再向纵深方向移动,则当前扩展结点就成为死结点。此时,应往回移动(回溯)到最近的活结点处,并使该结点成为当前的扩展结点。 (4)回溯法按上述方式递归地在解空间中搜索,直到找到所要求的解或返回至根结点为止。
1.大整数加法 2.大整数减法 3.大整数乘法 4.大整数除法(通过不断的做减法) 5.麦森树 具体解析看图片附件
1.描述      有些问题难以找到公式或规律来解决,可以按照步骤,模拟人的解决行为,一步一步往下走就能找到答案。 2.实例分析    (1)(北大考研机试)一根长度为1米的木棒上有若干只蚂蚁在爬动。它们的速度为每秒一厘米或静止不动,方向只有两种,向左或者向右。如果两只蚂蚁碰头,则它们立即交换速度并继续爬动。三只蚂蚁碰头,则两边的蚂蚁交换速度,中间的蚂蚁仍然静止。如果它们爬到了木棒的边缘(0或100厘米处)则会从木棒上坠落下去。在某一时刻蚂蚁的位置各不相同且均在整数厘米处(即1,2,3
/* * 题目描述:有一个农夫,带着一只狼、一只羊、一颗白菜过河。其中农夫不在的时候狼会吃羊, * 羊会吃白菜。只有一只船,且每次农夫最多只能带一样物品过河。求解决方案。 * * 思路:1. 过程回溯法。把人、狼、羊、白菜看成A、B、C、D。过河的时候从ABCD中选两个过河,在 * 选一个回来。若发生狼跟羊、羊跟白菜在同一个岸边,且农夫不在场,则回溯. * * 2. 图的遍历。设从南岸到北岸,在南岸ABCD的各个状态是(用二进制表示):0000,在 * 北岸的时候各个状态是:1111。所以过河问 ...
;搜索数组,看是否存在CONST DATA SEGMENT ARRAYB DB 2,3,1,8,7FH,-5 COUNT EQU $-ARRAYB ;数组长度 CONST EQU 7FH ;判断数组中是否存在此元素 ADDRES DD 0 ;若存在,存放元素的地址 SCANTIME DW 0 ;若存在,存放搜索次数 DATA ENDS STACK SEGMENT DW 100H DUP(?) STACK ENDS CODE SEGMENT ASSUME SS:STACK,DS:DATA,CS:CODE MAI ...
/* * 各种基本排序算法实现(以由小到大为例) */ #include<stdio.h> #define ARRAY_LENGTH 50 //插入排序 void inseartSort(int a[],int length) { int i,j,index,temp; for(i=0;i<length;i++){//数组a中元素逐个有序插入数组a for(j=0;j<i;j++) //寻找第i个元素的插入位置 if(a[i]<a[j]) break; index=j; temp=a[i]; ...
Global site tag (gtag.js) - Google Analytics