03 2014 档案
摘要:Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力。下面就通过示例记录一下map的使用:一、向map中插入数据1、使用pair:2、使用value_type插入3、使用数组下表插入当然使用者三种方法也不是完全一样的,简答的说就是前两种方法不能够插入第一个键值已经存在的了,而第三种方案则可以覆盖。二、求map的大小通用的size()函数三、迭代器有两种迭代器,一种是上面我们使用过的,叫做正向迭代器,另一种是反向迭代器,使用方法如下另外我们也可以不使用迭代器,橡数组一样输出,但是这样有一定局限性。。。四
阅读全文
摘要:1 /*桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。 2 比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo 3 现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币, 4 那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作*/ 5 /* 6 思路简述:这是一个贪心题,不难想到,因为能够移动的只有相邻的两个硬币,所以不管两个硬币 7 在什么位置你都必须要将他们之间的一对一对移过去(因为移了一次必然是影响两个),所以最优的 8 做法也就是.
阅读全文
摘要:杨辉三角的输出是个很简单的问题,但是这次看到一维数组的实现倒确实是难住我了一会,所以特此记录一下: 1 #include 2 #include 3 #include 4 using namespace std; 5 int main() 6 { 7 int n; 8 while(scanf("%d",&n)==1) 9 {10 int a[35];11 memset(a,0,sizeof(a));12 for(int i = 1; i 1; j--)16 {17 a...
阅读全文
摘要:所谓的出入栈问题有两种比较常见的描述:1、现在有若干个数,进行出入栈操作。要求不能进行非法的栈操作(也就是说栈为空的时候不能进行弹栈),现在给你一个总次数(当然我们知道这个必须是偶数),要求判断有多少种可能的序列。2、现有若干个数目相等的+1和-1,现在要求进行操作,也就是选择不同的顺序将他们加起来,但是要保证没一个时刻式子的值都大于零,问有多少种可能的排列顺序。 看到第二个问题我们很容易会想到这是一个数学问题,而且还肯能就是个排列组合,但是试一下我们会发现不能找到这样的公式(至少我现在还没见过)。其实这个问题是一个非常简单的动态规划问题。 首先我们可以看到,没选择下一步的时候都是使式子(第一
阅读全文

浙公网安备 33010602011771号