摘要:
母函数(Generating function)详解在数学中,某个序列的母函数(Generating function,又称生成函数)是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。使用母函数解决问题的方法称为母函数方法。母函数可分为很多种,包括普通母函数、指数母函数、L级数、贝尔级数和... 阅读全文
摘要:
花儿朵朵时间限制:1000 ms | 内存限制:65535 KB难度:5描述春天到了,花儿朵朵盛开,hrdv是一座大花园的主人,在他的花园里种着许多种鲜花,每当这个时候,就会有一大群游客来他的花园欣赏漂亮的花朵,游客们总是会询问,某个时间有多少种花儿同时在盛开着?hrdv虽然知道每种花儿的开花时间段... 阅读全文
摘要:
取球游戏时间限制:1000 ms | 内存限制:65535 KB难度:2描述 今盒子里有n个小球,A、B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。 我们约定: 每个人从盒子中取出的球的数目必须是:1,3,7或者8个。 ... 阅读全文
摘要:
找球号(三)时间限制:2000 ms | 内存限制:3000 KB难度:2描述xiaod现在正在某个球场负责网球的管理工作。为了方便管理,他把每个球都编了号,且每个编号的球的总个数都是偶数。有一天,xiaod发现少了一个球,你能帮他找出丢的那个球的球号吗?输入有多组测试数据。每组数据包括两行。 第一... 阅读全文
摘要:
三点顺序时间限制:1000 ms | 内存限制:65535 KB难度:3描述现在给你不共线的三个点A,B,C的坐标,它们一定能组成一个三角形,现在让你判断A,B,C是顺时针给出的还是逆时针给出的?如:图1:顺时针给出图2:逆时针给出输入每行是一组测试数据,有6个整数x1,y1,x2,y2,x3,y3... 阅读全文
摘要:
士兵杀敌(四)时间限制:2000 ms | 内存限制:65535 KB难度:5描述南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战(编号相近的人经常在一块,相互之间比较熟悉),最终他们获得的军功,也将会平分到每个人身上,这样,有时候,计算他们中的哪一个人到底有多少军功就是一个比较困难的事情,军师小工的任务就是在南将军询问他某个人的军功的时候,快速的报出此人的军功,请你编写一个程序来帮助小工吧。假设起始时所有人的军功都是0.输入只有一组测试数据。每一行是两个整数T和M表示共有T条指令,M个士兵。(1 2 #include 3 4 int .. 阅读全文
摘要:
树状数组(原文:http://www.cnblogs.com/zhangshu/archive/2011/08/16/2141396.html) 如果给定一个数组,要你求里面所有数的和,一般都会想到累加。但是当那个数组很大的时候,累加就显得太耗时了,时间复杂度为O(n),并且采用累加的方法还有一个局限,那就是,当修改掉数组中的元素后,仍然要你求数组中某段元素的和,就显得麻烦了。所以我们就要用到树状数组,他的时间复杂度为O(lgn),相比之下就快得多。下面就讲一下什么是树状数组: 一般讲到树状数组都会少不了下面这个图: 下面来分析一下上面那个图看能得出什么规律: 据图可知: c1=a... 阅读全文
摘要:
士兵杀敌(二)时间限制:1000 ms | 内存限制:65535 KB难度:5描述南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军经常想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。南将军的某次询问之后士兵i可能又杀敌q人,之后南将军再询问的时候,需要考虑到新增的杀敌数。输入只有一组测试数据第一行是两个整数N,M,其中N表示士兵的个数(1 2 #include 3 4 int c[1000010],n; 5 6 int lowbit(int n) 7 { 8 return n&(-n); 9 }10 11 void ... 阅读全文
摘要:
糖果大战Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1886 Accepted Submission(s): 626 Problem Description生日Party结束的那天晚上,剩下了一些糖果,Gandon想把所有的都统统拿走,Speakless于是说:“可以是可以,不过我们来玩24点,你不是已经拿到了一些糖果了吗?这样,如果谁赢一局,就拿走对方一颗糖,直到拿完对方所有的糖为止。”如果谁能算出来而对方算不出来,谁就赢,但是如果双 阅读全文
摘要:
吃糖果Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 21710 Accepted Submission(s): 6192 Problem DescriptionHOHO,终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢将一样的糖果放在一起吃,喜欢先吃一种,下一次吃另一种,这样;可是Gardon不知道是否存在一种吃糖果的顺序使得他能把所有糖果都吃完?请你写个程序帮忙计算一下。Input第一行有一 阅读全文
摘要:
排队时间限制:3000 ms | 内存限制:65535 KB难度:1描述周末了,软件ACM的队员准备玩玩游戏,娱乐一下,CY想了一个好主意,所有队员站成一个圈,从1开始报数,凡是报出指定数字的人要出列,有人出列后,下个人重新从1开始报数。最后一位“幸存者”要给大家表演个节目。由于队员正在不断的壮大,C小加又想知道他是否需要准备表演,请你设计个程序,帮他确定他是否是“幸存者”。输入第一行是n,有n次游戏,第二行是m,x,表示某次游戏有m个人,指定被请出列的数字为x。其中n 2 using namespace std; 3 int main() 4 { 5 int T; 6 cin... 阅读全文
摘要:
星际之门(一)时间限制:3000 ms | 内存限制:65535 KB难度:3描述公元3000年,子虚帝国统领着N个星系,原先它们是靠近光束飞船来进行旅行的,近来,X博士发明了星际之门,它利用虫洞技术,一条虫洞可以连通任意的两个星系,使人们不必再待待便可立刻到达目的地。帝国皇帝认为这种发明很给力,决定用星际之门把自己统治的各个星系连结在一起。可以证明,修建N-1条虫洞就可以把这N个星系连结起来。现在,问题来了,皇帝想知道有多少种修建方案可以把这N个星系用N-1条虫洞连结起来?输入第一行输入一个整数T,表示测试数据的组数(T 2 #include 3 using namespace std; . 阅读全文
摘要:
单调递增子序列(二)时间限制:1000 ms | 内存限制:65535 KB难度:4描述给定一整型数列{a1,a2...,an}(0 2 #include 3 int s[100010]; 4 int longest[100010]; 5 int main() 6 { 7 int m; 8 while(scanf("%d",&m)!=EOF) 9 {10 int i,j,max;11 for(i=0;is[i]&&(longest[j]max)24 max=longest[i];25 printf("%d... 阅读全文
摘要:
Prim算法和Dijkstra算法的异同之前一直觉得Prim和Dijkstra很相似,但是没有仔细对比;今天看了下,主要有以下几点:1:Prim是计算最小生成树的算法,比如为N个村庄修路,怎么修花销最少。Dijkstra是计算最短路径的算法,比如从a村庄走到其他任意村庄的距离。2:Prim算法中有一个统计总len的变量,每次都要把到下一点的距离加到len中;Dijkstra算法中却没有,只需要把到下一点的距离加到dist数组中即可;3:Prim算法的更新操作更新的dist是已访问集合到未访问集合中各点的距离;1 for (j=0;j<n;j++)2 {3 if (!visited[j]. 阅读全文
摘要:
一笔画问题时间限制:3000 ms | 内存限制:65535 KB难度:4描述zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。规定,所有的边都只能画一次,不能重复画。输入第一行只有一个正整数N(N 2 #include 3 int pre[1010],deg[1010]; 4 int find(int x) 5 { 6 int t,r; 7 r=x; 8 while(r!=pre[r]) 9 r=pre[r];10 while(x!=r)11 {12 t=pre[x]... 阅读全文