1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

解题思路

设第 iii 名亲戚的到访时刻为等差序列 {ai,2ai,3ai,… }\{a_i, 2a_i, 3a_i,\dots\}{ai​,2ai​,3ai​,…}。把所有亲戚的到访时刻合并并按“时间升序、同一秒按编号升序”排序,要求第 kkk 次到访对应的亲戚编号。

核心做法是参数二分(Binary Search on Answer)+ 计数函数:

  1. 定义计数函数 对于任意时刻 ttt,统计截至 ttt 秒内到访的总次数:

P3804.第2题-亲戚叫吃饭

    1000ms Tried: 6 Accepted: 3 Difficulty: 5 所属公司 : 极兔速递
    算法与标签>二分算法

题目内容

阿宅的寒假共有 TTT 天;每天有 nnn 名亲戚来他家做客;每到饭点时,所有亲戚会来叫在房间里编程的阿宅吃饭;第 iii 名亲戚每隔 aia_iai​ 秒会来一次,首次来叫的时间为 aia_iai​ 秒(即,第 iii 名亲戚的到访时间为 ai,2ai,3ai,…a_i, 2a_i, 3a_i, …ai​,2ai​,3ai​,…)。

阿宅想知道,每一天第 kkk 次来叫他的亲戚编号;若同一秒内有多名亲戚同时来叫,则编号较小者优先。

输入描述

每个测试文件包含多组测试数据。第一行输入一个整数 T(1≤T≤30)T (1 ≤ T ≤ 30)T(1≤T≤30),表示寒假天数;

此后对每天数据,描述如下:

  • 在一行上输入两个整数 nnn 和 k(1≤n≤105;1≤k≤109)k (1 ≤ n ≤ 10^5; 1 ≤ k ≤ 10^9)k(1≤n≤105;1≤k≤109),分别表示亲戚人数和要查询的第 kkk 次。
  • 在一行输入 nnn 个整数 a1,a2,…,an(1≤ai≤109)a_1, a_2, …, a_n (1 ≤ a_i ≤ 10^9)a1​,a2​,…,an​(1≤ai​≤109),表示第 iii 名亲戚来叫的时间间隔。

除此之外,保证单个测试文件的 nnn 之和不超过 2×1052 × 10^52×105 。

输出描述

对于每一组测试数据,输出一行。输出一个整数,表示对应天第 kkk 次来叫吃饭的亲戚编号。

样例1

输入

6
3 1
1 2 3
3 2
1 2 3
3 3
1 2 3
3 4
1 2 3
3 5
1 2 3
3 6
5 7 11

输出

1
1
2
1
3
1

说明

对于第一、二、三、四、五组测试数据,每一秒的到访序列依次为:

  • 第一秒,仅有亲戚 111 来叫;
  • 第二秒,亲戚 111 和 222 来叫;
  • 第三秒,亲戚 111 和 333 来叫。

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 2, 39ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?