首页 > 编程语言 >2024暑假南京外国语学校c++集训 20240706 测试(J/S-)

2024暑假南京外国语学校c++集训 20240706 测试(J/S-)

时间:2024-07-07 11:31:10浏览次数:19  
标签:tmp arr set 20240706 int 代码 cin c++ 2024

A 笔记本电脑

第一题没啥好说的了

点击查看代码
#include<bits/stdc++.h>
using namespace std;
int n;
set<int> t;
pair<int,int> arr[100009];
int main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>arr[i].first>>arr[i].second;
	}
	sort(arr+1,arr+n+1);
	for(int i=1;i<=n;i++)
	{
		if(i>1)
		{
			auto it=prev(t.end());
			if((*it)>arr[i].second)
			{
				cout<<"Happy Alex";
				exit(0);
			}
		}
		t.insert(arr[i].second);
	}
	cout<<"Poor Alex";
	return 0;
}

B


这道题直接模拟,加点优化,a!=a(a-1)......1
当b>a时,只用计算(a+1)*(a+2).....b
好了,看代码

点击查看代码


#include<bits/stdc++.h>
using namespace std;
#define int long long//这道题不这样写可能会超时,亲测    nn  
int a,b;
signed main()
{
	cin>>a>>b;
	int x=b/10*10;
	if(a<x&&b>=x)
	    cout<<"0\n";
	else 
	{
		int x=1;
		for(int i=a+1;i<=b;i++)
		{
			x=x*i%10;
		}
		cout<<x<<"\n";
	}
	return 0;
}


这道题先筛掉不可能的序列,后面一个一个检查不合法的序列,给出核心代码

点击查看代码
f=0;
		cin>>n;
		for(int i=1;i<=4*n;i++)
		{
			cin>>arr[i];
		}
		sort(arr+1,arr+4*n+1);
		int l=0;
		for(int i=2;i<=4*n;i+=2)
		{
			if(arr[i]!=arr[i-1])
			{
				cout<<"NO\n";
				f=1;
				break;
			}
			b[++l]=arr[i];
		}
		if(f)
			continue;
		f=0;
		int x=b[1]*b[2*n];
		for(int i=1;i<=n;i++)
		{
			if(b[i]*b[2*n+1-i]!=x)
			{
				cout<<"NO\n";
				f=1;
				break;
			}
		}
		if(f)
			continue;
		cout<<"YES\n";


这道题直接分类讨论+数学方法,可以加坐标偏移,代码十分短 不给具体代码,可以从http://www.nfls.com.cn:20035/contest/1997/repeat寻找


这道题直接枚举 第一行答案直接枚举选的是哪个字母 非常简单 先枚举字符 写二重循环
两重循环里面生成8个长度为3的字符串然后check 考试时代码变量名重复了,只拿了70分
正确代码:

F题算贪心,真正题意:有n条线段,每条线段需要分成两段以上(两端也可以),最少需要切几刀 数据结构我选择set 原因:erase方便 贪心策略:每次切右端点最靠左的位置,切到的线段从set里清空,知道所有线段合法,中间使用ans统计答案
代码:

点击查看代码


#include<bits/stdc++.h>
using namespace std;
int n,m,ans;
pair<int,int> tmp;
set<pair<int,int> > t;//如果编译器版本低set<pair<int,int>> t会报错
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		cin>>tmp.second>>tmp.first;
		t.insert(tmp);
	}
	while(t.size()>0)
	{
		tmp=(*t.begin());
		t.erase(t.begin());
		ans++;
		for(auto it=t.begin();it!=t.end();)
		{
			pair<int,int> p2=(*it);
			if(p2.second<tmp.first)
			{
				auto it2=it;
				it++;
				t.erase(it2);
				continue;
			}
			it++;
		}
	}
	cout<<ans<<"\n";
	return 0;
}

直接看样例揣摩,如何构造,因该是规律题,只需要构造l,r里的数,其他随便

点击查看代码


#include<bits/stdc++.h>
using namespace std;
int n,a,b,c,x[505];
int visited[1025];
int main()
{
	int T;
	cin>>T;
	while(T--)
	{
		memset(visited,0,sizeof(visited));
		cin>>n>>a>>b>>c;
		int l=b-a+1;
		int mn=0,mx=0;
		for(int i=1;i<=l;i++)
			mn+=i,x[i]=i;
		for(int i=n;i>n-l;i--)
		    mx+=i;
		if(c<mn||c>mx)
		{
			cout<<"-1\n";
			continue;
		}
		int p=l;
		while(c>mn)
		{
			x[p]++;
			if(x[p]==(n-(l-p)))
			    p--;
			mn++;
		}
		for(int i=1;i<=l;i++)
		{
			visited[x[i]]=1;
		}
		int tmp=1;
		for(int i=1;i<=n;i++)
		{
			if(i==a)
			{
				for(int j=1;j<=l;j++)
				    cout<<x[j]<<" ";
				i=b;
			}
			else
			{
				while(visited[tmp])
				    tmp++;
				cout<<tmp<<" ";
				visited[tmp]=1;
			}
		}
		cout<<"\n";
	}
	return 0;
}

标签:tmp,arr,set,20240706,int,代码,cin,c++,2024
From: https://www.cnblogs.com/e4ns/p/18288227

相关文章

  • EasyRecovery2024最新软件永久破解激活码
    该软件的界面设计直观明了,用户可以轻松找到所需的功能选项。在软件首页,用户可以看到多个分区恢复选项,如硬盘分区、外接盘区、常用区域等,只需勾选文件丢失的原始位置,然后点击“开始扫描”即可。扫描完成后,用户可以在左侧边栏看到文件的目录,右侧则可以进行文件的勾选和预览。最后......
  • 会声会影2024官方破解版下载全攻略方法教程最新
    《会声会影2024破解版》是一款流行的视频编辑软件,其正式版通常需付费使用。然而,由于正版费用较高,一些用户可能寻求破解版以免费享受该软件的全部功能。这种需求反映了普通用户在面对昂贵软件时的经济考量与版权意识之间的冲突。会声会影全版本绿色安装包获取链接:(抓紧保存以防......
  • Java语言,MySQL数据库;基于springboot的阅读系统 86095(免费领源码)计算机毕业设计项目推
    摘 要从古至今,阅读都是人们学习新技能,新知识的一种方式。随着互联网时代的到来,传统的纸质阅读早已满足不了人们对于阅读的渴望。在这样的大背景下,电子阅读便快速崛起。越来越多的人们喜欢愿意通过这样方式来阅读书籍。基于以上种种,本文设计并实现了书籍阅读系统。目的在于......
  • Java语言,MySQL数据库;基于微信小程序的安全教育平台面向大学生 85871(免费领源码)计算机
    目 录摘要1绪论1.1研究背景1.2研究现状1.3论文结构与章节安排2 基于微信小程序的安全教育平台面向大学生系统分析2.1可行性分析2.2系统流程分析2.2.1数据增加流程2.2.2数据修改流程2.2.3数据删除流程2.3系统功能分析2.3.1功能性分析......
  • c++字符串知识总结
    读字符串函数fgets功能:从文件中读取字符串,每次只读取一行。注意:fgets每次最多只能读取n-1个字2.符,第n个为NULL。当遇到换行符或者EOF时,即使当前位置在n-1之前也读出结束。若函数返回成功,则返回字符串数组str的首地址。例:小L很喜欢听私人笑声,可是有些歌曲他没有夹带私人笑......
  • C++基础(九):C/C++内存管理
       经过前面的学习,相信已经对面向对象有了一定的理解,这一篇博客,我们来系统的学习一下C/C++内存管理,这方便我们从内存角度,理解我们的代码。目录一、C/C++内存分布二、C语言中动态内存管理方式三、C++中动态内存管理3.1new/delete操作内置类型3.2new和delete操作自......
  • C++基础(四):C++入门(三)
         通过前面的学习,我们已经掌握了一些最基本的C++入门知识,这一篇博客我们主要聚焦于:C/C++内存管理和C++11的一些新特性,为后续深入学习做好铺垫。目录一、C/C++内存管理1.1 C/C++内存分布1.2 C语言中动态内存管理方式:malloc/calloc/realloc/free1.3 C++内存......
  • KubeSphere 社区双周报|2024.06.21-07.04
    KubeSphere社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过commit的贡献者,并对近期重要的PR进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。本次双周报涵盖时间为:2024.06.21-07.04。贡献者名单新晋KubeSpherecontribu......
  • 计算机毕业设计项目推荐:66945 同城信息网(开题答辩+程序定制+全套文案 )上万套实战教程
    摘要随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采SSM技术和mysql数据库来完成对系统的设计。整个开发过程首先对同城信息网进行需求分析,得出......
  • Qt/C++音视频开发78-获取本地摄像头支持的分辨率/帧率/格式等信息/mjpeg/yuyv/h264
    一、前言上一篇文章讲到用ffmpeg命令方式执行打印到日志输出,可以拿到本地摄像头设备信息,顺藤摸瓜,发现可以通过执行ffmpeg-fdshow-list_optionstrue-ivideo="Webcam"命令获取指定摄像头设备的分辨率帧率格式等信息,会有很多条。那为什么需要这个功能呢?现场大量应用下来,尽管......