`
Simone_chou
  • 浏览: 198673 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

Domino Principle(排序)

    博客分类:
  • CF
 
阅读更多
E. Domino Principle
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

Vasya is interested in arranging dominoes. He is fed up with common dominoes and he uses the dominoes of different heights. He put ndominoes on the table along one axis, going from left to right. Every domino stands perpendicular to that axis so that the axis passes through the center of its base. The i-th domino has the coordinate xi and the height hi. Now Vasya wants to learn for every domino, how many dominoes will fall if he pushes it to the right. Help him do that.

Consider that a domino falls if it is touched strictly above the base. In other words, the fall of the domino with the initial coordinate x and height h leads to the fall of all dominoes on the segment [x + 1, x + h - 1].

Input

The first line contains integer n (1 ≤ n ≤ 105) which is the number of dominoes. Then follow n lines containing two integers xi and hi ( - 108 ≤ xi ≤ 108, 2 ≤ hi ≤ 108) each, which are the coordinate and height of every domino. No two dominoes stand on one point.

Output

Print n space-separated numbers zi — the number of dominoes that will fall if Vasya pushes the i-th domino to the right (including the domino itself).

Sample test(s)
input
4
16 5
20 5
10 10
18 2
output
3 1 4 1 
input
4
0 10
1 5
9 10
15 10
output
4 1 2 1 

     

       题意:

       给出 n(1 ~ 100000),代表有 n 张牌,后给出 n 张牌的 x 坐标和 h 高度,问每张牌向右倒的话,一共最多能倒多少张牌。

 

       思路:

       排序。记录每张牌能到达的最远的坐标 next,输出顺序 idex,x 坐标 num,最大能到达的牌数 to。先对 num 由小到大 sort 一遍,后从最后一张牌开始往后倒,因为最后一张牌倒的话只有 1 张,之后判断的时候,判断能不能使下一张牌倒下,如果能则这张牌倒下的牌数加上下一张牌的倒排数,同时跳到这张牌能到达的最远牌数(即 num [ i ].to += num [ i + 1 ].to 且 to += no [ i + 1 ].to )。最后输出的时候按 idex 由小到达再 sort 一遍后,一次输出 to 即可。

        比赛的时候心态很重要。对于边界处理真的是非常烦躁,明明会做的题一直卡在代码的实现上,有时候又因为太过紧张而漏洞百出,忘这忘那呢,思路又混乱,必须提高思维的练习才行。

 

        AC:

#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

const int MAX = 100005;

typedef struct {
    int idex, num, next, to;
}node;

node no[MAX];

bool cmp1 (node a, node b) { return a.num < b.num; }
bool cmp2 (node a, node b) { return a.idex < b.idex; }

int main() {

    int n;
    scanf("%d", &n);

    for (int i = 0; i < n; ++i) {
        int ans;
        scanf("%d%d", &no[i].num, &ans);
        no[i].next = no[i].num + ans - 1;
        no[i].idex = i;
    }

    sort(no, no + n, cmp1);
    no[n - 1].to = 1;

    for (int i = n - 2; i >= 0; --i) {
        int t = i + 1;
        no[i].to = 1;
        while (t < n && no[t].num <= no[i].next) {
            no[i].to += no[t].to;
            t += no[t].to;
        }
    }

    sort(no, no + n, cmp2);
    for (int i = 0; i < n; ++i) {
        printf("%d", no[i].to);
        i == n - 1 ? printf("\n") : printf(" ");
    }

    return 0;
}

 

分享到:
评论

相关推荐

    python访问domino、通过http访问python、python快速访问Domino、python集成domino

    python访问domino、通过http访问python、python快速访问Domino、python集成domino 完全提供源码 界面请查阅 https://blog.csdn.net/weijia3624/article/details/113108704

    domino漂亮登陆界面,domino精美登陆界面,domino漂亮界面,domino web界面,domino精致界面

    domino漂亮登陆界面,使用bootstrap,把数据库直接放到data文件夹下 详情请浏览 https://blog.csdn.net/weijia3624/article/details/48338045

    GO访问domino、通过http访问Domino、GO快速访问Domino、GO集成domino

    GO访问domino、通过http访问Domino、GO快速访问Domino、GO集成domino 完全提供源码 界面请查阅 https://blog.csdn.net/weijia3624/article/details/113108704

    ajax方式展示domino视图

    服务器端的Lotus Domino应用接收到这个请求后,对视图进行相应的排序,并只返回排序后所需显示的那一部分数据,而不是整个视图。 服务器端的处理可能涉及 LotusScript 或者Java编程,根据项目的实际需求和开发者的...

    Java访问Domino的编程指南.doc

    Java 访问 Domino 的编程指南 Java 访问 Domino 的编程指南是指在 Java 语言中如何访问和操作 Domino 对象的编程指南。Domino 是一种商业软件,它提供了强大的信息管理和collaboration 功能。Java 是一种广泛使用的...

    domino前后端彻底分离,请使用最流行的vue 做开发,domino nodejs开发demo, DOMINO cs快速转bs多平台

    1、js代码和nsf代码全在里面 2、servlet上传到\domino\html\attached\下,可能要建立个attached文件夹 3、源代码全公司,没有保留,一看就懂 4、domino cs快速转bs多平台 5、domino nodejs开发demo

    C#访问domino,通过http访问Domino,C#快速访问Domino,C#集成lotus domino

    C#访问domino,通过http访问Domino,C#快速访问Domino,C#集成lotus domino 完全提供源码 界面请查阅 https://blog.csdn.net/weijia3624/article/details/113108704

    lotus domino ODS认识

    Lotus Domino ODS 认识 Lotus Domino ODS(On Disk Structure)是 IBM Lotus Domino 中用于存储数据的文件格式。ODS 版本与 Notes 版本紧密相关,每个 ODS 版本对应着特定的 Notes 版本。 ODS 版本 * ODS 版本 52...

    Domino故障分析及处理方法

    《Domino故障分析及处理方法》 在IT行业中,Lotus Domino是一款广泛应用于企业级邮件、协作和应用开发的服务器软件。然而,如同任何复杂的系统,Domino也可能遇到各种故障,这时就需要进行故障分析和处理。本文将由...

    Domino接口编程及Domino程序优化

    【标题】:“Domino接口编程及Domino程序优化” 在IT行业中,Lotus Domino是一款强大的协同软件平台,常用于企业级应用开发。本主题聚焦于两个关键方面:Domino接口编程和Domino程序优化,旨在提升开发效率和系统...

    由浅入深重新认识HCL Domino.docx

    "HCL Domino/Notes 知识点大全" HCL Domino/Notes 是一款企业级软件产品,-American Lotus Software 公司推出,1995 年被 IBM 收购,2018 年被 HCL 收购。HCL Domino/Notes 是一款群件产品,旨在帮助群组协同工作,...

    java访问domino,通过http访问Domino,java快速访问Domino,java集成lotus domino

    java访问domino,通过http访问Domino,java快速访问Domino,java集成lotus domino 完全提供源码 界面请查阅 https://blog.csdn.net/weijia3624/article/details/113108704

    Domino NotesV11开放下载啦!

    此刻我正在北京的Domino NotesV11培训现场写Domino Notes V11,人数众多,群情激扬。上周五,Domino Notes V11已经开放下载,不知道朋友们下到了没有?要是下到了,告诉大家一个好消息,就是 Domino Notes V11依旧不...

    Domino 开发基础知识

    视图是Domino数据库中数据的一种组织方式,允许用户按不同标准对记录进行排序和过滤。导航则涉及到用户在应用程序中如何从一个页面或视图跳转到另一个。这部分可能涵盖了创建自定义视图、设置视图分类、链接和面包屑...

    Domino的Java编程指南

    你可以通过视图查找特定的文档,或者按照特定的分类和排序规则进行操作。 - **Domino Document**:每个文档代表数据库中的一条记录,可能包含邮件、任务、会议邀请等信息。你可以创建新文档,读取或修改现有文档的...

    lotus domino6.5.3安装

    ### Lotus Domino 6.5.3 安装指南 #### 一、服务器端安装步骤 **第一步:Lotus Domino Server 服务器端安装** 1. **打开安装程序文件夹:** - 打开包含Lotus Domino 6.5.3安装程序的文件夹。 - 运行 `setup.exe...

    Domino連接池解決方案

    标题“Domino连接池解决方案”及描述提到了使用Domino与Oracle数据库进行交互的方法,特别是通过JDBC和连接池技术。本篇文章将详细阐述这个主题。 首先,连接池是一种管理数据库连接的机制,它允许多个应用程序共享...

    lotus domino webservice建立和调用

    Lotus Domino Web服务是IBM Lotus Domino服务器提供的一种功能,允许其他应用程序通过Web Service Description Language (WSDL)接口与Domino应用程序交互。这个技术使得开发者能够利用Lotus Domino的强大功能,如...

    Domino的WebService服务

    【Lotus Domino与WebService服务详解】 Lotus Domino是一款强大的企业级协作软件,它不仅提供了电子邮件、日历、任务管理等功能,还支持通过WebService技术与其他系统进行数据交换和交互。在本文中,我们将深入探讨...

    Domino个人学习总结

    【Domino概述】 Domino是一款强大的协作和应用开发平台,尤其在企业级环境中广泛应用。其核心在于数据库的概念,每个Domino应用程序本质上就是一个数据库,存储和处理各种类型的数据。Domino Web服务器负责处理用户...

Global site tag (gtag.js) - Google Analytics