poj 2481 Cows (树状数组)

树状数组练习:POJ 2481(JAVA) NULL 博文链接:https://128kj.iteye.com/blog/1744222 立即下载

Cows
Time Limit: 3000MS Memory Limit: 65536K
Total Submissions: 19677 Accepted: 6702

Description

Farmer John's cows have discovered that the clover growing along the ridge of the hill (which we can think of as a one-dimensional number line) in his field is particularly good. 

Farmer John has N cows (we number the cows from 1 to N). Each of Farmer John's N cows has a range of clover that she particularly likes (these ranges might overlap). The ranges are defined by a closed interval [S,E]. 

But some cows are strong and some are weak. Given two cows: cow i and cow j, their favourite clover range is [Si, Ei] and [Sj, Ej]. If Si <= Sj and Ej <= Ei and Ei - Si > Ej - Sj, we say that cow i is stronger than cow j. 

For each cow, how many cows are stronger than her? Farmer John needs your help!

Input

The input contains multiple test cases. 
For each test case, the first line is an integer N (1 <= N <= 10 5), which is the number of cows. Then come N lines, the i-th of which contains two integers: S and E(0 <= S < E <= 10 5) specifying the start end location respectively of a range preferred by some cow. Locations are given as distance from the start of the ridge. 

The end of the input contains a single 0.

Output

For each test case, output one line containing n space-separated integers, the i-th of which specifying the number of cows that are stronger than cow i. 

Sample Input

3
1 2
0 3
3 4
0

Sample Output

1 0 0

Hint

Huge input and output,scanf and printf is recommended.

Source

POJ Contest,Author:Mathematica@ZSU

思路:将数据先按照E的降序再按S的升序排,然后用树状数组查询。注意处理0的数据以及重点。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define MAX_N 100005
using namespace std;
int n,tree[MAX_N],sum[MAX_N];
struct node
{
    int s,e,id,cnt,les;
}cows[MAX_N];
int lowbit(int i)
{
    return i&(-i);
}
void update(int i,int x)
{
    while(i<=MAX_N)
    {
        tree[i]+=x;
        i+=lowbit(i);
    }
}
int query(int n)
{
    int sum=0;
    while(n>0)
    {
        sum+=tree[n];
        n-=lowbit(n);
    }
    return sum;
}
bool cmp(node a,node b)
{
    if(a.e!=b.e)
    return a.e>b.e;
    return a.s<b.s;
}
bool cmp2(node a,node b)
{
    return a.id<b.id;
}
int main()
{
    while(~scanf("%d",&n)&&n)
    {
        memset(tree,0,sizeof(tree));
        memset(sum,0,sizeof(sum));
        int x=0,y=0,sum=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%d%d",&cows[i].s,&cows[i].e);

            cows[i].s++,cows[i].e++,cows[i].id=i;
        }
        sort(cows+1,cows+1+n,cmp);
        for(int i=1;i<=n;i++)
        {
            if(x==cows[i].s&&y==cows[i].e)//处理重点的数据
            {
                sum++;
                cows[i].les=sum;
            }
            else
            {
                sum=0,x=cows[i].s,y=cows[i].e;
                cows[i].les=sum;
            }
            update(cows[i].s,1);
            cows[i].cnt=query(cows[i].s)-1-cows[i].les;//les是重点的个数
        }
        sort(cows+1,cows+1+n,cmp2);
        for(int i=1;i<=n;i++)
        {
            if(i==1) printf("%d",cows[i].cnt);
            else printf(" %d",cows[i].cnt);
        }
        printf("\n");
    }
    return 0;
}


UDS 诊断 - CommunicationControl(通信控制)(0x28)服务 诊断 字节参数名称字节值#1CommunicationControl(通信控制)请求SID0x28#2#3communicationType(通信类型)#4nodeIdentificationNumer(节点标识符)(高位字节)controlType 为 0x04 或 0x05 时,使用该参数#5nodeIdentificationNumer(节点标识符)(低位字节)controlType 为 0x04 或 0x05 时,使用该参数。 阅读详情

相关推荐

从零开始STM32cubeide学习

使用的是正点原子的精英版,单片机是STM32F103ZET6,详细讲解完成跑马灯实验

weixin_44077208的博客 2280

POJ——2481

●Poj 2481 ●给你 n 个闭区间,问每一个区间被多少个区间完全包含(完全重合不算)。 ●n ●Time Limit : 1s ●Memory Limit : 256MB 这应该算是一类套路题。对于区间覆盖型问题,普及难度的是贪心,再难一点点就是dp,提高难度的算是数据结构维护一下,如果是dp+数据结构,蒟蒻觉得应该要上省选了= = 这里还是一个树状数组搞一搞

Holylight_Knight 421

deepfake detection数据集

最全Deepfake数据集总结,包含各个数据集下载链接: https://github.com/deepfakeinthewild/deepfake_in_the_wild Dataset name Download Generate method Deepfake videos Actors Deepfake-TIMIT low download De...

where_is_horse的博客 1万+

poj2481(二维偏序+树状数组)

题目链接:poj.org/problem?id=2481 题目描述 农夫约翰的牛发现,他的田地里沿着山脊生长的三叶草(我们可以将其视为一维数字线)特别好。 农夫约翰有N头母牛(我们将母牛的编号从1到N)。每位农夫约翰的N头母牛都有她特别喜欢的三叶草范围(这些范围可能重叠)。范围由闭合间隔[S,E]定义。 但是有些母牛很强壮,有些却很弱。给定两个母牛:母牛i和母牛j,它们最喜欢的三叶草...

mumei的博客 746

【UE5】Vosk插件实战:离线语音识别与TTS朗读全流程解析

本文详细解析了如何在UE5中利用Vosk插件实现离线实时语音转文字功能。从环境配置、插件与模型准备,到核心C++组件封装与蓝图系统搭建,提供了完整的实战教程。重点解决了离线语音识别在游戏开发中的延迟、隐私和网络依赖问题,并演示了从语音识别到TTS朗读的完整交互闭环,为开发安全、实时的语音交互应用提供可靠方案。

weixin_29021291的博客 511

WorkBuddy 实战:从聊天窗口到 AI 工作台,打造个人自动化助理

大模型时代,对话式 AI 常被当作高级搜索框,难以沉淀为生产力。其根源在于上下文断裂——每次对话都从零开始。AI Agent 的核心原理是通过状态保持、工具调用与流程复用,将临时交互固化为可重复的协作机制。WorkBuddy 作为个人 AI 工作台,以 Agent + Skill + 工作流架构解决该问题:Skill 封装操作手册,工作区沉淀知识上下文,自定义指令约束输出风格。这种设计让周报生成、会议纪要、文档初稿、专利检索辅助等重复劳动实现流程化自动产出。掌握 WorkBuddy 怎么用,关键在于从自己重

weixin_33834910的博客 335

POJ 2481-树状数组

题意:给定几个区间,判断该区间是其余区间的真子集个数。 分析:真子集即寻找x,y满足a(小于或等于x),b(大于或等于y)的区间。跟star-POJ2352很类似。 转化:star那个题目是x,y都是从小到大排序,然后直接求y序列前边比y小的数字个数。这个就需要x从小到大排,y从大到小排,然后求y序列的前边比当前更大的y值。其实也是序号 -前边比当前更小的y值。 ...

LYU0820的博客 165

流量特征工程实战:基于Python脚本的CIC-FlowMeter批量自动化处理

本文详细介绍了如何利用Python脚本对CIC-FlowMeter工具进行批量自动化封装,实现从海量PCAP文件中高效提取流量特征并生成CSV文件。通过构建健壮的自动化流水线,解决了手动处理效率低下、易出错的问题,并分享了并行处理、错误处理等关键优化技巧,助力网络流量分析与机器学习数据预处理工作。

c6d7e8f9g的博客 744

Poj--2481(树状数组)

2014-09-0821:53:10 思路:将x非降序排序,x相等时y非升序排序,然后在过程中要注意两头牛的S、E相等的情况,此时应该直接复制上头牛的答案并且将该牛Update,巨坑的是数组开到100005 WA,开到100010竟然就AC了 QAQAQAQAQAQAQAQAQAQAQ。 1 /*****************************************...

dingdi3021的博客 148

机器视觉:9点标定的原理与实现

标定就是将机器视觉处理得到的像素坐标转换成实际项目中使用到的毫米坐标。简单说即使看看实际单位距离内有几个像素,如下图所示,10mm的距离内有222个像素,那像素坐标和实际的毫米坐标就有个比例关系了。

m0_49968063的博客 1万+

WPF实战:HelixToolkit 3D图形开发入门指南

本文详细介绍了如何使用HelixToolkit在WPF中进行3D图形开发,从环境搭建到创建第一个3D程序(如彩色立方体),再到进阶技巧和常见问题排查。通过实战案例和性能优化建议,帮助开发者快速掌握3D场景构建和模型导入技术,提升开发效率。

weixin_29197051的博客 761

POJ - 2481 Cows 树状数组

POJ - 2481 Cows Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 23766 Accepted: 7987 Description Farmer John’s cows have discovered that the clover growing along the ridge of the hill (wh...

EIP_silly的博客 596

YOLOv13改进策略【YOLO和Mamba】| 替换骨干 Mamba-YOLOv13-T !!! 最新的发文热点

模块是模型中的一个重要组成部分,其主要作用是在模型的初始阶段对输入图像进行处理,方便后续的特征提取和目标检测。以下是对。

Limiiiing的博客 354

poj 2481 Cows(树状数组)

poj 2481 Cows(树状数组)

PKU_ZZY的博客 815

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

POJ 2481 Cows(树状数组)

题目来源:http://poj.org/problem?id=2481 问题描述 Cows Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 22461   Accepted: 7586 Description Farmer...

da_kao_la的博客 356

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

poj 2481 cows(树状数组)

题目链接:poj 2481 cows 题意:给出n个牛的坐标,i牛的坐标为[Si,Ei],j牛的坐标为[Sj,Ej],若Si<=Sj,Ej<=Ei并且Ei-Si>Ej-Sj,则牛i比牛j强壮,现在呀要求出每个牛比它强壮的牛的数量。 分析:这道题和poj2352类似,poj 2352是要求在某点左下角的点有多少个,这一题则可以看成是求在某点左上角的点的个数,按纵坐标从大到小排序...

weixin_30896511的博客 156

POJ 2481 Cows && POJ 2352 Stars(树状数组妙用)

在二维坐标上给出一些星星的坐标,求某一个星星左方,下方,左下方的星星个数。题目已经把星星按照Y坐标从小到大,X从小到大排序。因此,在每次对一个星星进行统计时,之前出现过的星星,只要X坐标比其小,则必在其左,下,左下方。 树状数组储存X的坐标。 就像 求逆序数 的方法一样, 统计有多少之前的星星的X坐标小于当前的X坐标。 需要注意的是 X 坐标的范围是32000 ,所以树状数组要开到32000 而不是节点数15000。

Winjourn的专栏 1153

树状数组c语言模板,【树状数组】Cows (POJ2481) PASCAL 解题报告

【树状数组】Cows(POJ2481)Time Limit:1000MSMemoryLimit:65536KTotal Submit:16 Accepted:8Description【问题描述】约翰是一个农民,他养了一群羊,一群很喜欢吃山上的三叶草的羊。所有的三叶草都生长在一条直线上,味道十分美妙。约翰有N头牛,分别叫牛1到牛N。每头牛都有特别中意的三叶草范围,记为[S,E]——这是直线上的一个...

weixin_28899845的博客 198

POJ 2481 Cows(树状数组)

POJ2481 Cows(树状数组) 分析:对于任意两头牛i和j,只有当Si Ej – Sj时,i才比j强壮,即: 如果将所有牛的E区间按从大到小排序(如果E相同,则S小的排在前面)的话,那当前读取到第i个牛的Si和Ei,那么之前(假设任意牛的区间不会完全相同)的牛的Sj(j 所以我们首先对读取到的区间排序,然后可以用树状数组利用牛的S坐标来算出结果(这个算结果要有点注意,如果两个区间完全

code 1263

POJ 2481 Cows 树状数组

题目链接:POJ2481 Cows Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 18579   Accepted: 6249 Description Farmer John's cows have discovered that the clove

teddywang 246

poj2481Cows【树状数组】

Cows Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 15446   Accepted: 5151 Description Farmer John's cows have discovered that the clover growing along th

走一步再走一步 750

POJ - 2481 Cows (单点更新,区间查询(求和)的树状数组)

POJ - 2481 Cows (单点更新,区间查询(求和)的树状数组) 【vj链接】 题目 Farmer John’s cows have discovered that the clover growing along the ridge of the hill (which we can think of as a one-dimensional number line) in h...

xuziling_的博客 252

POJ2481:Cows(树状数组)

POJ2481:Cows(树状数组) Description Farmer John's cows have discovered that the clover growing along the ridge of the hill (which we can think of as a one-dimensiona...

weixin_30770495的博客 95

poj 2481 cows 树状数组

poj 2481 cows 树状数组

klc的博客 530

Cows POJ - 2481 (树状数组)

Cows  题目链接:POJ - 2481  题意:John家里有好多奶牛,所有奶牛都在同一条直线上活动,第i个奶牛活动范围是[Si, Ei],对于两头奶牛i, j来说如果Si&lt;=Sj&amp;&amp;Ei&gt;=Ej&amp;&amp;Ej-Sj&lt;Ei-Si 则奶牛i比奶牛j强壮,也就是说如果j的活动范围在i的活动范围内且不重合的话,奶牛i就比奶牛j强壮;对每个奶牛,求出比他...

Sirius_han的博客 429
上一篇: poj 2352 Stars (树状数组)
下一篇: hdu 1166 敌兵布阵(树状数组裸题)
Timeclimber
博客等级 码龄9年 25粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值