首页 > 其他分享 >iwtgm-26

iwtgm-26

时间:2023-11-24 12:13:40浏览次数:32  
标签:26 int ll iwtgm 处建 信号 ans maxn

题目链接

A.

拿例子说话
n1,那么在1处建信号站,信号为0
n
2,那么在1和2处建信号站,信号均为0
n3,可以在1,2,3处建信号为0的信号站,也可以在2处建信号为1的信号站
n
4,可以在1,2,3,4处建信号为0的信号站,也可以在2处建信号为1的信号站并在4处建信号为0的信号站,还可以在3处建信号为1的信号站,在1处建信号为0的信号站

总结:在一个地方建信号站,它所能覆盖的范围一定是奇数个

然后写几个例子后发现这样居然满足斐波拉契数列,那么代码就很好写了

ll n;
ll a[N],b[N];
ll mod=998244353;
ll ans;
ll ksm(ll x,ll y,ll p){
    ll res=1;
    while(y>0){
        if(y&1)res=res*x%p;
        x=x*x%p;
        y/=2;
    }
    return res%p;
}
void solve() {
    cin>>n;
    ans=ksm(2,n,mod);
    a[1]=1;a[2]=1;
    for(int i=3;i<=n;i++){
        a[i]=a[i-1]+a[i-2];
        a[i]%=mod;
    }
    cout<<a[n]*ksm(ans,mod-2,mod)%mod;
}

B.

这个思路比较好出,注重在如何简单地实现代码
简单来说,就是连续的非降序的几个数可以在同一层

int n,a[N];
void solve() {
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i];
    if(n==1){
        cout<<0<<endl;return ;
    }
    if(n==2){
        cout<<1<<endl;return ;
    }
    int last=1,now=1,ans=0,k=1;
    for(int i=2;i<n;i++){
        if(a[i]<a[i+1])++now;
        else{
            if(k==last)++ans;
            --last;
            if(last==0){
                k=last=now;now=1;


            }
            else ++now;
        }
    }
    if(now){
        if(k==last)++ans;
        --last;
    }
    cout<<ans<<endl;
}

C.

思路较为好出,注重简单实现代码
先比较哪种操作更划算
对于要消去的一段,火球术的限制是少于k个的不能用该操作,狂暴的限制是若存在数比两端的数大,那么这个数无法消除

int n,m,x,k,y,ans;
int pos[200010],a[200010],b[200010];
bool check()
{
	int l=0,tot=0;
	for(int i=1;i<=m;i++)
	{
		while(a[l]!=b[i])
		{
			l++;
			if(l>n)
			return 0;
		}
		if(a[l]==b[i])
		{
			pos[l]=1;
			tot++;
		}
	}
	return tot==m;
}
signed main()
{
	cin>>n>>m>>x>>k>>y;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i=1;i<=m;i++)
	{
		cin>>b[i];
	}
	if(!check())
	{
		puts("-1");
		return 0;
	}
	pos[n+1]=1;
	int last=0,maxn=0;
	for(int i=1;i<=n+1;i++)
	{
		if(pos[i]==1)
		{
			int len=i-last-1;//块长 
			if(len<k)//块长<k,只能使用y魔法 
			{
				if(maxn>max(a[last],a[i]))
				{
					puts("-1");
					return 0;
				}
				else
				{
					ans+=len*y;
					maxn=0;
				}
			}
			else//块长大于等于k 
			{
				if(x>y*k)//y魔法更划算
				{
					if(maxn>max(a[last],a[i]))
					{
						ans+=(len-k)*y+x;//最后k个用x消灭 
					}
					else
					{
						ans+=len*y;
					}
				}
				else//x魔法更划算 
				{
					ans+=(len%k)*y+((len-len%k)/k*x);
				} 
			}
			maxn=0; 
			last=i;//更新last的位置
		}
		else//更新块中要消灭的数的最大值 
		{
			maxn=max(maxn,a[i]);
		}
	}
	cout<<ans;
	return 0;
}

标签:26,int,ll,iwtgm,处建,信号,ans,maxn
From: https://www.cnblogs.com/wwww-/p/17853435.html

相关文章

  • ESP 8266 RELAY V3 调试说明
    ESP8266继电器模块V3是一个非常方便的设备,可以用于控制各种类型的继电器。以下是调试该模块的一些说明:连接设备:首先,将ESP8266继电器模块V3连接到计算机或其他调试设备上。您可以使用USB转TTL串口线来连接设备。确保正确连接并给设备上电。配置设备:在开始调试之前,您需要配置ESP8266......
  • 2023.11.20-2023.11.26 周记
    11.20星期一升旗仪式时间改到上午大课间了,前一节还正好是体育,之前太冷现在太热,真服了。与其说升旗仪式,到不如说是颁奖仪式。七年级年级前十:李泊璇、陈墨杋、黄耀民、周敬轩、牛文昊、张轩豪、秦子祺、时欣翔、徐颢扬、宋之萱。八年级年级前十:何家鼎、李承恩、朱鑫、陈亦飞、张......
  • iwtgm-25
    题目链接A.感觉跟欧拉没什么关系,属于带偏了因为任两个点都有来回两条边,直接从最小点出发到每一个点就好了难点在于取一段,题解代码值得学习voidsolve(){lln,l,r;cin>>n>>l>>r;llfi=0,se=0;for(lli=n-1;i>=1;i--){fi=se+1;se+=i*2;......
  • iwtgm-24
    A.考虑按块来计算如果这个块在两边,那么除了与这个块相邻的那一个数与这个块的数不同(一个块里的数都是一样的),其他位置上的数任选若这个块在中间,那么与这个块相邻的左右两个数与这个块的数不同,其他位置上的数任选块的大小从1-n,每个块可选数字为10种,相邻数可选数字为9种,其他位置......
  • iwtgm-23
    题目链接A.首先,如果只有1个机关(除高度h)那么不需要水晶试想,无论这个机关在哪里,当它关闭后,下一个机关就会开启...以此类推反而机关多了情况会更复杂设i和i-1机关都是打开的,我现在在机关i,然后i和i+1的机关会一起关闭,那么i+2一定要有一个开的机关,若没有,则需要水晶intmain(){......
  • H.264 和 H.265对比
    前言H.264标准正式发布于2003年3月,距今已经20多年了,但它仍然是当下最流行的视频编解码标准。H.265正式发布于2013年4月。虽然H.265标准是围绕着H.264进行制定的,也保留了原来的一些技术,但是在提升压缩率,改善码流质量,降低延时等方面使用了更为先进的技术。下面我将从编码原理,实际......
  • H.264中的帧
    导言高级视频编码(AVC)也称为H.264,是使用最广泛的视频压缩标准。它与所有主要的流式传输协议和容器格式兼容。当我们使用播放器播放一个视频时,通常会经过:解协议,解封装,音视频解码,音视频同步这几个步骤。其中H.264就是视频解码阶段的标准。通过解封装,可以将数据解析为H.264格式......
  • AtCoder Beginner Contest(abc) 326
    B-326-likeNumbers难度:⭐题目大意如果一个三位数的百位和十位的乘积等于个位,那么这个数就是合法的;问大于等于n的最小的合法的数是多少;解题思路因为数据范围很小,所以可以直接暴力;神秘代码#include<bits/stdc++.h>#defineintlonglong#defineIOSios......
  • UVA11526 H(n)
    题意求\(\sum_{i=1}^{n}\lfloor\frac{n}{i}\rfloor\)Sol整除分块。考虑\(1\ton\)里面固然有很多算重的。考虑去掉重复计算的东西,不难发现一个块内最大的数显然为\(\lfloor\frac{n}{\lfloor\frac{n}{i}\rfloor}\rfloor\)。实现是\(trivial\)的。Code#in......
  • 学期:2023-2024-1 学号:20231426 《计算机基础与程序设计》第八周学习总结
    作业信息这个作业属于哪个课程2022-2023-1-计算机基础与程序设计这个作业要求在哪里2022-2023-1计算机基础与程序设计作业这个作业的目标通过教材内容了解函数、模块化设计、作业正文https://www.cnblogs.com/hhaxx/p/17842602.html教材学习内容总结《计......