首页 > 其他分享 >hi.杂技

hi.杂技

时间:2024-06-10 11:32:22浏览次数:6  
标签:10 le 杂技 ll 凳子 000 hi include

杂技

题目背景

小 L L L 在中考后在家人的催促下前去参观县城的马戏团。啊啊啊,刚刚发现相册里面这张照片找不到了。

题目描述

小 L L L 在刚开始的时候心不在焉,觉得真没意思,看到降龙伏虎、喷火表演真没意思,但当节目进行到人跳凳子的时候,小 L L L 此时来了兴致,津津有味的看着。

该节目就是:一个人起初站在最初的凳子上,一共要跳 n n n 个凳子(这些凳子都必须得跳到),而且他可以指挥助手给他放在特定的位置放 m m m 个凳子。此时小 L L L 想知道的是,他最少跳的最长的距离 l l l 是多少时,才能顺利的跳到最后一个凳子上?

但小 L L L 觉得还不够,他的想象力很丰富,因为每个人都有潜力,小 L L L 就假设有 k k k 次爆发力,那个人能跳最远 3 l 3l 3l 的距离。同时,小 L L L 把凳子的位置抽象成一个坐标,位置为 a i a_i ai​。

但小 L L L 还不仅于此,他还想知道:因为每个人在跳跃的时候都得消耗体力,他定义 b i b_i bi​ 为第 i i i 个凳子的起跳的单位距离体力消耗量(也就是总的体力是: l × b i l\times b_i l×bi​),此时,小 L L L 为了简化计算,把新增的凳子的体力消耗量不算入内

小 L L L 的苦思冥想,因为他知道人脑没有电脑算的快,所以他要求你在 1 s 1s 1s 算出答案,因为他等不及了。快!!!

输入格式

输入第一行: n , m , k n,m,k n,m,k。

输入第二行: a 1 , a 2 , a 3 , . . . , a n + 1 a_1,a_2,a_3,...,a_{n+1} a1​,a2​,a3​,...,an+1​。

输入第二行: b 1 , b 2 , b 3 , . . . , b n + 1 b_1,b_2,b_3,...,b_{n+1} b1​,b2​,b3​,...,bn+1​。

题目不保证同一坐标与体力值一一对应,如果一对多的话,小 L L L 要求在输出的第二行按照排序后的坐标输出(也就是不去重)。

输出格式

输出第一行: l l l, 0 ≤ l ≤ 1 0 8 0\le l\le 10^8 0≤l≤108。

输出第二行:共有 n n n 个数,分别为在每个凳子起跳的体力消耗值 c i c_i ci​。

输出第三行:从起点到终点体力总消耗量 C C C。

注意: 输出的第二行和第三行答案可能很大,我们要对答案对 1 , 000 , 000 , 007 1,000,000,007 1,000,000,007 取模。

样例 #1

样例输入 #1

5 3 1
0 1 3 8 16 21
1 1 1 1 2 4

样例输出 #1

3
3 3 3 3 6 
18

提示说明

在这里插入图片描述

样例解释

当 l l l 为 3 3 3 时,表演者在上 x = 0 x=0 x=0 的凳子,叫助手在坐标为 10 , 13 , 19 10,13,19 10,13,19 的位置增加凳子,然后每次跳的距离为 1 , 2 , 2 , 5 , 3 , 3 , 3 , 2 1,2,2,5,3,3,3,2 1,2,2,5,3,3,3,2,在第四次起跳的时候使用一次爆发力。

接着, c 1 = 1 × 3 c_1=1\times 3 c1​=1×3, c 2 = 1 × 3 c_2=1\times 3 c2​=1×3 …… c 5 = 2 × 3 c_5=2\times 3 c5​=2×3。

最后总的消耗量为: 3 + 3 + 3 + 3 + 6 = 18 3+3+3+3+6=18 3+3+3+3+6=18。

数据范围及规模

1 ≤ n , k ≤ 1 0 6 1\le n,k\le 10^6 1≤n,k≤106, 1 ≤ m ≤ 1 0 8 1\le m \le 10^8 1≤m≤108, 0 ≤ ∣ a i ∣ , b i ≤ 1 0 8 0 \le |a_i|,b_i \le10^8 0≤∣ai​∣,bi​≤108。

注意

题目不保证坐标的顺序是从小到大的。

// #include <iostream>
// #include <algorithm>
// #include <cstring>
// #include <stack>//栈
// #include <deque>//队列
// #include <queue>//堆/优先队列
// #include <map>//映射
// #include <unordered_map>//哈希表
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
const ll N=1e6+10;
const ll p=1e9+7;

struct per
{
    int x,y;
    bool operator<(const per &t)
    {
        return x<t.x;
    }
}a[N];
ll s[N];
ll n,m,k;

bool find(ll c)
{
    ll cnt=0;//组数
    for(ll i=1;i<=n;i++)
        cnt+=max(0ll,(a[i].x-a[i-1].x+c-1)/c-1);

    return cnt<=m+k;
}

int main()
{
    cin>>n>>m>>k;
    for(ll i=0;i<=n;i++)
    {
        cin>>a[i].x;
        a[i].x+=N;
    }
    for(ll i=0;i<=n;i++)
        cin>>a[i].y;

    sort(a,a+n+1);

    ll l=0,r=N;
    while(l+1<r)
    {
        ll mid=(l+r)>>1;
        if(find(mid)) r=mid;
        else l=mid;
    }

    cout<<r<<endl;

    for(ll i=0;i<n;i++)
    {
        cout<<(a[i].y*r)%p<<" ";
        s[i+1]=s[i]+a[i].y;
    }
    puts("");

    cout<<(s[n]*r)%p<<endl;
    return 0;
}

标签:10,le,杂技,ll,凳子,000,hi,include
From: https://blog.csdn.net/2301_80065123/article/details/139552937

相关文章

  • python-10-数据处理得学:while+for循环搭配使用,排查数据和除重
    学习内容:《python编程:从入门到实践》第二版知识点:whilefor循环搭配使用,利用while排查数据,删除重复选项练习内容:练习7-8:熟食店创建一个名为sandwich_orders的列表,在其中包含各种三明治的名字,再创建一个名为finished_sandwiches的空列表。遍历列表sandwich_orders,对于其中......
  • A successful Git branching model
    AsuccessfulGitbranchingmodelhttps://nvie.com/posts/a-successful-git-branching-model/   Themainbranches  SupportingbranchesFeaturebranches ReleasebranchesHotfixbranches  ......
  • spark-3.5.1+Hadoop 3.4.0+Hive4.0 分布式集群 安装配置
    Hadoop安装参考:Hadoop3.4.0+HBase2.5.8+ZooKeeper3.8.4+Hive4.0+Sqoop分布式高可用集群部署安装大数据系列二-CSDN博客一下载:Downloads|ApacheSpark1下载Maven–WelcometoApacheMaven# maven安装及配置教程wgethttps://dlcdn.apache.org/maven/maven-3/......
  • 翻译《The Old New Thing》- On 64-bit Windows, 32-bit programs run in an emulatio
    On64-bitWindows,32-bitprogramsruninanemulationlayer,andifyoudon'tlikethat,thendon'tusetheemulator-TheOldNewThing(microsoft.com)https://devblogs.microsoft.com/oldnewthing/20081222-00/?p=19763RaymondChen 2008年12月22日  ......
  • 翻译《The Old New Thing》- Why isn’t there a SendThreadMessage function?
    Whyisn'tthereaSendThreadMessagefunction?-TheOldNewThing(microsoft.com)https://devblogs.microsoft.com/oldnewthing/20081223-00/?p=19743RaymondChen 2008年12月23日为什么没有SendThreadMessage函数?简要文章讨论了Windows中不存在`SendThread......
  • koishi常用插件推荐
    今天给大家做一个常用插件的推荐以下将插件归为几个大类,按类型推荐1.日常相关点歌插件名:koishi-plugin-music-downloadvoice-api功能介绍:语音点歌-搜索并提供QQ音乐和网易云音乐的歌曲,交互后发送语音消息使用说明:指令点歌<歌名>ai画图插件名:koishi-......
  • 摸鱼大数据——Hive调优1-3
    hive官方配置url:ConfigurationProperties-ApacheHive-ApacheSoftwareFoundation1、调优方式hive参数配置的意义:开发Hive应用/调优时,不可避免地需要设定Hive的参数。设定Hive的参数可以调优HQL代码的执行效率,或帮助定位问题。然而实践中经常遇到的一个问题是,为什......
  • 【因果推断】【Introduction to Causal Inference from a Machine Learning Perspecti
    第一章动机:为什么你可能关心1.1辛普森悖论考虑一个纯粹假设的未来,有一种被称为COVID-27的新疾病在人类中流行。在这个纯粹假设的未来,有两种治疗方法已经被开发出来:治疗A和治疗B。治疗B比治疗A更稀缺,因此目前接受治疗A和治疗B的比例大致为73%/27%。在一个只关心最大限度......
  • [ABC126F] XOR Matching 题解
    很好的构造题。题意请构造一个长度为$2^{m+1}$的序列$a$,该序列满足:$\foralli\in[1,2^{m+1}],a_i\in[0,2^m-1]$且每个数都恰好出现两次。对于任意一对$(i,j)$满足$a_i=a_j$,$a_i\oplusa_{i+1}\oplus\cdots\oplusa_{j-1}\oplusa_j=k$。$\oplus$表......
  • Rhino Linux 2024.1
    RhinoLinux2024.1的发布信息概述如下:1.**开发更新**:  -由于开发者原因,开发进程曾一度停滞,但目前团队已起草了RhinoLinux宪法,重点在于社区参与。  -组织结构的变化将在此次发布后不久生效。  -社区成员可以通过Discord参与即将到来的社区主导的计划。2.**......