zoukankan      html  css  js  c++  java
  • Wannafly挑战赛13 D 思维 E 线段树

    D applese的生日

    题目描述

    最可爱的applese生日啦,他准备了许多个质量不同的蛋糕,想请一些同学来参加他的派对为他庆生,为了不让一部分同学感到不爽,他决定把每个蛋糕都分割成几份(也可以不分割),使得最小的蛋糕的质量与最大的蛋糕的质量的比值不小于一个值。但是applese的刀功并不是很好,所以他希望切尽量少的刀数使得所得到的蛋糕满足条件。由于applese为了保证每一块蛋糕的质量和期望的没有偏差,所以他一刀只能切下一块蛋糕,即将一块蛋糕分成两块,同时,他不能一刀同时切两块蛋糕,也就是说,applese一次只能将一块蛋糕分割成两块指定质量的蛋糕,这两块蛋糕的质量和应等于切割前的蛋糕的质量。Applese还急着准备各种派对用的饰品呢,于是他把这个问题交给了你,请你告诉他至少要切割几次蛋糕
    输入描述:

    第一行包括两个数T,n,表示有n个蛋糕,最小的蛋糕的质量与最大的蛋糕的质量的比值不小于T
    接下来n行,每行一个数wi,表示n个蛋糕的质量

    输出描述:

    输出包括一行,为最小切割的刀数
    数据保证切割次数不超过500

    示例1
    输入

    0.99 3
    2000 3000 4000

    输出

    6

    备注:

    0.5 < T < 1
    1 <= n <= 1000
    1 <= wi <= 1000000

    官方题解:
    首先有一个结论:每块蛋糕分成的每一块的大小是相同的。
    基于这个结论,每次找到当前划分最大块所在的大块并将其划分数+1,检查是否满足题目的要求。
    考虑这个结论为什么是正确的:
    考虑一个蛋糕切的刀数不变,那么可以想到假如分割得到的块是不同的,那么可能的贡献是增加最大和最小之间的差值,那么这样答案只会更劣,所以可以想到分成的每个块的大小是相同的。那么只要按照上面模拟就可以了,这题妥妥的送温暖题啊。
    tags:
    感觉好玄学的一道题。。。首先这个结论要想到,想不到也要猜到=_= 然后就是优先队列模拟一下就好了。
    代码:https://paste.ubuntu.com/p/jTtKwJJsSH/

    E VVQ 与线段

    题目描述
    VVQ 最近迷上了线段这种东西
    现在他手上有 n 条线段,他希望在其中找到两条有公共点的线段,使得他们的异或值最大。 定义线段的异或值为它们并的长度减他们交的长度

    输入描述:

    第一行包括一个正整数 n,表示 VVQ 拥有的线段条数。
    接下来 n 行每行包括两个正整数 l,r,表示 VVQ 拥有的线段的 左右端点。

    输出描述:

    一行一个整数,表示能得到的最大异或值

    示例1
    输入

    3
    10 100
    1 50
    50 100

    输出

    99

    说明

    选择第二条和第三条,99-0=99

    备注:

    1<=n<=200000,1<=l<=r<=1e8

    tags:
    容易想到就两种情况:相交或包含。
    我们先按左端点排序,设有两个线段 a、b, 且 b 在后,
    1】相交, a.l<=b.l && b.l<=a.r && a.r<=b.r 。
    答案是 b.r-a.l - (a.r-b.l) = (b.l+b.r) - (a.l+a.r) , 所以只要得到前面最小的 a.l+a.r 即可。
    2】包含, a.l<=b.l && b.r<=a.r 。
    答案是 (a.r-a.l) - (b.r-b.l) , 所以只要得到前面最大的 a.r-a.l 。
    代码:https://paste.ubuntu.com/p/kRFT9XWBzS/

  • 相关阅读:
    linux给用户添加sudo权限
    VirtualBox下安装ubuntu图文教程以及软件安装
    线程池代码(通用版)
    linux下配置jdk+tomcat
    线程池代码(加强版)
    线程池的理解与简单实现(学习版)
    条件变量pthread_cond_wait()和pthread_cond_signal()详解
    五种编程模型
    Linux线程退出、资源回收、资源清理的方法
    数据结构
  • 原文地址:https://www.cnblogs.com/sbfhy/p/8883795.html
Copyright © 2011-2022 走看看