Lowbit SumTime Limit:2000/1000MS (Java/Others)Memory Limit:128000/64000KB (Java/Others)SubmitStatusProblem Descriptionlong long ans = 0;for(int i = 1;...
                            
                            
                                分类:
其他好文   时间:
2014-07-23 22:22:27   
                                阅读次数:
506
                             
                         
                    
                        
                            
                            
                                如果领悟了树状数组中的lowbit,这道题就是极其简单的,最底层都是奇数,用lowbit(x)寻找x的父亲,然后x的父亲-1就是最大数
至于lowbit是如何计算的嘛,寻找x的父亲,其实就是x+2^x的二进制末尾0的个数。
#include
#include
using namespace std;
typedef long long ll;
 ll lowbit(int x){
    re...
                            
                            
                                分类:
其他好文   时间:
2014-07-23 13:12:16   
                                阅读次数:
273
                             
                         
                    
                        
                            
                            
                                贪心加树状数组
给出的数据可能出现两种情况,包含与不包含,但我们从右向左删就能避免这个问题;
#include
#include
#include
using namespace std;
const int maxn=200010;
int f[maxn],l[maxn],a[maxn];
long long tree[maxn];
int n;
inline int lowbit(int ...
                            
                            
                                分类:
其他好文   时间:
2014-07-22 00:27:36   
                                阅读次数:
210
                             
                         
                    
                        
                            
                            
                                #includeint a[20],n;int lowbit(int x){ return x&(-x);}void add(int x,int c){ int i; for(i=x; i<=n; i+=lowbit(i))a[i]+=c;}int sum(int x){ i...
                            
                            
                                分类:
其他好文   时间:
2014-07-21 23:30:00   
                                阅读次数:
240
                             
                         
                    
                        
                            
                            
                                题意:即3个连续的wbw算是一个love,看一下某个区间共有多少个love,多次询问。还有替换某个位置的字母,然后询问。
用树状数组处理,题目并不难,但因为一处想当然错了N次。。。
题目链接:
Panda
#include"stdio.h"
#include"string.h"
#define N 50005
#define lowbit(i) (i&(-i))
char str[...
                            
                            
                                分类:
其他好文   时间:
2014-07-21 09:30:12   
                                阅读次数:
271
                             
                         
                    
                        
                            
                            
                                题目大意:
n波人去k*k的电影院看电影。
要尽量往中间坐,往前坐。
直接枚举,贪心,能坐就坐,坐在离中心最近的地方。
#include 
#include 
#include 
#include 
#define maxn 1000005
#define lowbit(x) (x&(-x))
using namespace std;
struct BI...
                            
                            
                                分类:
其他好文   时间:
2014-07-10 22:52:57   
                                阅读次数:
262
                             
                         
                    
                        
                            
                            
                                有工具在手,这题就是一个模板题,就是有点不清楚,最后问的是单个元素的值,它怎么sum求出来的
#include 
#include 
#include 
#include 
using namespace std;
#define maxn 1005
int c[maxn][maxn];
int Row, Col;
inline int Lowbit(const int &x)
{
   ...
                            
                            
                                分类:
其他好文   时间:
2014-06-27 07:38:00   
                                阅读次数:
281
                             
                         
                    
                        
                            
                            
                                测试好多数据都正确,一直wrong ans 仔细思考 #include#include//x&-x 为x的二进制中最低位1的权值 列: 110010为 2 11100为4 ,所以 log2(4)表示最低位1在第2位using namespace std;int lowbit(int n){ retu...
                            
                            
                                分类:
其他好文   时间:
2014-06-24 14:29:45   
                                阅读次数:
150
                             
                         
                    
                        
                            
                            
                                题目链接题意:给定goal和limit,求1-limit中的若干个数,每一个数最多出现一次,且这些数的lowbit()值之和等于goal,假设存在这种一些数,输出个数和每一个数;否则-1分析:先考虑一下比較普通的情况,给一些数,和一个goal,问时候能达到。(最好还是设这些数已经从大到小排序)考虑能...
                            
                            
                                分类:
其他好文   时间:
2014-06-20 19:43:36   
                                阅读次数:
192
                             
                         
                    
                        
                            
                            
                                要询问一个数列的某区间的最大值,其中会更新数据。
这样的题目使用树状数组是可以的,但是因为要牵涉到区间操作,故此还是线段树比较好点。
不过使用树状数组也是可以的,就是查询的时候麻烦点,注意计算,不要超出区间了。
看下面的query函数,这是主要的难点函数,其中的-1操作和这个判断r - lowbit(r) >= l,都很蛋疼,一不小心就会出错。
#include 
#inc...
                            
                            
                                分类:
其他好文   时间:
2014-06-08 09:02:49   
                                阅读次数:
345