上一页 1 ··· 25 26 27 28 29

2011年7月6日

poj-1656 Counting Black

摘要: 可用暴力法~下面用二维树状数组:/** 1656.cpp** Created on: 2011-7-6* Author: **/#include <iostream>#include <string>using namespace std;const int MAXN = 100 + 5;const int W = 0, B = 1;int map[MAXN][MAXN] = {};int c[MAXN][MAXN] = {};int t, x, y, l;string cmd;int lowbit(int _x){ return _x & (-_x);}voi 阅读全文

posted @ 2011-07-06 23:09 龙豆 阅读(245) 评论(0) 推荐(0)

poj-2029 Get Many Persimmon Trees

摘要: my code:/** 2029.cpp** Created on: 2011-7-6* Author: */#include <iostream>#include <cstring>using namespace std;const int MAXN = 100 + 5;bool tree[MAXN][MAXN] = {}; //坐标上是否有树int d[MAXN][MAXN] = {}; //一维矩阵上的树的总数(坐标表示1*1元)int ans[MAXN][MAXN] = {}; //s * t 矩阵上的树的总数(坐标表示1*1元)int imax = -1;in 阅读全文

posted @ 2011-07-06 18:35 龙豆 阅读(192) 评论(0) 推荐(0)

树状数组[转]

摘要: 先看比较基础的讲解:【转】今天先来讨论一下树状数组.问题提出:已知数组a[],元素个数为n,现在更改a中的元素,要求得新的a数组中i到j区间内的和(1<=i<=j<=n).思考:对于这个问题,我们可以暴力地来解决,从a[i]一直累加到a[j],最坏的情况下复杂度为O(n),对于m次change&querry,合起来的复杂度为O(m*n),在n或m很大的情况下,这样的复杂度是让人无法忍受的.另外,如果没有元素的变更,我们完全可以存储sum[1,k](k=1,2,……),然后对任意给定的查找区间[i,j],都可以方便的用ans=sum[1,j]-sum[1,i-1],当然 阅读全文

posted @ 2011-07-06 18:28 龙豆 阅读(322) 评论(0) 推荐(0)

poj-3280 Cheapest Palindrome[转]

摘要: 这个dp题可以算是很顺利的一题,虽说之前看了看就觉得很难没管它,但是今天真的不一样,开始其实思路还有点乱麻,只过了几分钟我忽然间就理清了思 路,得到了一个dp子问题,可能还要归功于之前做了一题叫括号匹配的类似dp给了我灵感,真的构造出来和没有构造出前的差别很大啊!同学们!相信自己的实力吧!但是要自信加合理推导才能得出信服的答案!其实dp很难逃出3种思路:1、一维线性dp:每次考虑i时,选择最优子问题要么在i-1,要么在1...i-1里;2、二维线性dp:考虑(i,j)子问题时,选择最优子问题要么在(i+1,j)、(i,j-1),要么在i<= k <=j,在k里;3、树形dp:考虑i 阅读全文

posted @ 2011-07-06 10:30 龙豆 阅读(588) 评论(0) 推荐(0)

上一页 1 ··· 25 26 27 28 29

导航