Codeforces Round 923 (Div. 3) D. Find the Different Ones!
写点简单的思维题
https://codeforces.com/problemset/problem/1927/D
思路:用两个数组,一个存储原始数据,一个用nex存该位置第一次不一样的下标
#include<iostream>
#include<vector>
#include<algorithm>
#include<math.h>
#include<sstream>
#include<string>
#include<string.h>
#include<iomanip>
#include<stdlib.h>
#include<map>
#include<queue>
#include<limits.h>
#include<climits>
#include<fstream>
#include<stack>
typedef long long ll;
using namespace std;
int nex[200010];
int alst[200010];
int main()
{
int t; cin >> t;
int nn = 0;
for (int iii = 0; iii < t; iii++)
{
memset(nex, 0, sizeof(nex));
memset(alst, 0, sizeof(alst));
nn = 0;
int n; cin >> n;
for (int i = 0; i < n; i++) {
cin >> alst[i];
if (i > 0 and alst[i] != alst[i - 1])
{
nex[nn] = i;
nn = i;
}
}
for (int i = 1; i < n; i++)
{
if (alst[i] == alst[i - 1])
nex[i] = nex[i - 1];
}
int tt; cin >> tt;
for (int ii = 0; ii < tt; ii++)
{
int l, r;
cin >> l >> r;
l--, r--;
if (nex[l] > r or nex[l] == 0)cout << "-1 -1" << endl;//这里不能落了nex[l] == 0的判断,因为还有可能根本就不存在这个数,当然也可以把都是0的拿length替换,思路不变
else cout << nex[l]+1 << ' ' << l+1 << endl;//注意这里的下标
}
cout << endl;
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】