有N * N个格子,每个格子里有正数或者0,从最左上角往最右下角走,只能向下和向右,一共走两次(即从左上角走到右下角走两趟),把所有经过的格子的数加起来,求最大值SUM,且两次如果经过同一个格子,则最后总和SUM中该格子的计数只加一次。求SUM的最大值...
分类:
其他好文 时间:
2014-08-10 18:45:20
阅读次数:
274
public class MaxSubSeqSum {
/**
* 算法1,穷举搜索
*/
public static final int maxSubSeqSum1(int seq[]) {
int length = seq.length;
int sum = 0;
for (int i = 0; i < length; i++) {
for (int j = i;...
分类:
其他好文 时间:
2014-08-10 15:46:40
阅读次数:
221
给定一个二叉树和数字sum,输出二叉树中从根节点到叶子节点所有路径中和等于sum的路径。...
分类:
其他好文 时间:
2014-08-10 13:08:10
阅读次数:
204
O(n) complexity, have a traversal for the tree. Get the information of all children, then traverse the tree again.
#include
#include
#include
#include
using namespace std;
class Node {
pub...
分类:
其他好文 时间:
2014-08-10 13:00:30
阅读次数:
238
/*
二维的树状数组:
更新一个a元素的时候。如果a[i]更新了,那么以下几项都需要更新:
NO.1:c[n1],c[n2],c[n3],....,c[nm];
其中n1 = i,n(i+1) = ni+lowbit(ni);
nm+lowbit(nm)的值应该大于a的元素个数N。
NO.2:sum(k)=c[n1]+c[n2]+...+c[nm];
其中nm=k,n(i-1)=ni-lowbit...
分类:
其他好文 时间:
2014-08-10 10:28:30
阅读次数:
384
题意:
给一个0和1组成的序列a,要构造一个同样长度的序列b。b要满足非严格单调,且
值为0到1的实数。最后使得 sum((ai-bi)^2)最小。
算法:
首先a序列开始的连续0和末尾的连续1是可以不考虑的。因为只要b序列对应开头为0、
末尾为1,既不影响单调性又能使对应的(ai-bi)^2=0。
然后,
先找111100、11100、10这样以1开始以0结束的序列块。每...
分类:
其他好文 时间:
2014-08-10 10:28:10
阅读次数:
237
题目:UVA - 10304Optimal Binary Search Tree(递推)
题目大意:给出一组数,e1 2 n,现在要求将这些数组成一棵二叉搜索树,并且使得sum (ei * cost(ei))最小。cost(ei)表示ei到到根节点之间有多少条边。
解题思路:首先二叉搜索树要满足左节点小于根节点,右节点大于根节点。因此对于e1 2 n这样一组数,我们只要枚举根节...
分类:
其他好文 时间:
2014-08-09 23:19:09
阅读次数:
266
#includeint main(){ int n,a,b,i; int sum=0 ; scanf("%d%d",&a,&b); { for (n=a;n=n) sum+=n; } printf("...
分类:
其他好文 时间:
2014-08-09 18:25:28
阅读次数:
260
首先还是要清楚一下堆操作的代码,毕竟线段树打多了,打堆的时候总会往线段树方向靠近首先是建堆:D=1;for(;D>=1,j>>=1){ if(~i&1) ans+=sum[i^1]; if(j&1) ans+=sum[j^1]; } return ans;}更新操作:void update(int ...
分类:
其他好文 时间:
2014-08-09 18:15:18
阅读次数:
257
//1、建立一个for循环用于输入数据,设置退出条件//2、算出平均成绩#includeusing namespace std;int main(){ int Score,sum=0,k=0; int a[100]; float Average; cout>Score; ...
分类:
其他好文 时间:
2014-08-09 18:13:39
阅读次数:
549