P2184 贪婪大陆

摘要:
P2184贪婪大陆使用一个树形阵列来记录前端长度,前端长度以总共个间隔结束,前端长度从总共个间隔开始。答案很明显。使用指针减少代码:#include#defineMAXN100010#definelobitsingnamespacestd;整数,m;整数tre_ h[MAXN],tre_ t[MAXN];voidadd{for*(a+i)+=val;}intget_sum{intans=0;对于{ans+=*(a+i);}返回者;}intmain(){scanf;while(m-){intopt,l,r;scanf,ifadd,add;elseprintf;}返回0;}
P2184 贪婪大陆

用树状数组记录前(i)长度共有(sum1)个区间结束,前(j)长度共用(sum2)个区间开始,答案显然为(sum2-sum1)

善用指针减少代码量:

#include <cstdio>
#define MAXN 100010
#define lowbit(x) ((x)&(-(x)))
using namespace std;
int n,m;
int tre_h[MAXN], tre_t[MAXN];
void add(int *a, int x, int val){
    for(register int i=x;i<=n;i+=lowbit(i))
        *(a+i)+=val;
}
int get_sum(int *a, int x){
    int ans=0;
    for(register int i=x;i>0;i-=lowbit(i)){
        ans+=*(a+i);
    }
    return ans;
}
int main()
{
    scanf("%d %d", &n, &m);
    while(m--){
        int opt,l,r;scanf("%d %d %d", &opt, &l, &r);
        if(opt==1) add(tre_h, l, 1),add(tre_t, r, 1);
        else printf("%d
", get_sum(tre_h, r)-get_sum(tre_t, l-1));
    }
    return 0;
}

免责声明:文章转载自《P2184 贪婪大陆》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Cloudera运维算法分析思维分析,以循环赛日程表为例下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

db2 reorg详解

reorgchk,检查tableindex是否需要重组。reorg重组,重新放置数据位置。5)db.tb_reorg_req运行状况指示器处于ATTENTION状态。可以分为对系统表和用户表两部分分别进行REORGCHK:1)针对系统表进行REORGCHKdb2reorgchkupdatestatisticsontablesystem使用UPDATESTAT...

使用 @Query 注解实现查询

2")ListfindByPriceRange;/***参数绑定@Param注解注入参数*/@QueryPersonreadPersonByLastNameAndEmailThroughName;//使用like@Query("selectpfromPersonpwherelastNamelike?...

解决xcode打开时loading假死的问题

出现这个问题就真得崩溃了,有些小伙伴甚至还重装了Xcode,这里给大家推荐一个行之有效的方法。...

IOS崩溃日志解析(crash log)

IOS的应用程序少不了crash,互联网统计分析工具友盟有一项目错误分析的功能,专门用于应用程序崩溃日志统计,最近研究友盟上统计到的崩溃日志,在此对崩溃日志做一个简单的总结。否则,应用将被iOS终止,并产生低内存崩溃报告。这样,我们去我们的dSYM文件看看我们的UUID是否和崩溃日志上的UUID一致,只有dSYM文件的UUID和崩溃日志上的UUID一致,我们...

如何给LINUX红帽子版本配置IP(转)

如果需要绑定另一个IP地址,只需在文件名中添加一个,并在文件中的DEVICE中添加eth0:x。LINUX可以支持多达255个IP别名,多个网卡绑定到一个IP地址,并且可以使用多个网卡创建具有相同IP地址的虚拟网卡。事实上,这种技术已经存在于Sun和Cisco中,它们分别被称为中继和以太网信道技术。在Linux中,这种技术被称为绑定。...

Ubuntu安装时怎样分区

应该首先放置启动分区。并将引导设置为主分区。如果是双系统或多系统安装,通常可以选择逻辑分区。首先,Grub可以在1024柱面后面引导Linux内核;第二,即使有多个Linux安装,/boot也可以完全不共享。此外,非独立/引导分区仅占用根文件夹下约20MB的空间。所以决定是否启动。...