CS R26 C(双指针),D(观察,模拟),E(LIS经典 好题)

Problem C:
题意;给出序列a,问有多少个区间,其长度在[c,d]并且该区间不包含相同的元素.n,c,d<=1e5.a[i]<=1e9.
双指针 枚举左端点i,维护最远能达到的右端点rg.

则左端点为i的合法区间最长为rg-i+1,所以贡献为max(0,min(rg-i+1,d)-c+1)

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+20;
int n,a[N];
map<int,int> mp;
int main()
{
	int c,d;
	cin>>n>>c>>d;
	for(int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	int rg=1;
	ll ans=0;
	for(int i=1;i<=n;i++)
	{
		while(rg<=n)
		{
			if(!mp[a[rg]])
				mp[a[rg]]++,rg++;
			else
				break;
		}
	//	cout<<i<<' '<<rg-1<<endl;
		int len=rg-i;
		mp[a[i]]--;
		ans+=max(0,min(len,d)-c+1);
	}
	cout<<ans<<endl;
	return 0;
}



Problem D:
题意:给出长度为n的全0序列a.目标序列b.
操作:每次选定一个元素0,假设这个元素为a[i].


若a[i-1],a[i+1]都不为1,则a[i]变为1.
若a[i-1],a[i+1]至少一个为1,但是都不为2,则a[i]=2并且相邻为1的变为0.
若a[i-1],a[i+1]一个为1,一个为2,则a[i]变为3 其邻居都变为0.
n<=1e5,问将序列a变为序列b的最少操作次数? 并输出方案.


模拟题,相邻元素不能相同,变一个3需要4步.核心:因为变3后回清0旁边,变2后会清零1.所以操作数和操作次序是固定的.

先变3然后变2然后再变1,如果某步无法变化 则说明无解.

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+20;
int n,a[N],res[N],sz=0;
void fail()
{
	printf("-1\n");
	exit(0);
}
int main()
{
	cin>>n;
	for(int i=0;i<n;i++)
		scanf("%d",&a[i]);
	for(int i=1;i<n;i++)
		if(a[i]==a[i-1]&&a[i])
			fail();
	if(a[0]==3||a[n-1]==3)
		fail();
	for(int i=0;i<n;i++)
	{
		if(a[i]==3)
		{
			res[sz++]=i;
			res[sz++]=i-1;
			res[sz++]=i+1;
			res[sz++]=i;
		}	
	}	
	for(int i=0;i<n;i++)
	{
		if(a[i]==2)
		{
			if(i&&a[i-1]!=3)
				res[sz++]=i-1,res[sz++]=i;
			else if(i+1<n&&a[i+1]!=3)
				res[sz++]=i+1,res[sz++]=i;
			else	
				fail();
		}
	}
	for(int i=0;i<n;i++)
		if(a[i]==1)
			res[sz++]=i;
	printf("%d\n",sz);
	for(int i=0;i<sz;i++)
		printf("%d ",res[i]+1);
	return 0;
}





Problem E:
题意:n*m地图,电脑初始在左上角(1,1),每次可以向下或者向右,终点为右下角(n,m),
有k个格子是特殊的,电脑走的路径会尽量经过最多的特殊格子,假设最多只能经过best个特殊格子.
现在问这k个格子中有多少个是关键的,也就是说把这个格子变成不特殊后,best一定会减小.
n,m<=1e9,k<=1e5.


经典的LIS变形,每一步坐标的x,y都是非递减的.
将k个点按行从小到大排序,这此时列作为序列a的元素,则best就等于序列a的LIS长度.
critical cell就是出现在所有LIS中的元素.
序列a的LIS长度记为opt
设r[i],l[i]为以i结尾和以i开头的的LIS长度 如果r[i]+l[i]-1=opt则说明a[i]出现在某个LIS中.


假如i,j属于某个lis,并且l[i]=l[j].则a[i],a[j]肯定不会同时出现在一个LIS中.
假如同时出现 若a[i]在a[j]之前 则l[j]=l[i]+1矛盾, 若a[i]在a[j]之后则l[j]+1+r[i]>opt矛盾.
即cnt[x]>1,则说明l[i]=x的i都是不必要点 由逆否命题得cnt[x]==1的为必要点.

#include <bits/stdc++.h>
#define F first
#define S second
using namespace std;
typedef long long ll;
typedef pair<int,int> ii;
const int N=2e5+20;
int row,col,n,d1[N],d2[N],cnt[N];
ii a[N];
vector<int> lis;
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>row>>col>>n;
	for(int i=0;i<n;i++)
		cin>>a[i].F>>a[i].S;
	sort(a,a+n);
	for(int i=0;i<n;i++)
	{
		int pos=upper_bound(lis.begin(),lis.end(),a[i].S)-lis.begin();
		d1[i]=pos+1;
		if(pos==lis.size())
			lis.push_back(a[i].S);
		else
			lis[pos]=a[i].S;	
	}
	lis.clear();
	for(int i=n-1;i>=0;i--)
	{
		int pos=upper_bound(lis.begin(),lis.end(),-a[i].S)-lis.begin();
		d2[i]=pos+1;
		if(pos==lis.size())
			lis.push_back(-a[i].S);
		else
			lis[pos]=-a[i].S; 
	}
	int mx=lis.size(),ans=0;
	for(int i=0;i<n;i++)
	{
		if(d1[i]+d2[i]-1==mx)
			cnt[d1[i]]++;
	}
	for(int i=1;i<N;i++)
		if(cnt[i]==1)
			ans++;
	cout<<ans<<endl;
	return 0;
}










内容概要:《2024年中国城市低空经济发展指数报告》由36氪研究院发布,指出低空经济作为新质生产力的代表,已成为中国经济新的增长点。报告从发展环境、资金投入、创新能力、基础支撑和发展成效五个维度构建了综合指数评价体系,评估了全国重点城市的低空经济发展状况。北京和深圳在总指数中名列前茅,分别以91.26和84.53的得分领先,展现出强大的资金投入、创新能力和基础支撑。低空经济主要涉及无人机、eVTOL(电动垂直起降飞行器)和直升机等产品,广泛应用于农业、物流、交通、应急救援等领域。政策支持、市场需求和技术进步共同推动了低空经济的快速发展,预计到2026年市场规模将突破万亿元。 适用人群:对低空经济发展感兴趣的政策制定者、投资者、企业和研究人员。 使用场景及目标:①了解低空经济的定义、分类和发展驱动力;②掌握低空经济的主要应用场景和市场规模预测;③评估各城市在低空经济发展中的表现和潜力;④为政策制定、投资决策和企业发展提供参考依据。 其他说明:报告强调了政策监管、产业生态建设和区域融合错位的重要性,提出了加强法律法规建设、人才储备和基础设施建设等建议。低空经济正加速向网络化、智能化、规模化和集聚化方向发展,各地应找准自身比较优势,实现差异化发展。
数据集一个高质量的医学图像数据集,专门用于脑肿瘤的检测和分类研究以下是关于这个数据集的详细介绍:该数据集包含5249张脑部MRI图像,分为训练集和验证集。每张图像都标注了边界框(Bounding Boxes),并按照脑肿瘤的类型分为四个类别:胶质瘤(Glioma)、脑膜瘤(Meningioma)、无肿瘤(No Tumor)和垂体瘤(Pituitary)。这些图像涵盖了不同的MRI扫描角度,包括矢状面、轴面和冠状面,能够全面覆盖脑部解剖结构,为模型训练提供了丰富多样的数据基础。高质量标注:边界框是通过LabelImg工具手动标注的,标注过程严谨,确保了标注的准确性和可靠性。多角度覆盖:图像从不同的MRI扫描角度拍摄,包括矢状面、轴面和冠状面,能够全面覆盖脑部解剖结构。数据清洗与筛选:数据集在创建过程中经过了彻底的清洗,去除了噪声、错误标注和质量不佳的图像,保证了数据的高质量。该数据集非常适合用于训练和验证深度学习模型,以实现脑肿瘤的检测和分类。它为开发医学图像处理中的计算机视觉应用提供了坚实的基础,能够帮助研究人员和开发人员构建更准确、更可靠的脑肿瘤诊断系统。这个数据集为脑肿瘤检测和分类的研究提供了宝贵的资源,能够帮助研究人员开发出更准确、更高效的诊断工具,从而为脑肿瘤患者的早期诊断和治疗规划提供支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值