当前位置: 首页> 健康> 美食 > seo的概念是什么_my8777网域名查询_seo关键词挖掘工具_seo外包公司费用

seo的概念是什么_my8777网域名查询_seo关键词挖掘工具_seo外包公司费用

时间:2025/7/17 15:49:31来源:https://blog.csdn.net/2402_87686098/article/details/147597345 浏览次数:0次
seo的概念是什么_my8777网域名查询_seo关键词挖掘工具_seo外包公司费用

目录

题目: 

思路分析:

总代码:

题目: 

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;
}

 

关键字:seo的概念是什么_my8777网域名查询_seo关键词挖掘工具_seo外包公司费用

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: