buctoj-2023寒假集训-进阶训练赛(八)

news2025/1/17 5:59:21

问题 A: 分离出整数n从右边数第k个数字,递归实现

题目描述
在程序中定义一函数digit(n,k),它能分离出整数n从右边数第k个数字。
输入
正整数n和k。
输出
第k个数字(若不存在则输出0)
样例输入

31859 3

样例输出

8

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int digit(int n,int k){
	if(k==1) return n%10;
	else return digit(n/10,k-1);
}
int main() 
{
	int n,k;cin>>n>>k;
	cout<<digit(n,k);
	return 0;
}

问题 B: Xu Xiake in Henan Province

题目描述
少林寺是中国佛教禅宗祖庭,坐落于河南省登封市。少林寺始建于公元5世纪,至今仍是少林佛教的主要寺庙。
龙门石窟是中国佛教艺术最好的代表之一。这些佛像位于今天的河南省洛阳市以南12km 处,里面有数以万计的佛陀和其弟子的雕像。
根据历史记载,白马寺是中国第一座佛教寺庙,由汉朝皇帝发起建于公元68年,坐落于东汉首都洛阳。
云台山位于河南省焦作市修武县。云台地质公园景区被国家旅游局列为AAAAA 级风景区。云台瀑布位于云台地质公园内,瀑布高 314m,号称是中国最高的瀑布。
它们是河南省最著名的地方景点。
现在是时候判断一下旅行者的水平了。所有旅行者都可以根据他们所到过的景点的数量来分类。
一个旅行者游览了上述提到的0个景点,那么他就是“Typically Otaku”。
一个旅行者游览了上述提到的1个景点,那么他就是“Eye-opener”。
一个旅行者游览了上述提到的2个景点,那么他就是“Young Traveller”。
一个旅行者游览了上述提到的3个景点,那么他就是“Excellent Traveller”。
一个旅行者游览了上述提到的4个景点,那么他就是“Contemporary Xu Xiake”。
请确认旅行者的水平。
输入
输入包含多组测试样例,第一行包含一个正整数,表示最多个测试样例的数量。
对于每个测试案例,唯一的一行包含4个整数、、和,其中是旅行者游览第i个景点的次数,0≤、、、≤100。
如果是0,那就意味着旅行者从来没有去过第i个景点。
输出
对于每个测试样例,输出一行,其中包含一个字符串,表示旅行者的分类,该字符串应该是
“Typically Otaku”,“Eye-opener”,“Young Traveller”,“Excellent Traveller”,“Contemporary Xu Xiake” 其中之一。

样例输入

5
0 0 0 0
0 0 0 1
1 1 0 0
2 1 1 0
1 2 3 4

样例输出

Typically Otaku
Eye-opener
Young Traveller
Excellent Traveller
Contemporary Xu Xiake

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;

int main()
{
	int t;cin>>t;
	while(t--){
		int a,b,c,d,cnt=0;
		cin>>a>>b>>c>>d;
		if(a!=0) cnt++;
		if(b!=0) cnt++;
		if(c!=0) cnt++;
		if(d!=0) cnt++;
		switch(cnt){
			case 1:cout<<"Eye-opener"<<endl;break;
			case 2:cout<<"Young Traveller"<<endl;break;
			case 3:cout<<"Excellent Traveller"<<endl;break;
			case 4:cout<<"Contemporary Xu Xiake"<<endl;break;
			default:cout<<"Typically Otaku"<<endl;;
		}
	}
	return 0;
}

问题 C: Fibonacci Sequence

题目描述
斐波那契数列,又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。
在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。
斐波那契数列定义如下:F1=1,F2=1,F3=2,F4=3,…………,Fn=Fn-1+Fn-2(n>2)
编写程序,输出斐波那契数列第n个数字

输入
一个正整数n(1\leq n\leq901≤n≤90 )
输出
一个正整数 输出斐波那契数列第n个数字
样例输入

1

样例输出

1

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;

int main()
{
	LL f[100];
	f[1]=1;
	f[2]=1;
	for(int i=3;i<=90;i++) f[i]=f[i-1]+f[i-2];
	int n;cin>>n;
	cout<<f[n];
	return 0;
}

问题 D: 一只小蜜蜂

题目描述
有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。
其中,蜂房的结构如下所示(题里没图我找了一个)
在这里插入图片描述

输入
输入数据的第一行是一个整数N,表示测试实例的个数。
然后是N 行数据,每行包含两个整数a和b 。
输出
对于每个测试实例,请输出蜜蜂从蜂房a爬到蜂房b的可能路线数,每个实例的输出占一行。
样例输入

2
1 2
3 6

样例输出

1
3

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int dp[100];//表示从1到n的路径 
void DP(){
	dp[1]=0;
	dp[2]=1;
	dp[3]=2;
	for(int i=4;i<=50;i++) dp[i]=dp[i-1]+dp[i-2];
}
int main()
{
	int t;cin>>t;
	DP();
	while(t--){
		int x,y;
		cin>>x>>y;
		y -= (x-1);
		cout<<dp[y]<<endl;
	}
	return 0;
}

问题 E: 【蓝桥杯2020初赛】七段码

题目描述
小蓝要用七段码数码管来表示一种特殊的文字。

在这里插入图片描述

上图给出了七段码数码管的一个图示,数码管中一共有7 段可以发光的二极管,分别标记为a, b, c, d, e, f, g。
小蓝要选择一部分二极管(至少要有一个)发光来表达字符。在设计字符的表达时,要求所有发光的二极管是连成一片的。
例如:b 发光,其他二极管不发光可以用来表达一种字符。
例如:c 发光,其他二极管不发光可以用来表达一种字符。这种方案与上一行的方案可以用来表示不同的字符,尽管看上去比较相似。
例如:a, b, c, d, e 发光,f, g 不发光可以用来表达一种字符。
例如:b, f 发光,其他二极管不发光则不能用来表达一种字符,因为发光的二极管没有连成一片。
请问,小蓝可以用七段码数码管表达多少种不同的字符?

输入

输出
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只输出这个整数,输出多余的内容将无法得分。
思路:数据不大,直接肉眼数更快

#include<bits/stdc++.h>
using namespace std;
const int N = 8;
bool use[N];
int  ans, e[N][N], fa[N];

int find(int u){
	if(fa[u] == u) return u; 
	fa[u] = find(fa[u]); 
	return fa[u];
}
void dfs(int d){
	if(d > 7){
		for(int i = 1;i <= 7;i++)fa[i] = i;
		for(int i = 1;i <= 7;i++)
			for(int j = 1;j <= 7;j++)
				if(e[i][j] && use[i] && use[j]){
					int fx = find(i),fy = find(j);
					if(fx != fy)fa[fx] = fy;
				}
		int k = 0;
		for(int i = 1;i <= 7;i++)
			if(use[i] && fa[i]==i) k++;
		if(k == 1) ans++;
		return;
	}
	use[d] = true;
	dfs(d + 1);
	use[d] = false;
	dfs(d + 1);
}
int main(){
	/*	a b c d e f g
		1 2 3 4 5 6 7  */
	e[1][2] = e[1][6] = 1;
	e[2][1] = e[2][7] = e[2][3] = 1;
	e[3][2] = e[3][4] = e[3][7] = 1;
	e[4][3] = e[4][5] = 1;
	e[5][4] = e[5][6] = e[5][7] = 1;
	e[6][1] = e[6][5] = e[6][7] = 1;
	e[7][2] = e[7][3] = e[7][5] = e[7][6] = 1;
	dfs(1);
	cout << ans;
}

问题 F: 【蓝桥杯2020初赛】平面切分

题目描述
平面上有N 条直线,其中第i 条直线是y = Ai * x + Bi。
请计算这些直线将平面分成了几个部分。

输入
第一行包含一个整数N。
以下N 行,每行包含两个整数Ai, Bi。
对于50% 的评测用例,1 ≤ N ≤ 4, -10 ≤ Ai, Bi ≤ 10。
对于所有评测用例,1 ≤ N ≤ 1000, -100000 ≤ Ai, Bi ≤ 100000。

输出
一个整数代表答案。

样例输入

3
1 1
2 2
3 3

样例输出

6

思路:边一条一条加入,总面数为 加入的新边与老边的交点数加一

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<double,double> pdd;
double a[1010][2];
LL cnt=1;//初始有一个面

int main()
{	
	int n;cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i][0]>>a[i][1];
		set<pdd> dot;//集合里不会有重复的点
		int flag=1; 
		pdd b;
		for(int j=0;j<i;j++){
			if(a[i][0]==a[j][0]){
				if(a[i][1]==a[j][1]){
					flag=0;
					break;
				}else continue;
			}
			//ax+b=cx+d
			//x=(d-b)/(a-c)
			b.first = (a[j][1]-a[i][1])/(a[i][0]-a[j][0]);
			b.second = a[i][0]*b.first+a[i][1];
			dot.insert(b);
		}
		if(flag) cnt += dot.size()+1;
	}
	cout<<cnt;
	return 0;
}

问题 G: 回到学校

题目描述
愉快的假期总是那么的短暂。

回到学校后,小T监测了教室的进出情况。

假设班级里有 N个同学,学号分别是 1 ∼ N,小T记录了每位同学分别是第几个进入的教室。

你可以通过上述记录,按进入教室的先后顺序输出同学的学号吗?

输入

N
A1 A2 … AN

第一行一个正整数 N,代表同学的个数。

第二行有空格隔开的 N个正整数,Ai代表学号为 i 的同学是第几个进入教室的。

数据范围:

1 ≤ N ≤ 10e5 1 ≤ A i ≤ N

A i ≠ A j ( i ≠ j )

输出
输出一行一个正整数,第 i ii 个整数代表第 i ii 个进入教室的同学的学号。

样例输入

3
2 3 1

样例输出

3 1 2

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int,int> pii;

int main()
{	
	int n;cin>>n;
	vector<pii> v;
	for(int i=1;i<=n;i++){
		int x;cin>>x;
		v.push_back({x,i});
	}
	sort(v.begin(),v.end());
	vector<pii>::iterator it;
	for(it=v.begin();it!=v.end();it++){
		pii t=*it;
		cout<<t.second<<" ";
	}
	return 0;
}

问题 H: 九九乘法表(教师版)

题目描述
你是XSY的老师,XSY只学过九九乘法表,你看到他的作业中出现了一个数。

如果这个数在九九乘法表是找不到的,那么他肯定答错了,就输出"No"(不含引号),否则,就输出"Yes"(不含引号)

输入
一个整数
代表XSY的答案。
输出
输出 Yes 或 No
样例输入

10

样例输出

Yes

输入样例2

11

输出样例2

No

样例1解释:因为“二五一十”,可以算出10这个数

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
vector<int> v;
void cheng(){
	for(int i=1;i<=9;i++){
		for(int j=i;j<=9;j++){
			v.push_back(i*j);
		}
	}
}
int main()
{	
	int n;cin>>n;
	cheng();
	vector<int>::iterator it=find(v.begin(),v.end(),n);
	if(it!=v.end()) cout<<"Yes";
	else cout<<"No";
	return 0;
}

问题 I: 逃命双曲线

题目描述
在平面直角坐标系上,你初始在点(1,1),你每秒可以向 x轴正方向移动恰好一个单位,或向 y轴正方向移动恰好一个单位。你只能停留在坐标均为整数的点上.

你的目标是逃到双曲线 y=k/x上,并且能够停留,请问你至少需要多少时间?
输入
输入一个整数
输出
输出一个整数,求最短时间
样例输入

10

样例输出

5

提示
样例解释:你的路线可以是
在这里插入图片描述
花费5秒

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
#define INF 0xcfffffffff
//开始的时候竟然INF设小了 
int main()
{	
	LL k;cin>>k;
	LL m=INF;
	for(LL i=1;i<=sqrt(k);i++){
		if(k%i==0){
			m = (LL)min((LL)m,(LL)k/i+i);
		}
	}
	cout<<m-2;
	return 0;
}

问题 J: Dongdziz与300刀1刀999

题目描述
Dongdziz哥哥的STEAM库里面有很多游戏,其中有一个他花300刀从来没玩过的游戏,叫作《重生之我是特朗普》。今天dongdziz哥心情很好于是想玩一下这个游戏然后他就点开了这个游戏,发现这个游戏一开始会给你一排装备,装备的等级从A-Z。
然后系统会自动生成一个数字,给这些原始装备的等级都+N,比如N=2,那么A->C,但是很奇怪如果是顶级的Z装备 +2之后就变成了B.居然从最垃圾的装备到最顶级的装备开始循环了,dongdziz看傻了,请你告诉dongdziz哥,这些装备的等级+N之后会变成啥等级

助力他统一美利坚帝国,一刀999

输入
0<=N<=26
1<=S<=1e4(S中都是大写字母)
输出
升级后的装备
一个字符串
代表从排头到排尾的装备等级
样例输入

2
ABCXYZ

样例输出

CDEZAB

ssn:也不知道 天天的 这些有意思的题干是谁编出来的

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
#define INF 0xcffffff

int main()
{	
	int n;cin>>n;
	string s;cin>>s;
	int key[s.length()];
	for(int i=0;i<s.length();i++){
		key[i]=(s[i]-'A'+n)%26;
		cout<<char(key[i]+'A');
	} 
	return 0;
}

问题 K: Bob和Alice(4)

题目描述
Bob和Alice又在玩一个新的序列游戏:有一个1到n的随机排列P1,P2 … Pn
Bob又定义了一个新的序列M1 M2 … Mn
Mi = i % Pi
求M1+M2+… +Mn可能的最大值
输入
n
1 <= n <= 109
输出
求M1 + M2 + … + Mn可能的最大值
样例输入

2

样例输出

1

提示
{P1,P2} = {2,1} , M1+M2= 1 + 0 = 1
思路:
(序列 是指 1~n这n个数不重不漏)
田忌赛马策略,把n%1,1~n-1求和

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
#define INF 0xcffffff

int main()
{	
	int n;cin>>n;
	cout<<(LL)n*(n-1)/2;
	return 0;
}

问题 L: Bob和Alice(5)

在这里插入图片描述
样例输入

3 2 3 1

样例输出

5

已经很努力的在想了,不知道要怎么优化(/泪)下面是超时代码。

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
#define INF 0xcffffff
int p[100010];
int q[100010];
LL quicksort(int l,int r,int k)
{
    if(l>=r) return q[l];
    int x=q[l],i=l-1,j=r+1;
    while(i<j){
        while(q[++i]<x);
        while(q[--j]>x);
        if(i<j) swap(q[i],q[j]);
    }
    int s=j-l+1;
    if(k<=s) return quicksort(l,j,k);
    else return quicksort(j+1,r,k-s);
}
int main()
{	
	int n;cin>>n;
	for(int i=1;i<=n;i++) scanf("%d",&p[i]);
	LL sum=0;
	for(int l=1;l<=n-1;l++){
		LL max2=0;
		for(int r=l+1;r<=n;r++){
			if(max2>p[r]) sum += max2;
			else{
				for(int i=l;i<=r;i++) q[i]=p[i];
				max2 = quicksort(l,r,r-l);	
				sum += max2;			
			}
		}
	}
	printf("%lld",sum);
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/158762.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电商直播小程序核心功能有哪些?电商直播小程序代码分析

一个优质的电商直播小程序&#xff0c;必须带有后台管理&#xff0c;模块功能分工明确&#xff0c;可以让商家及时管理商品。在管理后台端又分为会员、商品、订单、店铺、直播、分销、优惠券、物流、数据等功能列表栏&#xff0c;基本功能较完善。下文小编将为大家讲解一下电商…

Linux命令行中 git 的使用

文章目录&#xff1a;什么是gitgitee新建仓库git提交代码1.同步远程仓库代码 - git pull2.查看本地仓库的状态 - git status3.添加代码到本地.git缓冲区 - git add4.推送代码到本地仓库.git中 - git commit5.同步本地仓库.git的内容到远程仓库 - git push什么是git Git 是一个…

2023年了,浏览器竟然还有新玩法,能看热搜能领券

在移动互联网时代&#xff0c;手机浏览器是手机中不可缺少的APP之一。我们经常使用手机浏览器查资料&#xff0c;看新闻&#xff0c;看小说等等。如今&#xff0c;手机浏览器的功能越来越强大&#xff0c;玩法也越来越多。最近&#xff0c;发现一款手机浏览器&#xff0c;竟然聚…

立创EDA入门3 通过51单片机最小板学习PCB设计

立创EDA入门3 通过51单片机最小板学习PCB设计一、本文目的二、原理图设计1. 新建工程&#xff0c;命名为51系统2. 各模块原理图3. 一些常用操作&#xff08;1&#xff09;放置普通元器件&#xff08;2&#xff09;封装、标签设置&#xff08;3&#xff09;在线库中查找元器件&a…

硬件系统工程师宝典(4)-----传输过程的信号要如何描述?

各位同学大家好&#xff0c;欢迎继续做客电子工程学习圈&#xff0c;今天我们继续来讲这本书&#xff0c;硬件系统工程师宝典。上篇我们说到为实现信号的有效传输&#xff0c;需要保证信号波形的完整和信号时序的完整&#xff0c;并且知道了从时域、频域两个角度去分析信号。那…

高压功率放大器在诱发肌电运动阈值对比研究中的应用

实验名称&#xff1a;经颅磁声刺激与经颅超声刺激诱发肌电运动阈值的对比研究 研究方向&#xff1a;生物医学 测试目的&#xff1a; 在脑科学与神经科学研究中&#xff0c;物理刺激是目前应用最广泛的电磁刺激技术。该技术利用变化的磁场诱发感应电流进而对神经组织进行调控&am…

递归算法实例应用(一)

递归算法实例应用&#xff08;一&#xff09; 递归简笔 递归和普通函数调用一样&#xff0c;都是通过函数栈实现。 以斐波那契数列递归调用为例 递归时函数调用栈的进栈、出栈过程可以由上述图示直观的体现出来&#xff0c; 因此可以得出递归的几个作用&#xff1a; ​ …

玩转CodeQLpy之代码审计实战案例

0x01 背景介绍CodeQLpy是一款半自动化的代码审计工具&#xff0c;能有效提高代码审计的效率&#xff0c;目前项目仍处于测试阶段。项目地址https://github.com/webraybtl/CodeQLpy&#xff0c;在github主页有对应的安装和使用介绍&#xff0c;如图1.1所示。-t: 指定待扫描的源码…

SignalR在Asp.NetCore的使用入门

SignalR在ASP.NET CORE下的使用 SignalR是微软提供的实时Web通信的库&#xff0c; 它会自己根据情况使用不同的链接方式&#xff0c;主要有 WebSocketlong pollingForever frameSever Events Sent 等方式&#xff0c;故可以不管其具体的实现方式&#xff0c;差不多等于开箱…

Docker部署 Oracle12c

Docker部署 Oracle12c Docker部署 registry Docker搭建 svn Docker部署 Harbor Docker 部署SQL Server 2017 Docker 安装 MS SqlServer Docker部署 Oracle12c 文章目录Docker部署 Oracle12c部署步骤1.查询oracle镜像2.下载镜像3.创建容器4.进入容器5.连接oracle数据库部署步骤…

Unreal动态多播委托

相对于普通多播委托,动态多播委托可以在蓝图中绑定事件。在这里记录一下它的使用方式:定义动态多播委托类型:声明委托变量:绑定函数:通过Add绑定:需要定义FScriptDelegate变量:为FScriptDelegate添加绑定函数这种方法的好处是可以针对单个函数进行解绑:通过AddDynamic标记宏绑定…

Linux 调度器之抢占式调度

文章目录前言一、简介1.1 need_resched标志1.2 try_to_wake_up二、抢占调度2.1 抢占简介2.2 用户态抢占2.2.1 从系统调用返回用户空间2.2.2 从中断返回用户空间2.3 内核态抢占2.2.1 preempt_count2.2.2 调用preempt_enable()2.2.3 从中断返回内核空间时总结参考资料前言 在这片…

worker多线程的使用与理解

JavaScript是单线程的&#xff0c;并不是说它是单线程语言&#xff0c;只能说在浏览器中运行是单线程的&#xff0c;单线程会免去许多麻烦&#xff0c;比如说&#xff0c;有两个线程同时进行DOM操作&#xff0c;一个是在父级下添加子元素&#xff0c;一个是删除这个父级元素&am…

Pandas数据清洗函数大全

文章目录 一、drop()&#xff1a;删除指定行列 1. 删除指定行2. 删除指定列 二、del()&#xff1a;删除指定列三、isnull()&#xff1a;判断是否为缺失 1. 判断是否为缺失2. 判断哪些列存在缺失3. 统计缺失个数 四、notnull()&#xff1a;判断是否不为缺失五、dropna()&#x…

Java笔记024-Math类、Arrays类、System类、BigInteger和BigDecimal类、日期类

常用类Math类基本介绍Math类包含用于执行基本数学运算的方法&#xff0c;如初等指数、对数、平方根和三角函数方法一览(均为静态方法)Math常见方法应用案例1、 abs绝对值2、pow求幂3、ceil向上取整4、floor 向下取整5、round 四舍五入6、sqrt 求开方7、random求随机数//思考&am…

Webpack常见的插件和模式

1、认识Plugin Webpack的另一个核心是Plugin&#xff0c;官方有这样一段对Plugin的描述&#xff1a; While loaders are used to transform certain types of modules, plugins can be leveraged to perform a wider range of tasks like bundle optimization, asset manageme…

《对线面试官》| 高频计算机网络面试题 pt.2

目录11、Get与POST的区别12、Session、Cookie 的区别13、简单聊聊 HTTP 协议吧14、URI 和 URL 的区别15、GET 和 POST 方法都是安全和幂等的吗&#xff1f;16、说说 HTTP/1.1 相比 HTTP/1.0 提高了什么性能&#xff1f;17、那上面的 HTTP/1.1 的性能瓶颈&#xff0c;HTTP/2 做了…

中国蚁剑的工作原理

中国蚁剑连接http://192.168.11.157/dvwa/hackable/uploads/pass.php蚁剑连接并同时用wireshark抓取流量1274 行&#xff0c;追踪tcp流因为我们的php.php内容是 $_POST[pass]&#xff0c;所以这里是post了一个pass参数&#xff0c;后面跟上了命令。通过站长工具-URL解码/编码 (…

15.Isaac教程--Isaac机器人引擎简介

Isaac机器人引擎简介 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 文章目录Isaac机器人引擎简介基础Codelets完整的应用基础 本节介绍如何使用 Isaac 机器人引擎。 它介绍了相关术语并解释了 Isaac 应用程序的结构。 Isaac 应用程序由 JavaS…

卫星AIS接收机

1.设备简介星载AIS模块&#xff0c;专门针对小卫星设计的AIS载荷&#xff0c;设计时考虑到CubeSat的尺寸、重量和功率限制&#xff0c;也可以作为较大的LEO卫星上的有效载荷。2.产品特征独立4信道AIS接收机集成LNA和SAW滤波器AIS帧的数据存储支持频谱样本采集安全在轨软件升级支…