首页 > 其他分享 >牛客练习赛 115 记录

牛客练习赛 115 记录

时间:2023-09-08 22:22:21浏览次数:46  
标签:cnt 练习赛 int scanf pos 115 牛客 -- include

牛客练习赛115

赛时 AC 题目

A. Mountain sequence

点击查看代码
/*
1. 根据山峰数列的定义,用排列组合知识去计算即可。
*/
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1e5+5;
int t,n;
int a[maxn];
ll ans;
const int MOD=998244353;
int main()
{
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		ans=1ll;
		for(int i=1;i<=n;i++)
			scanf("%d",&a[i]);
		sort(a+1,a+n+1);
		int e=n;
		while(a[e]==a[n]) e--;
		int cnt=0,s=0;
		for(int i=1;i<=e;i++)
		{
			if(a[s]!=a[i])
			{
				ans=(cnt+1)*ans%MOD;
				s=i,cnt=1;
			}
			else cnt++;
		}
		ans=(cnt+1)*ans%MOD;
		printf("%lld\n",ans);
	}
}

B. Antiamuny wants to leaern binary search again

点击查看代码
/*
1. 模拟+贪心的水题。
*/
#include<bits/stdc++.h>
using namespace std;
int t,l,r,cnt;
int main()
{
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d%d%d",&l,&r,&cnt);
		int pos;
		while(cnt&&l<=r)
		{
			pos=(l+r)>>1;
			if(r-pos>pos-l) l=pos+1;
			else r=pos-1;
			cnt--;
		}
		if(cnt) printf("-1\n");
		else printf("%d\n",pos);
	}
	return 0;
}

C. Find the maximum slope

点击查看代码
/*
1. 突破点在于发现,$\max\limits_{i\ne j}\{|\frac{a_i-a_j}{i-j}|\}$ 一定在当 $j=i+1$ 时取到(可以用**反证法**证明),故只需计算相邻元素的差的最大值。
2. 对于 $a$ 的差分数组 $d$,要求满足**单点修改**和**求区间最大值**的操作。本题中,由于区间一直是 $[2,n]$,故可直接用 $L$ 维护区间最大值,然后每次修改 $d$ 数组时,更新 $L$。
3. 代码中用了线段树,是因为当时没有注意到区间一直是 $[2,n]$(nt 了)。
*/
#include<bits/stdc++.h>
#define ld long double
#define lson i<<1
#define rson i<<1|1
using namespace std;
const int maxn=5e5+100;
int n,q,a[maxn];
struct ST
{
	int mx,mi;
}t[maxn<<2];
void build(int i,int L,int R)
{
	if(L==R) 
	{
		t[i].mx=t[i].mi=a[R+1]-a[R];
		return;
	}
	int mid=(L+R)>>1;
	build(i<<1,L,mid),build(i<<1|1,mid+1,R);
	t[i].mx=max(t[i<<1].mx,t[i<<1|1].mx);
	t[i].mi=min(t[i<<1].mi,t[i<<1|1].mi);
	return;
}
void merge(int i,int l,int r,int pos,int k)
{
	if(l==r&&l==pos)
	{
		t[i].mx+=k,t[i].mi+=k;
		return;
	}
	int mid=(l+r)>>1;
	if(pos<=mid) merge(lson,l,mid,pos,k);
	else merge(rson,mid+1,r,pos,k);
	t[i].mx=max(t[i<<1].mx,t[i<<1|1].mx);
	t[i].mi=min(t[i<<1].mi,t[i<<1|1].mi);
	return;
}
int main()
{
	scanf("%d%d",&n,&q);
	for(int i=1;i<=n;i++)
	scanf("%d",&a[i]);
	build(1,1,n-1);
	printf("%lf\n",1.0*max(abs(t[1].mx),abs(t[1].mi)));
	while(q--)
	{
		int l,r,k;
		scanf("%d%d%d",&l,&r,&k);
		if(l-1)merge(1,1,n-1,l-1,k);
		if(r<n)merge(1,1,n-1,r,-k);
		printf("%lf\n",1.0*max(abs(t[1].mx),abs(t[1].mi)));
	}
	return 0;
}

赛事未 AC 的题目(待补)

D. Genealogy in the trees

E. High contrast pattern

F. Jewel maximizing magic

标签:cnt,练习赛,int,scanf,pos,115,牛客,--,include
From: https://www.cnblogs.com/shyiaw/p/17688661.html

相关文章

  • 2023牛客暑期多校训练营4
    A.BoboStringConstruction题意:给定一个01串t,构造一个长度为n的01串s,时的t+s+t中t只在首和尾出现。分析:结论,s取全0或者全1。①假设t全0或者全1,那我s和t取相反的即可。②假设t既包含0又包含1,首先t不可能是s的子串,那我们只需考虑t是否可以由t的后缀加上s再加上t的前缀得......
  • 牛客——SQL263 牛客每个人最近的登录日期(四)
    描述牛客每天有很多人登录,请你统计一下牛客每个日期登录新用户个数,有一个登录(login)记录表,简况如下:iduser_idclient_iddate1212020-10-122322020-10-123122020-10-124222020-10-135122020-10-136312020-10-147412020-10-1......
  • 牛客——SQL254 统计salary的累计和running_total
    描述按照salary的累计和running_total,其中running_total为前N个当前(to_date='9999-01-01')员工的salary累计和,其他以此类推。具体结果如下Demo展示。。CREATETABLEsalaries(emp_noint(11)NOTNULL,salaryint(11)NOTNULL,from_datedateNOTNULL,to_datedate......
  • 软件测试|Chrome 115之后的版本,如何更新driver?
    问题描述前两天在运行一个web自动化测试脚本时,报了如下的错误,ThisversionofChromeDriveronlysupportsChromeversion113Currentbrowserversionis115.0.5790.110withbinary,如下图所示:该报错提示我,当前的driver只支持113版本的Chrome浏览器,但是我的Chrome已经自动更新......
  • 牛客——SQL253 获取有奖金的员工相关信息
    描述现有员工表employees如下:emp_nobirth_datefirst_namelast_namegenderhire_date100011953-09-02GeorgiFacelloM1986-06-26100021964-06-02BezalelSimmelF1985-11-21有员工奖金表emp_bonus:emp_noreceviedbtype100012010-01-011......
  • 2023牛客暑期多校训练营9
    D.Non-Puzzle:ErrorPermutation题意:给出一个排列,计算其有多少个子区间,满足区间内的第\(i\)个数不是第\(i\)小的数Solution首先明白一点,对于一个数,它的大小排序只会变大而不会变小,变大的要求是后面遇到比它小的数。所以我们可以发现,对于一个数,它会有以下几种情况:1.在开始的......
  • Ads error: 4115
    Error 'TwinCATSystem'(10000):Sendingamscommand>>Init4\RTime:StartInterrupt:Tickerstarted>>Adserror:4115(0x1013,RTIME:systemclocksetupfails.Hint:OnWindows8systemexecutewin8settick.batinTwinCAT\3.1\Syst......
  • 牛客——SQL166 每天的日活数及新用户占比
    描述用户行为日志表tb_user_logiduidartical_idin_timeout_timesign_cin110190012021-10-3110:00:002021-10-3110:00:090210290012021-10-3110:00:002021-10-3110:00:090310102021-11-0110:00:002021-11-0110:00:421410290012021......
  • 2023牛客多校训练营2
    B.LinkwithRailwayCompany最大权闭合子图问题,树链剖分建图求解简述最大权闭合子图:现有一有向图,所有点都有一个权值,你需要选择一个子图,使得子图所有点的出边都指向子图内部,问子图最大权考虑网络流,源点向所有正权点连流量为权值的边,所有负权点向汇点连流量为权值绝对值的边,......
  • 【牛客周赛 Round 10】A-D题解
    Ahttps://ac.nowcoder.com/acm/contest/64272/A题意游游定义一个数组为“稳定的”,当且仅当数组相邻的两个元素之差的绝对值不超过1。例如[2,3,2,2,1]是稳定的,而[1,3,2]则不是稳定的。游游拿到了一个数组,她想求出该数组的最长的“稳定的”连续子数组的长度。题解首先,如果在某......