当前位置: 首页 > news >正文

第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

1.握手问题

思维:

对于第一个人来说 除了自己以外要跟其他49人握手 所以第一个是49 //对于第二个人来说 第一个人主动跟我握手了 有一次不算 所以第二个是48.。。 //以此类推 第43个人就是7 到了最后七个人呢 因为互相都没有握手 并且7个人都被前面的人握过手了 所以都是0

#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
	int sum=0;
	for(int i=49;i>=7;i--)
	{
		sum+=i; 
	}
	cout<<sum<<endl;
	return 0;
}

2.小球反弹

想象延长矩形

#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
	int t=1,x=343720,y=233333;
	while(1)
	{
		if(15*t%x==0 && 17*t%y==0)
		{
			break;
		}
		t++;
	}
	printf("%.2lf",2*sqrt(15*t*15*t+17*t*17*t));
	return 0;
}

3.好数

模拟题,模拟题目意思即可

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,sum=0;
bool check(int x)
{
	vector<int>a;
	while(x>0)
	{
		a.push_back(x%10);
		x/=10;
	}
	for(int i=0; i<a.size(); i++)
	{
		if((i+1)%2!=0 && a[i]%2==0) //奇数位不为奇数 
		{
			return false; 
		}
		else if((i+1)%2==0 && a[i]%2!=0) //偶数位不为偶数 
		{
			return false; 
		}
	}
	return true;
}
signed main()
{
	cin>>n;
	for(int i=1; i<=n; i++)
	{
		if(check(i))
		{
			sum++;
		}
	}
	cout<<sum<<endl;
	return 0;
}

4.R 格式

 本身是高精度问题,不过我就会下面方法,能过(40%)

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
long double d; 
signed main()
{
	cin>>n>>d;
	printf("%.Lf\n",pow(2,n)*d);
	return 0;
}

5.宝石组合

 推导公式,最后得出结论:s=gcd(Ha,Hb,Hc);   下面代码未进行优化时间复杂度

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10;
int n,h[N];
vector<int>nums;
signed main()
{
	cin>>n;
	for(int i=0; i<n; i++)
	{
		cin>>h[i];
	}
	sort(h,h+n);
	int max1=0;
	for(int i=0; i<n; i++)
	{
		for(int j=i+1; j<n; j++)
		{
			for(int k=j+1; k<n; k++) //i,j,k
			{
				int t=__gcd(__gcd(h[i],h[j]),h[k]);
				if(t>max1)
				{
					nums.clear(); 
					max1=t;
					nums.push_back(h[i]);
					nums.push_back(h[j]);
					nums.push_back(h[k]);
				}
			}
		}
	}
	for(int i=0;i<nums.size();i++)
	{
		cout<<nums[i]<<" "; 
	}
	return 0;
}

6.拔河

//题目意思是可以选择一部分连续的同学(非全选)
//枚举所有队伍可能的值,排序后最小的 两相邻队伍的差值 即为结果(若两数的差最小,其排序后一定相邻) 
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a[1010]; 
vector<int>nums; 
signed main()
{
	cin>>n;
	for(int i=0;i<n;i++) cin>>a[i];
	for(int i=0;i<n;i++)
	{
		int temp=0;
		for(int j=i;j<n;j++)  
		{
			temp+=a[j];
			nums.push_back(temp);
		}
	}
	sort(nums.begin(),nums.end());
	int min1=LONG_MAX;
	for(int i=1;i<nums.size();i++)
	{
		min1=min(min1,nums[i]-nums[i-1]); //两数的差最小,其排序后一定相邻
	}
	cout<<min1<<endl;
	return 0;
}
 

相关文章:

  • 【实际项目分享】多相机取图存图问题
  • 红帽9运行容器一
  • UE5 在UE中创建骨骼动画
  • 二、TorchRec中的分片
  • 智能检索知识库​
  • 从入门到实战!Vue-router 的深度探索与高效应用
  • 数据结构与算法之ACM Fellow-算法4.3 最小生成树
  • docx文档转为pdf文件响应前端
  • 01-算法打卡-数组-二分查找-leetcode(704)-第一天
  • 两大奇妙的波-机械波-电磁波
  • 3D打印革新制造范式:CASAIM 3D打印解决方案
  • redis的基本使用
  • 大模型day1 - 什么是GPT
  • freecad内部python来源 + pip install 装包
  • 应用安全系列之四十五:日志伪造(Log_Forging)之三
  • DeepSeek实战:如何用AI工具提升销售转化率?
  • newspaper公共库获取每个 URL 对应的新闻内容,并将提取的新闻正文保存到一个文件中
  • 数字集成电路中时延不可综合与时间单位介绍
  • 用实体识别模型提取每一条事实性句子的关键词(实体),并保存到 JSON 文件中
  • JVM不同环境不同参数配置文件覆盖
  • 怎样做网站首页图片变换/广告网页
  • 南宁哪里有做网站的公司/网游推广
  • 自助建站系统官方版/营销策略都有哪些
  • dw网站建设/最新病毒感染什么症状
  • 菏泽网站建设网站/鞍山做网站的公司
  • 窍门天下什么人做的网站/搜索引擎优化课程