原题地址对于给定的两个约束条件,可以通过联立方程组直接解出子序列A的和和子序列B的和,即sum(A) = (r + s) / 2,sum(B) = (r - s) / 2,假设|A|=|B|=n所以问题变成了,在一个数组中求长度为n且子序列和为sum(A)或sum(B)有多少个。假设count(n,...
分类:
其他好文 时间:
2015-04-29 00:40:25
阅读次数:
187
给定整数\(A_1,A_2,A_3,...,A_N\)(可能有负数),求\(\sum_{k=i}^{j}A_k\)的最大值
分类:
其他好文 时间:
2015-04-28 01:37:52
阅读次数:
131
题目描述给你一个长为n(10 // Time Limit Exceeded: 1010MS#define MAXN 10000#define INF 1000000000000000 // 大于(1+1000)*1000/2*1000000即可,inf: infinitelong long int ...
分类:
其他好文 时间:
2015-04-21 00:21:14
阅读次数:
238
#include #includeusing namespace std;#define M 4#define N 4int maxline(int *array, int len) //求一维数组最大子序列和 { int i, sum = array[0], b = 0,...
分类:
编程语言 时间:
2015-04-13 14:10:48
阅读次数:
179
给定(可能有负的)整数A1,A2,…,AN,求 的最大值。 例如:输入4,-3,5,-2,-1,2,6,-2,最大子序列和为11(从A1到A7)。 算法1:最直观的算法,穷举式地尝试所有可能。下标变量i表示子序列的开始位置,j表示结束位置,每次选定一个子序列Ai--Aj,再使用k遍历该子序列求子序列...
分类:
其他好文 时间:
2015-04-10 22:21:52
阅读次数:
197
题目链接:ZOJ 3591 Nim
题意:根据题目给出的代码得到n堆石头的各自的数量,求先手选出连续的若干堆并且必胜的方法数。(比如:3,1,1 每堆石头数是1,1,1.先手选出(1),(1),(1),(1,1,1) 这四种方案是必胜的,所以答案是4)
思路:在n堆取石头首先想到的是Nim博弈,连续的若干堆,即求连续子序列异或和为0的数量m,n*(n+1)/2-m就是答案
(Nim博弈结论,...
分类:
其他好文 时间:
2015-04-09 09:03:59
阅读次数:
136
题目链接:Codeforces Round #112 (Div. 2) C Another Problem on Strings
题意:给出一个只含0,1的序列,求序列中和为n的子序列有多少个。
思路:预处理出序列的前缀和,然后枚举序列时,记录(vis)该位置之前已有的前缀和,再查询(sum[i]-n)的个数,即以该位置为结束的子序列和为n的个数。
注意:vis数组中0应该始终存在,初始化v...
分类:
其他好文 时间:
2015-04-07 09:58:37
阅读次数:
146
最大的子序列和的问题: 给定整数A1,A2,...,An(可能有负数),求Σjk=i Ak 的最大值(为方便起见,如果所有整数均为负数,则最大子序列的和为0)。 这道题应该是比较基础的题目,有多种解法,时间复杂度也不尽相同,在这里就给大家介绍一种最有效的算法,其时间复杂度为O(n). 代码如下: 应...
分类:
其他好文 时间:
2015-04-01 19:50:56
阅读次数:
137
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4223求连续子序列和的最小绝对值,水题。#include #include #include #include #include #define inf 0x3f3f3f3fusing namespace s...
分类:
其他好文 时间:
2015-03-31 19:26:44
阅读次数:
127