2012年3月7日
摘要: priority_queue是很有用的的一个容器,你可以定义以什么为优先.所以你可以定义方法,也就是一个函数类对象,C++中有一个<fanction>里面定义了一些方法 如:less<class T> 这是按值大的优先 greater<class T>这是按值小的优先,priority_queue<class T, class comp=less< class Y>> 默认的是以大为先, 方法有 push() , pop(), empty(), front().等等#include <iostream>#include & 阅读全文
posted @ 2012-03-07 12:11 万里心晴 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 第一种做法:N!=1*2*3....*n求位数我们一般用对一个数取对数就可以了 ,log10(n!)=log10(1)+ log10(2) +log10(3)...+log10(n);所以循环求和就可以了!但是这里注意一点 结果要加1!因为这里计算出来的 log10(1)=0 !所以结果要加上这个误差 ‘1’第二种做法:这就是我最近研究的斯特林数,第一类斯特林数就可以做这个!补充一点,斯特林数能够做一切关于阶乘有关的大数运算 要深入学习!这里给出递归公式:log10(n!)=1.0/2*log10(2*pi*n)+n*log10(n/e)第一类做法:#include<iostream&g 阅读全文
posted @ 2012-03-07 10:30 万里心晴 阅读(329) 评论(0) 推荐(0) 编辑
  2012年3月6日
摘要: Problem DescriptionStandard web browsers contain features to move backward and forward among the pages recently visited. One way to implement these features is to use two stacks to keep track of the pages that can be reached by moving backward and forward. In this problem, you are asked to implement 阅读全文
posted @ 2012-03-06 14:13 万里心晴 阅读(157) 评论(0) 推荐(0) 编辑
摘要: Problem Description在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?已经告诉你了,这是个DP的题目,你能AC吗?Input输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔,其中第i行有个i个整数,且所有的整数均在区间[0,99]内。Output对于每个测试实例,输出可能得到的最大和,每个实例的输出占一行。Sample Input1 5 7 3 8 阅读全文
posted @ 2012-03-06 10:32 万里心晴 阅读(1148) 评论(0) 推荐(0) 编辑
摘要: Problem DescriptionAdam and Eve enter this year’s ACM International Collegiate Programming Contest. Last night, they played the Calendar Game, in celebration of this contest. This game consists of the dates from January 1, 1900 to November 4, 2001, the contest day. The game starts by randomly choosi 阅读全文
posted @ 2012-03-06 08:56 万里心晴 阅读(170) 评论(0) 推荐(0) 编辑
  2012年3月4日
摘要: Problem DescriptionFor each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we want to know whether the prefix is a periodic string. That is, for each i (2 <= i <= N) we want to know the largest K > 1 (if there is one) such that 阅读全文
posted @ 2012-03-04 13:50 万里心晴 阅读(180) 评论(0) 推荐(0) 编辑
  2012年2月29日
摘要: 其他人写的分析:Slyar:题意理解起来比较难,看了10几分钟才明白...大意就是把字符串按字母分成3组,[a-i]一组,[j-r]一组,[s-z]以及其他字符一组,然后给出了3个整数表示每组内的轮换间隔,让你在各组内分别旋转...哎,自己多看看就明白了。理解了题意这题就没什么难度了,继续练习STL,这次使用了vector,很爽。我的代码注释很详细,算法我就不说了。# include <iostream># include <vector># include <string>using namespace std;int main(){ int k1, k2 阅读全文
posted @ 2012-02-29 14:45 万里心晴 阅读(250) 评论(0) 推荐(0) 编辑
  2012年2月26日
摘要: Problem Description一年在外 父母时刻牵挂春节回家 你能做几天好孩子吗寒假里尝试做做下面的事情吧陪妈妈逛一次菜场悄悄给爸爸买个小礼物主动地 强烈地 要求洗一次碗某一天早起 给爸妈用心地做回早餐如果愿意 你还可以和爸妈说咱们玩个小游戏吧 ACM课上学的呢~下面是一个二人小游戏:桌子上有M堆扑克牌;每堆牌的数量分别为Ni(i=1…M);两人轮流进行;每走一步可以任意选择一堆并取走其中的任意张牌;桌子上的扑克全部取光,则游戏结束;最后一次取牌的人为胜者。现在我们不想研究到底先手为胜还是为负,我只想问大家:——“先手的人如果想赢,第一步有几种选择呢?”Input输入数据包含多个测试用 阅读全文
posted @ 2012-02-26 17:03 万里心晴 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 1 # include <stdio.h> 2 3 int main() 4 { 5 int n; 6 int a, b; 7 scanf("%d", &n); 8 while (n--) 9 {10 scanf("%d %d", &a, &b);11 if (a % (b + 1) == 0)12 printf("Rabbit\n");13 else14 printf("Grass\n");15 }16 17 return 0;1... 阅读全文
posted @ 2012-02-26 16:28 万里心晴 阅读(136) 评论(0) 推荐(0) 编辑
摘要: Problem Description虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没有拿到奖学金。现在等待他的,就是像FarmJohn一样的农田生涯。要种田得有田才行,Lele听说街上正在举行一场别开生面的拍卖会,拍卖的物品正好就是一块20亩的田地。于是,Lele带上他的全部积蓄,冲往拍卖会。后来发现,整个拍卖会只有Lele和他的死对头Yueyue。通过打听,Lele知道这场拍卖的规则是这样的:刚开始底价为0,两个人轮流开始加价,不过每次加价的幅度要在1~N之间,当价格大于或等于田地的成本价 M 时,主办方就把这块田地卖给这次叫价的人。Lele和Yueyue虽然考试不行 阅读全文
posted @ 2012-02-26 16:19 万里心晴 阅读(147) 评论(0) 推荐(0) 编辑