[模板] 数据结构

本文介绍了并查集、树状数组等数据结构的基本实现方式,并涵盖了前向星图存储结构及前缀和的计算方法。通过具体示例展示了如何进行区间修改与查询操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

并查集

int f[M];
void Init{
    for(int i=1;i<=n;i++)
        f[i]=i;
}
int fd(int x){//库里有find函数,为保险起见不用全拼
    return f[x]==x?x:f[x]=fd(f[x]);
}

树状数组

void updata(int loc,int value){
    for(int i=loc;i<=MX;i+=i&(-i))//MX为最大下标
        C[i]+=value;
}
int query(int loc){
    int ans=0;
    for(int i=loc;i>0;i-=i&(-i))
        ans+=C[i];
    return ans;
}

前向星

int t=1;//memset(head,-1,sizeof(head));
struct edge{
    int from,to,next,val;
}e[M];
void add(int i,int j,int w)
{
    e[t].from=i;
    e[t].to=j;
    e[t].val=w;
    e[t].next=head[i];
    head[i]=t++;
}

前缀和

for(int i=1;i<=n;i++)
{
    scanf("%d%d",&x,&y);
    sum[x]++,sum[y+1]--;//区间修改
}
for(int i=1;i<=n;i++)
sum[i]+=sum[i-1];
cout<<sum[b]-sum[a-1];

二维
sum[x1][y1]+1,sum[x2+1][y1]-1,sum[x1][y2+1]-1,sum[x2+1][y2+1]+1;
sum[x2][y2]-sum[x1-1][y2]-sum[x2][y2-1]+sum[x1][y1];
资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 wget是Linux系统中一款非常实用的命令行下载工具,尤其在没有图形界面的环境下,它可以帮助用户轻松地从互联网上获取所需的文件,比如软件包、备份文件等,是Linux用户不可或缺的工具之一。 高稳定性:即使在带宽有限或网络不稳定的情况下,wget也能表现出色。如果下载因网络问题中断,它会自动重试,直到文件完整下载。 支持断点续传:下载过程中若被中断,wget可以从上次停止的位置继续下载,这对于下载大型文件非常有用,尤其是那些限制链接时间的服务器。 适应性强:无论是桌面系统还是服务器环境,wget都能很好地适应,是下载文件的首选工具之一。 -a <日志文件>:将下载过程中的信息记录到指定的日志文件中,便于后续查看或分析。 -A <后缀名>:指定要下载的文件类型,多个后缀名用逗号分隔,例如-A .jpg,.png,表示只下载JPG和PNG图片。 -b:让wget在后台运行,用户可以同时进行其他操作。 -B <连接地址>:设置基准地址,便于处理相对路径的链接。 -c:继续上次中断的下载任务,适合下载大文件。 -C <标志>:设置服务器数据块功能标志,on表示启用,off表示禁用,默认为on。 -d:以调试模式运行,便于排查问题。 -D <域名列表>:设置要遵循的域名列表,多个域名用逗号分隔。 -e <指令>:作为.wgetrc文件的一部分执行特定指令,可用于自定义配置。 -i <文件>:从指定文件中读取URL列表进行下载。 -l <目录列表>:设置要遵循的目录列表,多个目录用逗号分隔。 -L:仅遵循与当前页面相关的链接。 -r:递归下载,即下载当前页面及其所有子页面上的资源。 -nc:当文件已存在时,不会覆盖原有文件。 -nv:只显示更新和错误信息,隐藏详细下载过程。 -q:静默模式,不显示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值