当前位置: 首页 > news >正文

codeforcesB. Alice‘s Adventures in Permuting

目录

题目: 

思路分析:

总代码:

题目: 

https://codeforces.com/contest/2028/problem/B

B. 爱丽丝的排列冒险

每个测试时间限制:1秒
每个测试内存限制:256兆字节

爱丽丝把“嬗变”和“排列”搞混了!她有一个由三个整数 nn、bb、cc 定义的数组 aa:数组 aa 的长度为 nn,且 ai=b⋅(i−1)+cai​=b⋅(i−1)+c(1≤i≤n1≤i≤n)。例如,当 n=3n=3、b=2b=2、c=1c=1 时,a=[2⋅0+1,2⋅1+1,2⋅2+1]=[1,3,5]a=[2⋅0+1,2⋅1+1,2⋅2+1]=[1,3,5]。

现在,爱丽丝特别喜欢长度为 nn 的排列(即包含 00 到 n−1n−1 所有整数的数组),并希望通过操作将 aa 转化为排列。每次操作中,爱丽丝会将当前数组的最大元素替换为该数组的 MEX(即数组中缺失的最小非负整数)。如果有多个最大值,她选择最左边的那个进行替换。

请你帮助爱丽丝计算,最少需要多少次操作才能使 aa 首次成为排列。如果不可能实现,请输出 −1−1。

排列定义:长度为 nn 的排列是指包含 00 到 n−1n−1 所有整数且不重复的数组。例如,[1,2,0,4,3][1,2,0,4,3] 是排列,但 [0,1,1][0,1,1] 不是(重复出现 11),[0,2,3][0,2,3] 也不是(n=3n=3 但包含 33)。

MEX 定义:数组的 MEX 是指未出现在数组中的最小非负整数。例如,[0,3,1,3][0,3,1,3] 的 MEX 是 22,而 [5][5] 的 MEX 是 00。

输入格式

每个测试包含多个测试用例。第一行输入测试用例数量 tt(1≤t≤10.5,1≤t≤10.5)。随后每个测试用例占一行,包含三个整数 nn、bb、cc(1≤n≤10.18,1≤n≤10.18,0≤b,c≤10.18 0≤b,c≤10.18)。

输出格式

对于每个测试用例,如果无法使 aa 成为排列,输出 −1−1。否则,输出使其首次成为排列所需的最少操作次数。

思路分析:

关键点:这个数组是非递减数组,b等于零时是常数组,b不等于零时是递增数组;

因此我们根据b的正负来分类讨论

同时本数组的最小值一定是c,且数组中小于(n-1)的部分后序可以不用执行操作步骤,只需执行大于n-1的部分的次数即可

总代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1000 + 10;
void solve(){int n,b,c;cin >> n >> b >> c;if(b==0){if(c>n-1)cout << n<<endl;else if(c>=n-2)cout << n-1<<endl;else cout << -1 << endl;}else{ if(c>n-1){cout << n << endl;}else if(c==n-1){cout << n-1 << endl;}else {int cnt = (n - 1 - c) / b + 1;cout << n - cnt << endl;}
}
}
signed main(){ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);int q; cin >> q;while(q--){solve();}return 0;
}

 

http://www.xdnf.cn/news/188911.html

相关文章:

  • 「地平线」创始人余凯:自动驾驶尚未成熟,人形机器人更无从谈起
  • C++编程指南39 - 不要特化函数模板
  • Callable Future 实现多线程按照顺序上传文件
  • yolov5 源码 +jupyter notebook 笔记 kaggle
  • quickbi finebi 测评(案例讲解)
  • MySQL 主从复制
  • 图像保边滤波之BEEPS滤波算法
  • KUKA机器人自动备份设置
  • vscode 使用gitcode团队管理项目
  • 区块链随学随记
  • jetson nano上Ubuntu系统调用摄像头bug
  • 塔能科技:点亮节能之光,赋能工厂与城市
  • 20250428-AI Agent:智能体的演进与未来
  • 包装产线通过canopen转Profinet网关控制伺服
  • 关于常量指针和指向常量的指针
  • 泰山派常用命令
  • map和set:
  • ai环境conda带torch整体迁移。
  • 一文了解 模型上下文协议(MCP)
  • word插入APA格式的参考文献
  • NGINX ngx_http_addition_module 模块响应体前后注入内容
  • VS2022+OpenCasCade配置编译
  • 【leetcode】最长公共子路径问题
  • 从大众传媒到数字生态:开源AI智能名片链动2+1模式S2B2C商城小程序驱动的营销革命
  • prompt提示词编写技巧
  • Context7 MCP:提供实时、版本特定的文档以解决AI幻觉问题
  • Go 语言入门:(一) 环境安装
  • 大语言模型(LLMs)微调技术总结
  • web 基础与 http 协议
  • 【JAVA ee初阶】多线程(3)