用宏确实比用函数效率高
来源:互联网 发布:阿里云域名变更 编辑:程序博客网 时间:2024/06/01 01:34
poj 2352 stars是树状数组的经典题目, lowbit(int x) 如果写成函数,就TLE了。写成宏,就是 150Ms AC。
下面是代码:
#include<iostream>using namespace std;#define lowbit(x) (x&(-x))const int maxn=32000+10;int arr[maxn];int C[maxn];//int lowbit(int x){//return x&(-x);//}void update(int i,int value){while(i<=maxn){C[i]+=value;i+=lowbit(i);}}int getSum(int i){int ans=0;while(i>0){ans+=C[i];i-=lowbit(i);}return ans;}int main(){freopen("in.txt","r",stdin);int n,a,b,i;scanf("%d",&n);memset(C,0,sizeof(C));memset(arr,0,sizeof(arr));for(i=0;i<n;i++){scanf("%d %d",&a,&b);a++;update(a,1);arr[getSum(a)]++;}for(i=1;i<=n;i++){printf("%d\n",arr[i]);}return 0;}
- 用宏确实比用函数效率高
- 为什么java效率比c/c++低?为什么用jni调用效率高?
- pypy确实要比我们平时用的python快
- scanf比cin效率高
- 不区分大小写的字符穿搜索函数,自己写的,效率比StrStrI要高
- 验证matlab的diff函数比自己写c效率高很多
- 前置++为什么比后置++效率高
- StringBuilder效率比String高的原因。
- 前置++为什么比后置++效率高
- 为什么前缀++/--比后缀++/--的效率高?
- vector_map 为什么比map效率高
- 为什么前置++比后置++的效率高
- 前置++为什么比后置++效率高
- 栈的效率为什么比堆高?
- 前置++为什么比后置++效率高
- 栈为什么效率比堆高
- StreamSocket确实好用!
- StreamSocket确实好用!
- C语言中可变参数函数实现原理浅析
- ios block
- spring ioc原理(看完后大家可以自己写一个spring)
- 问题4:如何使用递归与非递归实现二分查找?
- redhat5.8安装 oracle10g之 DBCA建库
- 用宏确实比用函数效率高
- [转]opencv轮廓提取(findcontours函数详解)
- 关于java的内部类---由迭代器是实现引出
- Java中事务的处理
- PB开发还有前途吗
- Android Looper和Handler分析
- 地球已经阻止不了程序员学cocos2d-x了(一)
- intel 汇编指令速查
- Oracle ADF 使用clientAttribute传值、获取值