hdu5172 GTY's gay friends

2024-08-26 14:18
文章标签 friends gty hdu5172 gay

本文主要是介绍hdu5172 GTY's gay friends,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意:一个数列,有m组询问l,r,需回答l-r是否为一个1-r-l+1的排列。

分析:n个数为1-n的一个排列需满足两个条件,1.和为(n+1)*n/2,2.所有数不相同。1预处理前缀和即可,2先需处理每个数左边与其最近的相同数的位置pre[i],用线段树维护区间l-r各个数pre[i]的最大值mx,若mx<l则满足条件。

#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<iomanip>
#include<map>
#include<algorithm>
#include<queue>
#include<set>
#define inf 10000000
#define pi acos(-1.0)
#define eps 1e-8
#define seed 131
using namespace std;
typedef pair<int,int> pii;
typedef unsigned long long ULL;
typedef long long LL;
const int maxn=1000005;
int d[maxn];
int n,m;
LL tot[maxn];
int pre[maxn];
int pos[maxn];
int tr[maxn<<2];
void pushup(int l,int r,int rt)
{tr[rt]=max(tr[rt<<1],tr[rt<<1|1]);return;
}
void build(int l,int r,int rt)
{if(l==r){tr[rt]=pre[l];return;}int m=(l+r)>>1;build(l,m,rt<<1);build(m+1,r,rt<<1|1);pushup(l,r,rt);
}
int query(int L,int R,int l,int r,int rt)
{int ans=0;if(L<=l&&R>=r){ans=max(ans,tr[rt]);return ans;}int m=(l+r)>>1;if(L<=m){ans=max(ans,query(L,R,l,m,rt<<1));}if(R>m){ans=max(ans,query(L,R,m+1,r,rt<<1|1));}return ans;
}
int main()
{while(~scanf("%d%d",&n,&m)){for(int i=1;i<=n;i++)scanf("%d",&d[i]);tot[0]=0;for(int i=1;i<=n;i++){tot[i]=tot[i-1];tot[i]+=d[i];}memset(pos,0,sizeof(pos));for(int i=1;i<=n;i++){pre[i]=pos[d[i]];pos[d[i]]=i;}build(1,n,1);int a,b;for(int i=0;i<m;i++){scanf("%d%d",&a,&b);LL u=tot[b]-tot[a-1];LL c=(LL)((b-a+2))*(b-a+1)/2;if(u==c){int k=query(a,b,1,n,1);if(k<a)printf("YES\n");elseprintf("NO\n");}elseprintf("NO\n");}}return 0;
}


这篇关于hdu5172 GTY's gay friends的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1108801

相关文章

【并查集】 HDU 3172 Virtual Friends

HDU 3172 Virtual Friends 数据量大,不建议用cin。 #include <iostream>#include <string>#include <algorithm>#include <math.h>#include <stdio.h>#include <cstring>#include <stdlib.h>#include <map>using n

ESP Friends 技术沙龙报名开启|带您掌握高效 GUI 开发

乐鑫 ESP32 系列 SoC 凭借其功能多样、高性价比、封装友好、资源丰富等优势,已成为全球开发者在需要屏幕显示的泛 IoT 应用里作为项目开发的首选平台。 乐鑫信息科技 (688018.SH) 即将举办 ESP Friends 线下技术沙龙。我们将带您深入探索 ESP32-C2 在小尺寸 LCD (0.96" ~ 1.28") 应用上的开发技巧,教您如何巧妙利用其有限的内存资源。同时,我们还

HDU-3172 Virtual Friends 并查集+map

题目链接 #include<stdio.h>#include<iostream>#include<string>#include<string.h>#include<math.h>#include<algorithm>#include<vector>#include<queue>#include<map>using namespace std;const int maxn

UVA 10608 - Friends (并查集)

Problem I FRIENDS   There is a town with N citizens. It is known that some pairs of people are friends. According to the famous saying that “The friends of my friends are my friends, too” it

《Friends》里经典100句!好…

原文地址:《Friends》里经典100句!好好学英语吧! 作者:佳佳hi 1、I won’t let her go without a fight! 我不会轻易放过她的 2、It could happen to anyone./ It happens to anybody./ That happens. 谁都可能会遇到这种情况 3、I’m a laundry virgin.(注意vir

bzoj3729 Gty的游戏

题目链接:bzoj3729 题目大意: 给定一棵有根树,每个节点有一些石子,每次可以将不多于L的石子移动到父节点,询问 将某个节点的子树中的石子移动到这个节点先手是否有必胜策略。 gty很快计算出了策略。 但gty的妹子十分机智,她决定修改某个节点的石子或加入某个新节点。 gty不忍心打击妹子,所以他将这个问题交给了你。 另外由于gty十分绅士,所以他将先手让给了妹子。 有三种操作

C++ 找朋友(friends)

C++ 找朋友(friends) 今天我遇到了一个对于没有学习map的同学非常难的题,题目如下: 题目描述 小学毕业后,同学们都进入了不同的初中,小明非常想念小伙伴们,所以他打算联系小学的同学们。 现在他得到了市内某所初中的所有名单,找出其中小明的小伙伴们。 输入 第一行一个整数n,表示某初中人数。 接下来n行,每行一个字符串,只有小写字母组成,表示该校每个人的拼音。数据保证没有人拼音相同,且

Toys Friends

学如逆水行舟,不进则退 M0c1nu7                                        Keepb1ue ZHH-BA                                        Gmp Fiona                                            NaNa AnotherBl 君子藏器於身待时

F - Petya and His Friends CodeForces - 66D(数论,素数构造)

Examples Input 3 Output 99 55 11115 Input 4 Output 385 360 792 8360 题意: 构造题,构造n个不相同的数,任意两个数gcd不等于1,所有数的gcd等于1. 思路: 个人认为这场最有想头的一道题目。最暴力的思路是打表搞出n个质数,第一个数除了第一个质数不选其他都选相乘,第二个数除了第二个数不选其他都选相乘。当然数据范围是承受不了的(

[bzoj3744]Gty的妹子序列 解题报告

比较显然的做法是用bit维护做到 O(nlog−−−√n) O(n\sqrt \log n)。 但是。。作为一名理论计算机科学家傻逼,我们需要 O(nn√) O(n\sqrt n)的做法,注意到如果我们把 (i,ai) (i,a_i)看成点,实际上要求 O(1) O(1)询问一个矩形内点的个数,这个显然可以用可持久化分块来搞,维护每个块内的前缀和和所有块的前缀和——但是空间复杂度是 3nn√ 3