文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Mobile phones--POJ 1195

Mobile phones--POJ 1195

时间:2010-09-29  来源:勇泽

1、题目类型:模拟、计算几何、树状数组。

2、解题思路:(1)树状数组的经典应用;(2)面积处理过程中,面积=Sum(R,T)-Sum(R,B-1)-Sum(L-1,T)+Sum(L-1,B-1)。

3、注意事项:注意貌似除了树状数组这种方法,其他的方法都TLE,面积处理时候,记得加上减去两次的部分Sum(L-1,B-1)。

4、实现方法:

#include<iostream>
using namespace std;

int N;
int C[1050][1050];

int Lowbit(int x)
{
return x&(-x);
}

void Modify(int x,int y,int A)
{
int i,j;
for(i=x;i<=N;i+=Lowbit(i))
{
for(j=y;j<=N;j+=Lowbit(j))
{
C[i][j]
+=A;
}
}
}

int Sum(int x,int y)
{
int i,j;
int sum=0;
for(i=x;i>0;i-=Lowbit(i))
{
for(j=y;j>0;j-=Lowbit(j))
{
sum
+=C[i][j];
}
}
return sum;
}

int GetSum(int L,int B,int R,int T)
{
return Sum(R,T)-Sum(R,B-1)-Sum(L-1,T)+Sum(L-1,B-1);
}

int main()
{
int op,X,Y,A;
int L,B,R,T;
memset(C,
0,sizeof(C));
cin
>>op>>N;
while(cin>>op && op!=3)
{
if(op==1)
{
cin
>>X>>Y>>A;
Modify(X
+1,Y+1,A);
}
else
{
cin
>>L>>B>>R>>T;
cout
<<GetSum(L+1,B+1,R+1,T+1)<<endl;
}
}
return 0;
}

 

相关阅读 更多 +
排行榜 更多 +
猎枪行动

猎枪行动

飞行射击 下载
导弹袭击

导弹袭击

飞行射击 下载
猫猫突围封锁要塞新手打法

猫猫突围封锁要塞新手打法

飞行射击 下载