摘要: Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.Note: You can only move either down or right at any point in time.思考:DP方程:dp[i][j]=grid[i][j]+min(dp[i-1][j],dp[i][j-1])。class Solution {public: int... 阅读全文
posted @ 2013-11-23 17:34 七年之后 阅读(161) 评论(0) 推荐(0) 编辑
摘要: Implement regular expression matching with support for '.' and '*'.'.' Matches any single character.'*' Matches zero or more of the preceding element.The matching should cover the entire input string (not partial).The function prototype should be:bool isMatch(const ch 阅读全文
posted @ 2013-11-23 15:23 七年之后 阅读(155) 评论(0) 推荐(0) 编辑
摘要: Write a function to find the longest common prefix string amongst an array of strings.思考:依次比较字符串的第i个字符,不同退出循环。class Solution {public: string longes... 阅读全文
posted @ 2013-11-23 14:47 七年之后 阅读(176) 评论(0) 推荐(0) 编辑
摘要: Givens1,s2,s3, find whethers3is formed by the interleaving ofs1ands2.For example,Given:s1="aabcc",s2="dbbca",Whens3="aadbbcbcac", return true.Whens3="aadbbbaccc", return false.class Solution {private: bool f[1000][1000];public: bool isInterleave(string s1, str 阅读全文
posted @ 2013-11-23 13:37 七年之后 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 描述给出一初始序列a1, a2,...,an,下面有m个操作(x, l, r) : 对于a[l], a[l+1],...,a[r]都加上x. 输出m个操作结束后的序列. 输入第一行两个整数n,m(0 using namespace std;#define maxn 100001int g_count;int n;struct node{ int left; int right; int count;};struct node A[maxn*4];void buildtree(struct node *A,int index,int left,int right){ A[... 阅读全文
posted @ 2013-11-23 10:29 七年之后 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 描述Keroro来侵略地球之前,曾跟Giroro伍长打赌:“我一个人灭掉整个地球给你看!”. 于是Keroro同学真的自己一个人来到地球开始他的侵略行动了。从K隆星出发之前,Keroro从Kururu曹长那儿拿了若干台左手武器{Li}和若干台右手武器{Ri},Keroro需要从{Li}里选一台左手武器,从{Ri}里选一台右手武器,用来组合成可用的恐怖武器。 左右手武器组合的规则很简单,假设从{Li}选出来攻击力为p的武器,从{Ri}选出来攻击力为q的武器,组合起来的攻击力就是p XOR q.Keroro想知道,他能组合成的最强武器攻击力为多少?Hint:必须左右手武器都选出来一个,才能组合成可 阅读全文
posted @ 2013-11-23 10:27 七年之后 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 描述某段时间社会上流行企业收购,而南邮也受此社会风气影响,各个社团到处想着吞并其它社团,以实现扩张势力范围且梦想着统治南邮社团,于是,凶残的“社团吞并风波”就是这样开始了...已知每个社团有两个个属性:势力,标签。 势力代表一个社团的强大能力,任何一个社团只能吞并势力比它小的社团。标签代表该社团是属于什么类型的,一个社团可以有多个标签,如传媒科协有“技术类”,“艺术类”等标签,任意两个社团只有当他们有某一个相同的标签时才能发生吞并。下面C天每天有一次谈判(A,B),表示编号为A的社团和社团B谈判,谈判规则如下: (1)若A,B某一方满足把另一方吞并的所有条件,强大的一方s就会毫不犹豫地把弱的. 阅读全文
posted @ 2013-11-23 10:25 七年之后 阅读(496) 评论(0) 推荐(0) 编辑
摘要: #include#include#include#includeusing namespace std;queueQ;stackS;int *p,n;int f(int a){ int i; int max=a; for(i=a;ip[max]) max=i; } return max;}int main(){// int n; cin>>n; p=new int [n]; int *mark=new int [n]; memset(mark,0,n*sizeof(mark[0])); int i; ... 阅读全文
posted @ 2013-11-23 10:24 七年之后 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 描述从前从前,有一个容量为K的栈...容量为K的意思是指,如果该栈里已经有K个元素了,现在还要再压一个元素x进去,则原栈底部的元素就会消失,然后就有一个空余的空间来把x压进栈里面。 例如K = 3,原栈从底部到顶部的元素分别为1,2,3,现在要压4进去,则底部的1会消失,2往下掉变成底部元素,3也往下掉,最后4压进来。整个栈的元素自底向顶序列就变成2,3,4.so, 现在给该容器的容量K,和m个操作序列,操作分两种: push x 把x压入栈,x pop 栈顶元素出栈 对于每个操作,输出出栈的元素,若在操作前栈就已经为空,则输出"Empty!"(不包含引号).//如果不知道 阅读全文
posted @ 2013-11-23 10:23 七年之后 阅读(412) 评论(1) 推荐(1) 编辑
摘要: 描述(题名来源:2009年校队出战合肥现场赛曾用队名)PUMA是全球著名的运动品牌,PUMA的鞋与服饰在嘻哈涂鸦文化中受到全球各地年轻人的极度欢迎,同时PUMA与adidas更是1970与1980年代嘻哈文化的代表。PUMA公司是德国一家以生产鞋与运动服为主的大型跨国公司。该公司于1948年成立于德国荷索金米兰,PUMA中文作彪马,意为美洲狮,创始人为鲁道夫•达斯勒(Rudolf Dassler)。 鲁道夫•达斯勒于1924年加入了弟弟阿道夫•达斯勒(昵称阿迪Adi)位于赫若拉赫的达斯勒公司,并即将公司更名为达斯勒兄弟公司。1930年代中期,达斯勒兄弟公司成长为具有近百名员工、有三十余种款式的 阅读全文
posted @ 2013-11-23 10:20 七年之后 阅读(441) 评论(2) 推荐(0) 编辑
摘要: 描述河图,黑点白点排列奥秘数阵;洛书,纵横斜三条线上数和皆15。这是一个古老的数字游戏,将1~9填入一个九宫格,使得每行、每列、对角线上数字的和都相同(为15)。在西方,满足类似规律的矩阵称之为幻方。 一个n阶的幻方是一个n阶矩阵,在其中填入1~n2个正整数,使得每行每列及两条对角线上的数字和都相同。随着n的增大,幻方的解就越难求。但是,对于n为奇数的幻方,有一种独特的填数解法: 1、首先,将1填在第一行正中间; 2、依次填入2~n2,其中数字i+1填在数字i的右上角; 3、当数字i的右上角不可以填数字时,按如下方法分类讨论: a) 目标格超出幻方右边界,将数字填入该行最左侧的空格中; b) 阅读全文
posted @ 2013-11-23 10:18 七年之后 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 描述如图所示,是一个数字搭成的三角形。若起始位置在三角形的顶端,结束位置在三角形底边,每一步只能向下方或向右下角移动一格。请编程计算一条路径,使得路径上经过的数字和最大。(图中路径7→3→8→7→5经过的数字和最大,为7+3+8+7+5=30)输入第一行包含一个正整数T (1≤T≤10),表示有T组测试用例。 每组用例有多行,第一行包含一个正整数N(2≤N≤100),接下来有n行,第i行包含i个自然数(不超过100),以空格分隔,表示数字三角形第i层。输出每组用例输出一行,仅包含一个整数,即所求路径上的数字和。样例输入1 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5样例输出3 阅读全文
posted @ 2013-11-23 10:16 七年之后 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 描述在C++里,有一个神奇的东西,叫做STL,这里提供了很多简单好用的容器,用来实现常用又很难书写的数据结构,如栈(stack)等。其中,有一个容器叫set,译作“有序集合”。首先,这是一个集合,所以不存在相同的元素,其次,集合中的元素按从小到大排列。 现在,需要你把一列不符合“有序集合”要求的整数规范化,通过以下两个步骤: 1、去重:去掉重复的元素 2、排序:按从小到大顺序将元素排序 请问,最终得到的有序集合是怎样的呢? 输入第一行包含一个正整数T (1≤T≤100),表示有T组测试用例。 每组用例有两行,第一行包含一个正整数N(1≤N≤100),第二行有N个正整数,以空格分隔,表示未规范成 阅读全文
posted @ 2013-11-23 10:14 七年之后 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 描述南邮ACM暑期集训队一年一度的选拔如火如荼的开始了。按照以往的惯例,通过ACM校赛预赛和决赛的两轮选拔,成绩优异者将入选集训队,获得下半年在各大赛区现场赛上与各路神牛角逐奖牌的机会。但是,校赛的竞争太过激烈,难免有些小神牛因为心态不稳,一不小心错失入选机会。于是,校队决定在校赛同期举行5场常规赛,作为选拔队员的第二渠道。常规赛以网络赛形式举办,每周一场,共5场。任何人可以参加任意多场。每场比赛结束后,由校队的组织者为参赛者评分。5场比赛结束后,校队组织者将统计每个参赛者的得分情况,取每人参赛场次中最好的一场成绩作为最终成绩来排名。现在,有一位小神牛参加了5场比赛中的n场,校队已给他的n场比 阅读全文
posted @ 2013-11-23 10:13 七年之后 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 描述Problems in Computer Science are often classified as belonging to a certain class of problems (e.g., NP, Unsolvable, Recursive). In this problem you will be analyzing a property of an algorithm whose classification is not known for all possible inputs.Consider the following algorithm: 1. input n 2 阅读全文
posted @ 2013-11-23 10:07 七年之后 阅读(241) 评论(0) 推荐(0) 编辑
摘要: #include#includeusing namespace std;int main(){// freopen("a.txt","r",stdin); int m,i,j,t,temp; string w[8]; char c[8]; int a[100]; cin>>m; while(m--) { int sum=0; for(i=1;i>w[i]>>c[i]>>a[i]; for(j=1;j50) t=11-(a[j]-50)/10; else t=11; ... 阅读全文
posted @ 2013-11-23 10:05 七年之后 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 描述This is an easy problem.I think Fibonacci sequence is familiar to you.Now there is another one.Here a and b are constants.Gice you a,b,and n,your task is to calculate the f[n].输入First line of input comes a positive integer T(Tusing namespace std;int main(){ int m,a,b,n,t; int sum=0; cin>>... 阅读全文
posted @ 2013-11-23 10:03 七年之后 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 描述求A^B的最后三位数表示的整数(1using namespace std;int main(){ int a,b; while(cin>>a>>b) { int t=a; if(b==1) cout<<a%1000<<endl; else { for(int i=1;i<b;i++) { t=a*t; t=t%1000; } cout<<t<<endl; } } return 0;} 阅读全文
posted @ 2013-11-23 10:00 七年之后 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 描述计算机基础大赛推出了幸运奖(纯属虚构),给一个幸运数字l(0-340),从已按升序排好的n个人成绩中找出两位成绩之和刚好为幸运数字的选手,他们就是幸运奖的获得者。如果有多对,输出任意一对即可。 输入多组测试数据 每组第一行n,l 第二行输入n个成绩输出如果有,输出获得幸运奖那对儿选手的成绩。 没有输出NO。样例输入4 6 1 2 3 4 3 5 1 3 6样例输出2 4 NO#includeusing namespace std;int main(){ int n,*a,t; while(cin>>n>>t) { int f=0; a=(int... 阅读全文
posted @ 2013-11-23 09:59 七年之后 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 描述计算机基础大赛结束后需要尽快对参赛选手的成绩进行处理,现在要求录入n个人的成绩,然后找出排名第k的选手的成绩。 输入输入数据包含多组样例,每组包含两行。 第一行输入n和k 第二行输入n个成绩输出对于每组样例,输出第k名的成绩。样例输入5 2 3 1 4 2 5样例输出4#include#includeusing namespace std;int main(){ int n,k,*a; while(cin>>n>>k) { a=(int*)malloc(n*sizeof(int)); for(int i=0;i>a[i]; sort(a,a+n); ... 阅读全文
posted @ 2013-11-23 09:58 七年之后 阅读(191) 评论(0) 推荐(0) 编辑