首页 > 其他分享 >Codeforces Round 923 (Div. 3) D. Find the Different Ones!

Codeforces Round 923 (Div. 3) D. Find the Different Ones!

时间:2024-03-19 20:22:19浏览次数:26  
标签:Different nn int alst Codeforces cin nex include Round

写点简单的思维题
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;
}

标签:Different,nn,int,alst,Codeforces,cin,nex,include,Round
From: https://www.cnblogs.com/zzzsacmblog/p/18083874

相关文章

  • 1948.Educational Codeforces Round 163 - sol
    202403补题效率低下。场上发挥并不是很好,A~E都是简单的,而场上没有去推F的式子,只是找了找规律,然后发现是一个不可做的东西就下播了。如果直接推式子就会很快地做出来,还是非常可惜。A.SpecialCharactersYouaregivenaninteger\(n\).Yourtaskistobuildast......
  • Codeforces Round 920 (Div. 3)----->E. Eat the Chip
    一,思路:1.这是一道博弈论的题目(两个人都绝顶聪明,所以每个人都会按最优方案进行)。这题你会发现,两个人从一开始就已经确定了结局。2.如假如他们俩的棋子在竖直方向上距离相差的值是偶数,那么一定就两个结果Alice赢或者平局,反之奇数则是Bob赢或者平局(仔细分析一下就能得知)。3.所......
  • Codeforces Round 918 (Div. 4)----->E. Romantic Glasses
    一,思路:这题是一道前缀和的扩展题。题目要我们求是否有一个区间内的奇偶之和是否相等,我们可以对数组重新赋值,奇数位赋值为负数,偶数位不变。这样我们后面求前缀和,只要看有没有一段区间和为零的。二,代码:#include<iostream>#include<cstring>#include<algorithm>#include<vec......
  • 复旦勰码 3 月月赛 II & ZHYOI Round 4
    【LGR-179-Div.2】复旦勰码3月月赛II&ZHYOIRound4\(T1\)luoguP10251农场\(100pts\)注意到未注明给的是哪两个对角顶点。赛时没注意到这一点,并因此吃了发罚时。点击查看代码intmain(){lln,x1,y1,x2,y2,xmax=-0x7f7f7f7f,xmin=0x7f7f7f7f,ymax=-0x7f7f......
  • CodeForces 1943D2 Counting Is Fun (Hard Version)
    洛谷传送门CF传送门被自己的赛时智障操作气笑了。谁告诉你容斥钦定了几个要记到状态里面的。。。/tuu显然先找“好数组”的充要条件。对原数组\(a\)差分,设\(b_i=a_i-a_{i-1}\)。那么一次可以选择一对\((i,j)\)满足\(i\lej-2\),然后给\(b_i\)减\(1\),给\(b_......
  • Codeforces Round 933 G. Rudolf and Subway
    原题链接:Problem-G-Codeforces思路:根据题意可知相同颜色的边一定是联通的,那么就可以设置虚点,例如1-2,2-3,3-4边的颜色都是相同的,那么就可以设置一个特殊的点例如设置为10,那么这三条边就可以改成1-10,10-2,2-10,10-3,3-10,10-4,从点到虚点需要1的代价,但是从虚点到其他点不需要代价,......
  • CodeForces 1943C Tree Compass
    洛谷传送门CF传送门发现对于一条链,一次操作最多能染黑这条链上的\(2\)个点。所以我们把直径拎出来,设直径长度为\(d\)。考虑一条长度为\(d\)的链至少要多少次能全染黑。若\(d\)为奇数,显然从直径中点\(u\)开始做\((u,0),(u,1),\ldots,(u,\frac{d-1}{2})\)......
  • cfRound933div3-E题解
    E-RudolfandkBridges题意:选择的桥在连续的行中,每个桥的支架安装位置是可以不一样的.做法:赛时也感觉也感觉是dp,但是害怕dp,就选择了逃避.往贪心方向想,认为每次到了每个跳板都要跳到最远距离,实际上这样是不行的.很明显,可能存在近一点的点花费更少。实际上是dp,而且也不......
  • Codeforces Round 933 Rudolf and k Bridges
    原题链接:Problem-E-Codeforces题目大意:给一个行为n列为m的河流二维数组,数字代表河流的深度。题目要求连续建造k座桥,桥的定义是从第一列到第m列,每隔d需要按照支架,安装支架的代价是深度+1。问安装最少需要多少代价?思路:单调队列优化dp,dp数组只需要一维,dp[i]的含义是从1到i建......
  • codeforces 1931E
    题目链接简介:对一些数字,余念安可以反转一个数字,齐夏将两个数字首尾相连变为一个数字。每个人都采取最优策略。名单上只剩下一个号码。如果该整数不小于 10的m次方,则齐夏获胜。否则余念安就赢了。分析:博弈论问题,结局已经确定,可知变成了位数个数之争,齐夏要通过合并数字使得......