Hdu1556 Color the ball [分块][树状数组]

unity中VideoPlayer播放视频,使用Shader除去黑底且无黑边 1. 创建一个Shader 和 一个 材质球;Shader中复制如下代码:(此Shader代码为“ChromaKeyKit”插件中的ChromaKey_Alpa_Genera代码,但因只需要除去视频黑底而挂一个插件有点不合适) // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "ChromaKeyKit/ChromaKey/ChromaKey_Alpha_General" 阅读详情

Hdu1556 Color the ball

Problem Description

N个气球排成一排,从左到右依次编号为1,2,3….N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽”牌电动车从气球a开始到气球b依次给每个气球涂一次颜色。但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗?

Input

每个测试实例第一行为一个整数N,(N <= 100000).接下来的N行,每行包括2个整数a b(1 <= a <= b <= N)。
当N = 0,输入结束。

Output

每个测试实例输出一行,包括N个整数,第I个数代表第I个气球总共被涂色的次数。

Sample Input

3
1 1
2 2
3 3
3
1 1
1 2
1 3
0

Sample Output

1 1 1
3 2 1

【题解】
讲真,这道题,线段树,树状数组都能做。。
不过,现在爱上分块了llll

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
#define cle(x) memset(x,0,sizeof(x))
const int N=100050;
int block,n,m,belong[N],add[335];
int a[N],l[335],r[335];
inline int readin(){
    int res=0,f=1;
    char ch=getchar();
    while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){
        res=res*10+ch-'0';
        ch=getchar();
    }
    return res*f;
}
void updata(int x,int y){
    if(belong[x]==belong[y])
        for(int i = x; i <= y; i++)a[i]++;
    else {
        for(int i = x; i<=r[belong[x]];i++)a[i]++;
        for(int i = l[belong[y]];i<=y;i++)a[i]++;
    }
    for(int i=belong[x]+1;i<belong[y];i++)
        add[i]++;
}
int main(){
    freopen("hdu.in","r",stdin);
    freopen("hdu.out","w",stdout);  
    while((scanf("%d",&n))==1&&n){
        cle(belong),cle(l),cle(r),cle(a),cle(add);
        int x=sqrt(n);
        if(n%x)block=n/x+1;
        else block=n/x;
        for(int i = 1; i<= n; i++)
            belong[i]=(i-1)/x+1;
        for(int i = 1; i<=block;i++)
            l[i]=(i-1)*x+1,r[i]=i*x;
        r[block]=n;
        for(int i = 1; i <= n; i++){
            int x=readin(),y=readin();
            updata(x,y);
        }
        printf("%d",a[1]+add[belong[1]]);
        for(int i = 2; i <= n; i++)
            printf(" %d",a[i]+add[belong[i]]);
        printf("\n");
    }
    return 0;
}

填坑,,树状数组:

;;;;#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[100005],n;
//向下修改,向上求和(区间),向上修改,向下求和(点) 
//HDU 1556,树状数组修改区间,【3,5】,修改向下修改,求和向上求和,以他每次所管的都要+/-1 
int lowbit(int x)
{
    return x&-x;
}
int getsum(int i)
{
    int sum=0;
    while(i<=n)
    {
        sum+=a[i];
        i+=lowbit(i);
    }
    return sum;
}//向上求和 
void update(int i,int x)
{
    while(i>0)
    {
        a[i]+=x;
        i-=lowbit(i);
    }
}//向下修改 
int main()
{
    freopen("color.in","r",stdin);
    freopen("color.out","w",stdout);
    while((scanf("%d",&n))==1&&n)
    {
        memset(a,0,sizeof(a));
        for(int i=1;i<=n;i++)
        {
            int x,y;
            scanf("%d%d",&x,&y);
            update(x-1,-1);
            update(y,1);
        }
        for(int i=1;i<=n-1;i++)
        {
            int sum=getsum(i);
            printf("%d ",sum);
        }
        printf("%d\n",getsum(n));
    }
    return 0;
}
【数字孪生与仿真技术】14:数据驱动+机理模型:工业级混合建模实战(附MATLAB完整代码+案例解析) 摘要 本文针对工业建模中机理模型精度不足和数据驱动模型缺乏物理约束的痛点,提出混合建模技术作为解决方案。文章系统阐述了混合建模的3种主流架构(参数校正型、残差补偿型、组件替换型),结合清华大学催化裂化装置的实际案例,分析混合建模的工业应用价值。同时以连续搅拌反应釜(CSTR)为例,提供MATLAB环境下残差补偿型混合模型的完整实现代码,详细展示从机理模型构建到数据驱动补偿的全流程,并给出工程实践中的应对策略,为工业建模提供可落地的技术方案。 关键词 混合建模、机理模型、数据驱动、工业建模、MATLAB 阅读详情

相关推荐

STM32F411CEU6实战:用W25Q64存储多张图片,在240x240 LCD上轮播显示(附源码)

本文详细介绍了如何使用STM32F411CEU6通过SPI接口管理W25Q64 Flash中的多张图片,并在240x240 LCD上实现平滑轮播显示。内容涵盖硬件配置、图片存储方案设计、轮播系统实现及性能优化技巧,特别针对SPI传输优化和多图存储管理提供了实用解决方案。附源码,适合嵌入式开发者参考。

weixin_32025789的博客 308

HDU-1556-Color the ball (线段树和差分数组两种解法)

N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a &lt;= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色。但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗? Input 每个测试实例第一行为一个整数N,(N &lt;= 100000).接下来的N行,每行包括2个整数...

black_hole6的博客 1549

Transformer数学推导——Q38 旋转位置编码(RoPE)的复数形式 对注意力分数的几何影响分析

RoPE 的复数形式为自然语言处理中的位置编码提供了创新且有效的解决方案。通过深入的数学理论分析,明确了其对注意力分数的几何影响及在捕捉位置信息方面的优势。在 LLM 的实际应用中,RoPE 复数形式在多个任务和场景中展现出强大的性能,特别是在处理长序列文本时,能够有效捕捉长距离依赖、缓解位置编码局限性并提升处理效率。然而,RoPE 复数形式也面临计算复杂度高、超参数调整困难和位置信息平衡等挑战。通过合理的优化策略和与其他技术的结合,有望进一步提升其性能。

墨顿随笔 1419

hdu 题目1556 Color the ball(线段树)

Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5853    Accepted Submission(s): 3117 Problem Description N个气球排成一排,从左到右

Hanks软件库 1395

RoboMaster新手必看:用STM32 HAL库搞定大疆M3508电机正反转(附完整代码)

本文详细介绍了如何使用STM32 HAL库驱动大疆M3508电机实现正反转控制,包括硬件准备、PWM配置、电机校准及完整代码实现。特别针对RoboMaster新手常见问题提供了解决方案,如电机抖动、不转等故障排查,并分享了缓启动、DMA更新等进阶技巧,帮助开发者快速掌握电机控制核心技术。

weixin_42519985的博客 226

ChatGPT高效制作PPT:从内容生成到设计优化全流程

人工智能技术正在改变传统办公文档的创作方式,其中自然语言处理(NLP)与生成式AI的结合为内容创作带来了革命性突破。以ChatGPT为代表的大语言模型(LLM)能够理解复杂指令并生成结构化内容,其核心原理是通过海量数据训练获得的语义理解和文本生成能力。在办公自动化场景中,这种技术特别适合解决PPT制作中的两大痛点:内容创作耗时和逻辑架构困难。通过精心设计的提示词工程,AI可以快速输出包含核心要点、数据支撑的完整内容框架,甚至直接生成Markdown格式的代码以便快速转换为PPT。对于商业计划、项目汇报等高频

weixin_42613018的博客 493

Color the ball(hdu 1556) (树状数组+技巧)

Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 27616    Accepted Submission(s): 13420 Problem Description N个气球排成一排,从左到右依次编号为...

代码行 316

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(五级)答案 + 解析

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(五级)答案 + 解析

伶俐角少儿编程 484

Color the ball HDU - 1556 (差分前缀和)

  题解: 用到差分数组和差分数组的前缀和.  #include &lt;iostream&gt; #include &lt;cstdio&gt; #include &lt;algorithm&gt; #include &lt;cmath&gt; #include &lt;set&gt; #include &lt;cstring&gt; #include &lt;stack&gt;

森宝的博客 586

使用AutoDL云服务器训练YOLO计算机视觉网络模型(AutoDL+Xftp+VS Code),附详细操作步骤

AutoDL AI算力云是一个提供人工智能算力服务的云平台。丰富的GPU资源:提供多种GPU型号,包括NVIDIA的A100A800L40V100RTX 4090RTX 3090等,能满足我们在不同场景下的需求,无论是进行大规模的AI训练还是复杂的科学计算等任务,都可以找到合适的GPU资源。灵活的付费方式:支持按量付费包日包周包月等多种付费模式。对于短期的实验或不确定时长的项目,可以选择按量付费;如果有长期稳定的算力需求,预付费或包周包月则可能更划算,可以根据自己的需求和预算进行选择。集成主流框架:集成了。

Limiiiing的博客 956

继电器控制LED灯具导致触点烧蚀粘连的解决办法

继电器控制LED灯具导致触点烧蚀粘连的解决办法

2700

HDU 1556:Color the ball

线段树入门

温姑娘的博客 439

Monorepo与pnpm:前端项目管理的完美搭档

pnpm又称 performant npm,翻译过来就是高性能的npm。Monorepo是一种项目开发与管理的策略模式,它代表"单一代码仓库"(Monolithic Repository)。在Monorepo模式中,所有相关的项目和组件都被存储在一个统一的代码仓库中,而不是分散在多个独立的代码仓库中,这些项目之间还可能会有依赖关系。

m0_68271787的博客 2562

树状数组 Color the ball hdu 1556 线段树 洛谷p3372

树状数组和并查集一样,也是一个高级数据结构,编码简单,在算法竞赛中有着极其强大的应用。并查集主要解决的是集合的问题,而树状数组主要解决的则是有关区间的问题;并查集最本质的优化就是可以迅速找到元素所属的集合,树状数组则是可以在动态的数组中快速查询区间和。

2301_80093604的博客 1401

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

差分标记-HDU1556 Color the ball

什么是差分标记? 差分标记,是一种和前缀和相对的离线算法。 所谓差分就是将数组a每一项与前一项做差,记作差分数组b,易得对数组b做一遍前缀和就得到了原来的a数组。 因为是离线算法所以修改操作一定要在查询操作之前,它可以维护多次对序列的一个区间加减上一个数,最后询问某一位的数。

有一分热,发一分光。 5250

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

HDU1556 color the ball【树状数组】解题报告

转载请注明原文地址:http://blog.youkuaiyun.com/huang8579/article/details/8770743 关于树状数组是什么? 请参照百度百科:http://baike.baidu.com/view/1420784.htm 时间复杂度为什么是log(n)? 首先树状数组的思想本身就是一个树,所以在操作的时间复杂度上面和树相似 还可以通过计算来论证: 假设

番茄007的专栏 6143

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

HDU 1556 Color the ball(树状数组 差分)

- HDU 1556 - Color the ball Time Limit: 9000/3000 MS (Java/Others) | Memory Limit: 32768/32768 K (Java/Others) 题意: 給定一个整数 n ,表示有 n 个气球,从 1~n 编号,接下来 n 行,每行有两个整数 a、b,表示从气球 a 到气球 b 給每个气球涂一次颜色,求最后每个气球被...

Pandora_heart的博客 354

HDU 1556 Color the ball 【树状数组】

传送门:HDU 1556 Color the ball Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description N个气球排成一排,从左到右依次编号为1,2,3…N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"...

Waiting For You 245

HDU 1556 Color the ball解题报告

HDU 1556 Color the ball解题报告 一、原题 Color the ball Description N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a 便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色。但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗?   I

Dancinglikelink 753

Color the ball(树状数组区间更新+单点求值)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556 Color the ball Time Limit: 9000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 32297Accepted Subm...

153

HDU 1556 Color the ball(树状数组)

HDU 1556 Color the ball(树状数组) 分析:每次涂色一个区间的时候,只能一个一个数改,然后查询的时候可以直接查询.如果这么做肯定超时. 现在换一种思路:当我们在区间[a,b]涂色的时候,是不是从a点到b点之间的所有点的涂色次数都会加1,但是[1,a-1]和[b+1,n]区间的点都不会影响.我们依然令sum(a)表示a点的涂色次数而不是从1点到a点的涂色次数之和,所以我们在

code 1528

HDU——T 1556 Color the ball

http://acm.hdu.edu.cn/showproblem.php?pid=1556 Time Limit: 9000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 23167Accepted Submission(s): 11249 Pro...

agcozdwdfvds08078的博客 126

HDU 1556 | Color the Ball —— 树状数组

Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 17227    Accepted Submission(s): 8614 Problem Description N个气球排成一排,从

益达的小作坊 403

Color the ball HDU - 1556(BIT)

Color the ball HDU - 1556 N个气球排成一排,从左到右依次编号为1,2,3…N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色。但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗? Input 每个测试实例第一行为一个整数N,(N <= 10...

weixin_43812622的博客 310

Color the ball HDU - 1556(树状数组 区间更新,点查询)

Color the ball HDU - 1556(树状数组 区间更新,点查询) N个气球排成一排,从左到右依次编号为1,2,3…N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色。但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗? Input 每个测试实例第一行为一个...

weixin_43179892的博客 250

HDU 1556 Color the ball

树状数组相对比较基础的入门题目,可以多阅读几次!

mullerwch的专栏 696
上一篇: [bzoj3343]&&[洛谷2810] [分块][块内排序][二分查找]教主的魔法
下一篇: Hdu1166 敌兵布阵 [分块][树状数组][线段树]
Freddddddddddd
博客等级 码龄10年 2粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值