摘要: 士兵杀敌(四)时间限制:2000 ms | 内存限制:65535 KB难度:5描述南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战(编号相近的人经常在一块,相互之间比较熟悉),最终他们获得的军功,也将会平分到每个人身上,这样,有时候,计算他们中的哪一个人到底有多少军功就是一个比较困难的事情,军师小工的任务就是在南将军询问他某个人的军功的时候,快速的报出此人的军功,请你编写一个程序来帮助小工吧。假设起始时所有人的军功都是0.输入只有一组测试数据。每一行是两个整数T和M表示共有T条指令,M个士兵。(1 2 #include 3 4 int .. 阅读全文
posted @ 2014-04-13 11:59 龙腾四海365 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 树状数组(原文:http://www.cnblogs.com/zhangshu/archive/2011/08/16/2141396.html) 如果给定一个数组,要你求里面所有数的和,一般都会想到累加。但是当那个数组很大的时候,累加就显得太耗时了,时间复杂度为O(n),并且采用累加的方法还有一个局限,那就是,当修改掉数组中的元素后,仍然要你求数组中某段元素的和,就显得麻烦了。所以我们就要用到树状数组,他的时间复杂度为O(lgn),相比之下就快得多。下面就讲一下什么是树状数组: 一般讲到树状数组都会少不了下面这个图: 下面来分析一下上面那个图看能得出什么规律: 据图可知: c1=a... 阅读全文
posted @ 2014-04-13 11:28 龙腾四海365 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 士兵杀敌(二)时间限制: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 ... 阅读全文
posted @ 2014-04-13 11:21 龙腾四海365 阅读(140) 评论(0) 推荐(0) 编辑