- 浏览: 667406 次
最新评论
文章列表
经过几天的奋战,终于把自己找的树状数组题刷完了,小happy一下。。
题意找出乒乓球裁判,要求比参赛的两个人中一个排名高,一个排名低,问一共可以找到多少个。。如果找到一个就可以举办这样一场比赛,问一共可以举行多少场比赛。。
AC代码:
#include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
#define N 100005
using namespace std;
typedef long long L;
int s[N];
int lmin[N ...
- 2012-03-02 09:51
- 浏览 654
- 评论(0)
依然是树状数组+离散化+dp
http://acm.hdu.edu.cn/showproblem.php?pid=3450
AC
#include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
#define N 100005
#define M 9901
using namespace std;
typedef long long L;
int kp[N];
int a[N];
int s[N];
int n,m;
int tot;
inli ...
- 2012-03-01 21:54
- 浏览 654
- 评论(0)
#include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
#define N 10001
#define M 3000001
using namespace std;
int kp[M];
int s[N];
int n;
int lowbit(int x)
{return x&(-x);}
void update(int x)
{
while(x<N)
{ s[x]++;
x+=lowbit(x);
}
}
int ...
- 2012-03-01 21:12
- 浏览 680
- 评论(0)
http://acm.hdu.edu.cn/showproblem.php?pid=2227
#include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
#define N 100005
#define M 1000000007
using namespace std;
typedef long long L;
int kp[N];
int a[N];
int s[N];
int n;
int tot;
inline int lowbit(int x) ...
- 2012-03-01 20:34
- 浏览 733
- 评论(0)
.Net CLR 事务
.Net CLR 事务:事务的执行不是通过在数据库书写脚本完成的。而是通过c#,vb.net这些开发语言在应用层进行书写。运用该技术来编写事务程序会很轻松,较少了开发工作量。
传统事务
SqlConnection conn = new SqlConnection("Data Source=192.168.1.87;Initial Catalog=chapter23;Uid=sa;Pwd=123456;");
SqlCommand cmd = new SqlCommand();
SqlTransaction ...
- 2012-03-01 12:03
- 浏览 543
- 评论(0)
树状数组求逆序数的应用。。这一题设计的非常巧妙。。。下面说一下题意。。给定一组数,然后依次的挪动该组数的元素共得到n种序列。求这n中序列中逆序数最少的个数。。。杯具的是我竟然把树状数组和一般的数组弄混淆了。。这里要特别注意。。。不过值得一提的是竟然rank1,(*^__^*) 嘻嘻……
AC代码:
#include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
#define N 5005
using namespace std;
int s[N];
in ...
- 2012-03-01 09:26
- 浏览 604
- 评论(0)
这算是一道比较综合的树状数组题。。
题意:一个农场主养了很多奶牛,每天晚上该农场主都要为奶牛,但是每个奶牛都有一个脾气,这可能会导致奶牛损坏农场主喂牛的工具。。每个奶牛的脾气不等,这样农场主可以调换的某两个牛的位置,以求奶牛破坏最少的工具。已知挪动两个奶牛花费的时间为两个奶牛脾气的和。。让你求出最少的时间在破坏最少工具的前提下。。
思路:树状数组中有两个元素一个是记录比当前a小的个数,一个是记录比当前a小的数的和。。mintime=a*(i-Quary_cnt(a))+Quary_sum(n)-Quary_sum(a);
#include<iostream ...
- 2012-02-29 21:53
- 浏览 843
- 评论(0)
树状数组求逆序数应用,,不解释。。
#include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
#define M 1000000001
using namespace std;
typedef long long L;
int s[M];
int lowbit(int x)
{ return x&(-x);}
void update(int x)
{ while(x<=M)
{ s[x]++;
x+=lowbit(x) ...
- 2012-02-29 20:56
- 浏览 695
- 评论(0)
三维树状数组的一个模板题。。应该是属于插线问点这一类型的。。。题意:一开始三维数组的元素都为0,当输入操作为1时把1->0或者0->1..问经过许多次操作后该位置是1还是0,。
#include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
#include<assert.h>
#define N 101
using namespace std;
int s[N][N][N];
int lowbit(int x)
{return x&am ...
- 2012-02-29 20:25
- 浏览 634
- 评论(0)
通过这两天对树状数组的学习,感觉树状数组非常强大,在统计记数中效率很高。不仅可以统计一维的还可以统计二维的,甚至三维的。。。。树状数组能解决的题一般有。统计数组中有多少元素。。统计有多少比给定数大的元素,,,统计在一个矩形区域内有多少元素。。。
这一题的题意是:可以把星星看做灯泡,给个一些灯泡的位置坐标,在一个矩形区域内让你统计;有多少亮着的灯泡,,。。。
思路:初始化一开始的灯泡都不亮。。当给定一个坐标时,如果该坐标的灯泡是亮的。如果遇见D就关闭该灯泡,并更新相应位置的值。如果一开始是灭的,如果遇见B就打开该灯泡,并更新相应的值,仅在这两种情况时才更新。。。
#include< ...
- 2012-02-28 09:46
- 浏览 653
- 评论(0)
二维树状数组,,,,今天长见识了。。。
这一题题意:对一个矩形框的书进行,插入,挪动,删除。。。。
#include<cstdio>
#include<algorithm>
#include<string.h>
#include<iostream>
using namespace std;
#define N 1005
int s[N][N];
int lowbit(int x)
{return x&(-x);}
void update(int x,int y,int v)
{ for(int i=x;i<N;i ...
- 2012-02-27 21:55
- 浏览 725
- 评论(0)
在网上搜了一下说是树状树状模板题。。于是果断看了,,但坑爹的英语,,读不懂题意。。。于是用了有道才读懂,题意是让求每个星星的水平,就是每个星星左下方有多少个元素包括自己,有多少就处于第几水平,这一题由于输入时纵坐标是按照升序排列故只考虑横坐标。。就行。。
#include<iostream>
#include<string.h>
#define N 32005
int s[N];
int lev[N];
using namespace std;
int lowbit(int x)
{return x&(-x);}
void update(int x)
{ w ...
- 2012-02-27 19:51
- 浏览 656
- 评论(0)
树状数组的入门题。。s[N]表示当前下标控制的所有元素的和。。。
对于p-lowbit(p)都不被p包含。。
而对于p+lowbit(p) 都包含p。。。。。
#include<iostream>
#include<string.h>
#include<string>
#include<cstdio>
#define N 50005
using namespace std;
int s[N];
int lowbit(int x)
{return x&(-x);}
void update(int x,int a)
{
while ...
- 2012-02-27 13:37
- 浏览 639
- 评论(0)
插线问点。。。
#include<iostream>
#include<string.h>
#include<string>
#include<cstdio>
#define N 100005
using namespace std;
int s[N];
int lowbit(int x)
{return x&(-x);}
void update(int x,int a)
{
while(x<N)
{ s[x]+=a;
x+=lowbit(x);
}
}
int Quary(int x)
{ int sum ...
- 2012-02-26 21:44
- 浏览 821
- 评论(0)
#include<iostream>
#include<string.h>
#include<algorithm>
#include<cstdio>
#define N 100001
using namespace std;
int s[N];
inline int lowbit(int i)
{ return i&(-i);}
void update(int x,int a)
{ while(x<=N)
{ s[x]+=a;
x+=lowbit(x);
}
}
int Quary(i ...
- 2012-02-26 12:39
- 浏览 892
- 评论(0)