hdu 5517 Triple (二维树状数组)

Ansys Zemax|无焦系统设计中的角度单位优化技巧 本文详细介绍了在Ansys Zemax OpticStudio中进行无焦系统设计的核心技巧。重点阐述了从聚焦思维到角度思维的转换,并演示了如何通过开启‘无焦像空间’模式、构建以波前和光束尺寸为目标的评价函数来优化激光扩束镜等系统。文章还分享了使用IMSF操作数处理混合系统以及常见误区避坑的实用指南,旨在帮助光学设计者高效完成无焦系统的设计与分析。 阅读详情

Triple

Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1127    Accepted Submission(s): 403


Problem Description
Given the finite multi-set A of n pairs of integers, an another finite multi-set B of m triples of integers, we define the product of A and B as a multi-set

C=A∗B={⟨a,c,d⟩∣⟨a,b⟩∈A, ⟨c,d,e⟩∈B and b=e}

For each ⟨a,b,c⟩∈C , its BETTER set is defined as

BETTERC(⟨a,b,c⟩)={⟨u,v,w⟩∈C∣⟨u,v,w⟩≠⟨a,b,c⟩, u≥a, v≥b, w≥c}

As a \textbf{multi-set} of triples, we define the TOP subset (as a multi-set as well) of C , denoted by TOP(C) , as

TOP(C)={⟨a,b,c⟩∈C∣BETTERC(⟨a,b,c⟩)=∅}

You need to compute the size of TOP(C) .
 

Input
The input contains several test cases. The first line of the input is a single integer t (1≤t≤10) which is the number of test case. Then t test cases follow.

Each test case contains three lines. The first line contains two integers n (1≤n≤105) and m (1≤m≤105) corresponding to the size of A and B respectively.
The second line contains 2×n nonnegative integers
a1,b1,a2,b2,⋯,an,bn

which describe the multi-set A , where 1≤ai,bi≤105 .
The third line contains 3×m nonnegative integers
c1,d1,e1,c2,d2,e3,⋯,cm,dm,em

corresponding to the m triples of integers in B , where 1≤ci,di≤103 and 1≤ei≤105 .
 

Output
For each test case, you should output the size of set TOP(C) .
 

Sample Input
  
2 5 9 1 1 2 2 3 3 3 3 4 2 1 4 1 2 2 1 4 1 1 1 3 2 3 2 2 4 1 2 2 4 3 3 2 3 4 1 3 3 4 2 7 2 7 2 7 1 4 7 2 3 7 3 2 7 4 1 7
 

Sample Output
  
Case #1: 5 Case #2: 12
 

Source
 

Recommend
wange2014

题意:
给了n个二元集<a,b>和m个三元集<c,d,e>。给出了构造另一个元集合的方法,当b==e时构造成三元集C={<a,c,d>}。求top(C)集合。

思路:
第一:当e相同的时候,若可构造多个集合<a1,b,c>,<a2,b,c>...<an,b,c>则取<max(a1,a2,...an)>这个集合。因为小于最大值的都会被舍弃。
第二:去除它的重点。用一个cnt来记录它的重点的个数。为了方便后面的计算。
第三:可以将a,b,c依次按降序来排,然后从后往前面遍历。由b和c构成一个二维平面,每次加点之前看它的右上区域是否还有点,如果有点则该点有Better集合,所以不能加。

代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int a[100005];
int cnt[100005];
int tr[1005][1005];
int lowbit(int i)
{
    return i&(-i);
}
void update(int x,int y,int n)
{
    for(int i=x;i<=n;i+=lowbit(i))
    {
        for(int j=y;j<=n;j+=lowbit(j))
        {
            tr[i][j]++;
        }
    }
}
int query(int x,int y)
{
    int sum=0;
    for(int i=x;i>0;i-=lowbit(i))
    {
        for(int j=y;j>0;j-=lowbit(j))
        {
            sum+=tr[i][j];
        }
    }
    return sum;
}
struct node
{
    int a,b,c,cnt;
    node()
    {
        cnt=0;
    }
}q[100005];
bool cmp(node a,node b)
{
    if(a.a!=b.a)
        return a.a<b.a;
    else if(a.b!=b.b)
        return a.b<b.b;
    else
        return a.c<b.c;
}
int main()
{
    int t,n,m,x,y,z,cas=1;
    scanf("%d",&t);
    while(t--)
    {
        memset(a,0,sizeof(a));
        memset(cnt,0,sizeof(cnt));
        memset(tr,0,sizeof(tr));
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
        {
            scanf("%d%d",&x,&y);
            if(a[y]==0)
            {
                a[y]=x;
                cnt[x]=1;
            }
            else
            {
                if(x>a[y])
                {
                    a[y]=x;
                    cnt[x]=1;
                }
                else if(x==a[y])
                    cnt[x]++;
            }
        }
        int p=0;
        for(int i=1;i<=m;i++)
        {
            scanf("%d%d%d",&x,&y,&z);
            if(cnt[a[z]]==0)
                continue;
            else
            {
                q[p].a=a[z];
                q[p].b=x;
                q[p].c=y;
                q[p].cnt=cnt[a[z]];
                p++;
            }
        }
        sort(q,q+p,cmp);
        int k=0;
        for(int i=1;i<p;i++)
        {
            if(q[k].a==q[i].a&&q[k].b==q[i].b&&q[k].c==q[i].c)
            {
                q[k].cnt+=q[i].cnt;
            }
            else
            {
                q[++k]=q[i];
            }
        }
        int ans=0;
        for(int i=k;i>=0;i--)
        {
            int num=query(1001,1001)-query(1001,q[i].c-1)-query(q[i].b-1,1001)+query(q[i].b-1,q[i].c-1);
            if(num==0) ans+=q[i].cnt;
            update(q[i].b,q[i].c,1001);
        }
        printf("Case #%d: %d\n",cas++,ans);
    }
    return 0;
}


小波变换(深入浅出) 小波变换 阅读详情

相关推荐

基于docker进行安装部署seata,解决Seata的版本与Nacos的版本不匹配

本文分享了在Docker环境下部署Seata时遇到Nacos 3.x API不兼容问题的解决方案。由于Seata 2.0.0内置的nacos-client 1.4.2无法调用Nacos 3.x重构后的接口,导致注册失败。通过下载Seata 2.6.0源码自行构建Docker镜像,并调整启动方式(直接执行Java命令绕过Shell脚本),最终成功实现与Nacos 3.x的集成。关键步骤包括:创建自定义Dockerfile、配置application.yml、处理启动脚本兼容性问题,最终采用java直接运行方案

Dd52698的博客 407

HDU 5517 二维树状数组

HDU 5517  题目链接:  http://acm.hdu.edu.cn/showproblem.php?pid=5517  题意:  有二元组(a,b),三元组(c,d,e)。当b == e时它们能构成(a,c,d)。  然后,当不存在(u,v,w)!=(a,b,c)且u>=a,v>=b,w>=c时,则是一个better集合里的元素。  问这个better集合有几个元素。  思

c_czl的博客 253

【WB32库开发】第9章 TIM1高级定时器——输出多路PWM

PWM(Pulse Width Modulation)意为脉冲宽度调制,简称脉宽调制 。在工控行业,PWM信号可以用来调节电机转速、调节变频器以及BLDC电机驱动等;在LED照明行业,可以通过PWM来控制LED的亮暗变化;还可以通过PWM信号来控制无源蜂鸣器发出简单的声音等。 WB32也可输出PWM,需配置WB32上的定时器。 在WB32中有4个定时器,其中TIM1为高级定时器,TIMx(2-4)为通用定时器,这四个定时器均挂载在APB1总线上,每个定时器都可以输出4路PWM。 本章需要使用固件库TIM例程

北海村夫的博客 4637

hdu 5517 Triple(二维树状数组)

HDU 5517 题目:给出一种有三个元素的顺序,这个数据定义一种偏序,当且仅当一个三元数的所有元素都大于等于另一个时这个数比另一个大.求这个一个集合中不比任何数小的三元数有多少个. 思路:首先排序去重,此时第一维有序,不用考虑,然后只有不存在比当前数的另外两维都大的数时当前数是可选的,用二位树装数组维护这个信息即可. /* * @author: Cwind */ ...

aduqw1129的博客 228

XC7Z010-1CLG400C开发板ADC引脚配置全攻略(附完整引脚列表)

本文详细解析了XC7Z010-1CLG400C开发板的ADC引脚配置方法,涵盖XADC模块基础、CLG400封装的引脚布局、硬件设计规范及Vivado工程配置实战。特别提供了完整的引脚列表和性能优化技巧,帮助开发者高效实现模拟信号采集,适用于Zynq-7000系列开发。

weixin_29188043的博客 466

免费 AIS船舶轨迹预测 数据集 分享 (可用于长周期轨迹预测)

论文中使用的数据由提供。有关预处理步骤的详细信息,请参阅。

qq_43747519的博客 1万+

HDU 1554(Pairs of integers)

#include <iostream> #include <map> #include <iomanip> using namespace std; int N; int H, S, L; int X; map<int, int> res, ri; int main() { while (cin >> N) { res.clear(); ri.clear(); for (int i = 0, num = 1; num <.

Intelligence1028的博客 351

1. SAP Business Application Studio 里创建一个基于 CAP 模型的最简单的 OData 服务

本文基于 SAP Cloud Application Programming 编程模型的 OData 服务开发教程的第一步,简述了 SAP Business Technology Platform 里 Business Application Studio 开发工具的打开方式,创建 Dev Space 以及 CAP 项目的创建步骤,以及如何通过 schema.cds 和 service.cds 分别创建 OData 模型和 OData 服务,最后通过 ports preview 打开 OData 服务预览页

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1798

HDU 5517 Triple (枚举+二维树状数组解决三维点数)

Triple Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 898    Accepted Submission(s): 328 Problem Description Given the finite multi-s

K键盘里的青春K 547

SIMULINK开发项目实例 1000 例专栏之第847例--基于飞行控制与稳定性的场景实例:多旋翼无人机在风扰动下的稳定性分析

本文介绍了使用Simulink进行多旋翼无人机风扰动稳定性分析的完整流程。首先建立包含动力学模型、控制系统和环境模拟三大模块的仿真系统,其中动力学模型基于牛顿-欧拉方程,控制系统采用PID调节器。重点展示了MATLAB函数实现的风扰动模型和姿态控制算法,通过设置输入信号和输出显示模块完成闭环仿真。最后通过多次风速条件下的仿真测试评估控制系统的抗干扰能力和稳定性表现,为无人机控制系统设计提供了有效的仿真验证方法。

xiaoheshang_123的博客 322

【从零开始学习 UVM】1.1、UVM 概述 —— Preface

【从零开始学习 UVM】1.1、UVM 概述 —— Preface

努力,加油每一天鸭~ 826

hdu 5517(二维树状数组)

Given the finite multi-set AA of nn pairs of integers, an another finite multi-set BB of mm triples of integers, we define the product of AA and BB as a multi-set C=A∗B={⟨a,c,d⟩∣⟨a,b⟩∈A, ⟨c,d,e⟩∈B and

黑码 726

【AI智能体】Dify集成 Echarts实现数据报表展示实战详解

Dify集成 Echarts 实现智能数据报表集成与展示实战详解

congge 5962

hdu 5517 Triple(二维树状数组)

Triple Time Limit: 12000/6000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 388Accepted Submission(s): 148 Problem Description Given the finitemulti-se...

diaocuiguo2493的博客 126

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Triple HDU - 5517 二维树状数组

Given the finite multi-set AA of nn pairs of integers, an another finite multi-set BBof mm triples of integers, we define the product of AA and BB as a multi-set  C=A∗B={⟨a,c,d⟩∣⟨a,b⟩∈A, ⟨c,d

mayuqing98的博客 284

老版QQ原生表情gif动态

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

HDU - 5517 Triple 二维树状数组

题意:有二元组(a,b),三元组(c,d,e)。当b == e时它们能构成(a,c,d)。  然后,当不存在 [ (u,v,w)!=(a,b,c)且u>=a,v>=b,w>=c ]时,则是一个better集合里的元素。  问这个better集合有几个元素. 思路:首先能确定的是每一个原来的三元组最多构造一个新的三元组,因为当b == e时,我们只能选所有(a, b)当中a最大的那个(选其

WA是一笔财富 281

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

hdu 5517 Triple 二维树状数组

Triple Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 571    Accepted Submission(s): 204 Problem Description Given the finite mul

便纵有千种风情 663

hdu5517_Triple_二维树状数组

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5517 题意:

no2015214099的博客 513

Triple HDU - 5517 —— 二维树状数组

Given the finite multi-set A of n pairs of integers, an another finite multi-set B of m triples of integers, we define the product of A and B as a multi-set C=A∗B={⟨a,c,d⟩∣⟨a,b⟩∈A, ⟨c,d,e⟩∈B and b=e} ...

天翼之城的博客 255

HDU 5517 Triple ACM/ICPC 2015 Shenyang(二维树状数组)

题目读清楚,脑子不混乱,思路自然就会更清晰……         这题就是给你两个集合A和B。A中每个元素包含两个数字a和b,然后B中每个元素包含三个数字c、d和e。我们规定,如果A中的i元素的b与B中的j元素的e相同,那么把这两个元素合并成<a,c,d>加入C集合中。然后,问C集合中,有多少个元素满足C中不存在某个元素的三个数字都大于等于它且不与其相等。         其实复述的也有点乱,好好理解一下吧……然后初始想法是,显然A中的元素,如果两个元素的b相等,而a一大一小,那么显然小的那个不会对结果产生贡

alpc_qleonardo 692

HDU - 5517 Triple(三维偏序-二维树状数组/CDQ分治)

题目链接:点击查看 题目大意:给出 n 个二元对 ( a , b ) 和 m 个三元对 ( c , d , e ),对于所有 b == e 的二元对和三元对,可以通过某种运算形成一个新的三元对 ( a , c , d ) ,现在问所有的 ( a , c , d ) 中,有多少个三元对满足,不存在另一个三元对 ( a1 , c1 , d1 ) 满足 a1 >= a && c1 >= c && d1 >= d 题目分析:首先需要分析出来,对于所有的二元对 (

Falcon的博客 550

HDU - 5517 Triple(二维树状数组)

Problem Description Given the finite multi-set A of n pairs of integers, an another finite multi-set B of m triples of integers, we define the product of A and B as a multi-set C=A∗B={⟨a,c,d⟩∣⟨a,b⟩∈A, ⟨c,d,e⟩∈B and b=e} For each ⟨a,b,c⟩∈C, its BETTER set

Vmorish 356

HDU 5517 Triple (二维树状数组+数据去重+数学概念)*

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5517 #include&lt;bits/stdc++.h&gt; using namespace std; #define debug puts("YES"); #define rep(x,y,z) for(int (x)=(y);(x)&lt;(z);(x)++) #define read(x...

满月照亮的路 332

[HDU 5517][2015ACM/ICPC亚洲区沈阳站] Triple 二维树状数组

Triple Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 295 Accepted Submission(s): 120Problem Description Given the finite multi-set A of

ATOD 909

HDU 5517 Triple(去重+线段树|二维树状数组)

题面比较恶心,不过题意就是三元组去重之后,问你有多少个三元组题面比较恶心,不过题意就是三元组去重之后,问你有多少个三元组 没有任何一个三元组,三个参数都大于等于它的三个参数没有任何一个三元组,三个参数都大于等于它的三个参数 按照一维排序,另外两维只有1000,直接二维树状数组即可,或者线段树也行按照一维排序,另外两维只有1000,直接二维树状数组即可,或者线段树也行 线段树的话就是一维当作线段

Miracle_ma的专栏 774

HDU 5517 Triple (2015沈阳站I题&&二维树状数组)

题意:给一个nn个二元组:<a,b><a,b>,给mm个三元组:<c,d,e><c,d,e>。如果b=eb=e那么可以合并二元组,三元组,得到一个新的三元组:<a,c,d><a,c,d>。设所有的二元组,三元组组合后得到的新的三元组的集合是CC。 求CC集合中满足条件的三元组的个数。条件:设这个三元组为uu,在这个集合中找不到任何一个元素,使得改元素中每一个数都大于等于uu中对应的成员。分析:学习

无限大な梦のあとの 何もない世の中じゃ 1697
上一篇: poj 2155 Matrix(二维树状数组)
下一篇: NEFU 1265 (贪心+优先队列)
Timeclimber
博客等级 码龄9年 25粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值