10 2011 档案
摘要:题目:数组中有 n 个数据,要将它们顺序循环向后移 k 位,即前面的元素向后移k位,后面的元素则循环向前移k位,例:0,1,2,3,4 循环移3位后为2,3,4,0,1。 解题思路:这道题解题方法有很多,后移让我想到了队列,因为是先进先出,n 个数据后移 k 位就可以当成前 n-k 个数据依次出队后又依次入队,从队头出进入队尾。然后再依次输出队列中的元素即为最终移后各元素的位置。因此可以运用队列来解这道题。注意:当k>n时,应先进行取摸运算k=k%n,也是一个简化过程。代码如下:View Code 1#include<iostream>2#include<queue>3
阅读全文
摘要:题目:求 n次二项式各项的系数,已知二项式的展开式为: 解题思路: 如果直接用上面的公式去计算,计算量很大,当 n 比较大时,算法因时间效率太低。有一个数学常识:各阶多项式的系数,成杨辉三角形的规律,具体如下所示: ( a+b )0 1 ( a+b )11 1 ( a+b )2 1 2 1 ( a+b )3 1 33 1 ( a+b )4 1 4 6 4 1 ( a+b )5 …… 以这个知识为基础,求 n 次二项式的系数的数学模型就是求 n+1 阶杨辉三角形,l算法设计:¡第i层有i-2个数据需要计算(a[1]=a[i]=1)¡1个一维数据存放已经算出的一行数据¡
阅读全文
摘要:解题思路:题意让求买下所有种类的珍珠的最小花费,注意题中明确说明为了防止旅游者仅买一颗珍珠,必须额外的买10颗该种类的珍珠。为了减小开销,可以买比该种类质量高的珍珠代替,从题中的例子可以看出。求解本题要用到动态规划,用dp[i] 表示买前 i 类珍珠所需要的最小花费,则递推关系式为:dp[i]=min( p[i]*( a[i]-a[j]+10 ) + dp[j], k ),其中a[i] 表示前 i 种类珍珠的总个数,而 k 初始化为无穷大。代码如下:View Code 1#include<iostream>2#include<cstring>3usingnamespac
阅读全文
摘要:编写算法:根据参数n打印具有下面规律的图形,如,当n=4时,图形如下: 1 52 863 10974 问题分析:容易发现图形中数据排列的规律。 方法一: 先用一个数组按此顺序存储数据,再正常输出;用斜行、列描述新的循环方向。 斜行i取值(1~n) 列j取值(1~n+1-i)关键问题:第i斜行、j列的数据对应于第几行第几列的元素斜[1,1]—a[1,1] 斜[2,1]—a[2,1] 斜[3,1]—a[3,1] 斜[4,1]—a[4,1]斜[1,2]—a[2,2] 斜[2,2]—a[3,2] 斜[3,2]—a[4,2]斜[1,3]—a[3,3] 斜[2,3]—a[4,3] 斜[1,4...
阅读全文

浙公网安备 33010602011771号