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

C+++题

结绳

#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
float a[10001];
int n;
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	sort(a+0,a+n);
	float sum=a[0];
	for(int i=1;i<n;i++){
		sum=(sum+a[i])/2.0;
	}
	cout<<(int)sum;
	return 0;
}
void f(int k){
	
}

A和B

#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
struct node{
	int v;
	int s;
};
node que[200020];
bool c[200020];
int a,b,x;
int n,t;
void f(int);
int main(){
	cin>>t;
	while(t--){
		cin>>a>>b>>x;
		f(a);
	}
	return 0;
}
void f(int n){
	for(int i=0;i<200020;i++) c[i]=0;
	int head=0;
	int tail=0;
	c[n+100000]=1;
	que[++tail]=node{n,0};
	while(head<tail){
		node h=que[++head];
		if(h.v==b){
			cout<<h.s<<endl;
			break;
		}
		if(h.v+1>=-100000&&h.v+1<=100000&&c[h.v+1+100000]==0){
			que[++tail]=node{h.v+1,h.s+1};
			c[h.v+1+100000]=1;
		}
		if(h.v-1>=-100000&&h.v-1<=100000&&c[h.v-1+100000]==0){
			que[++tail]=node{h.v-1,h.s+1};
			c[h.v-1+100000]=1;
		}
		if(h.v*x>=-100000&&h.v*x<=100000&&c[h.v*x+100000]==0){
			que[++tail]=node{h.v*x,h.s+1};
			c[h.v*x+100000]=1;
		}
	}
}

乘积的最大值

#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
int a[10010];
bool ca[10010];
int b[10010];
bool cb[10010];
int la,lb;
int ma=-1;

void f(int);
int main(){
	cin>>la;
	for(int i=0;i<la;i++){
		cin>>a[i];
	}
	cin>>lb;
	for(int i=0;i<lb;i++){
		cin>>a[i];
	}
	f(0);
	return 0;
}
void f(int sum){
	ma=max(ma,sum);
	for(int i=0;i<la;i++){
		for(int j=0;j<lb;j++){
			if(ca[i]==0&&cb[j]==0){
				ca[i]=1;
				cb[j]=1;
				f(sum+a[i]*b[j]);
				ca[i]=0;
				cb[j]=0;
			}
		}
	}
	return;
}

收费站在哪里

#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
int n,m;
int a[10010];
int b[10010];
int ma=-1;
long long l[10000];
void f(int);
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		if(i*(i-1)/2==n){
			m=i;
			break;
		}
	}
	for(int i=1;i<=n;i++){
		cin>>a[i];
		ma=max(ma,a[i]);
	}
	b[0]=0;
	sort(a+0,a+n);
	b[m]=a[n];
	f(0);
	return 0;
}
void f(int x){
	if(x==n-1){
		int in[1010];
		int lin=0;
		for(int i=1;i<=n;i++){
			for(int j=i+1;j<=n;j++){
				in[lin]=b[j]-b[i];
				lin++;
			}
		}
		sort(in+0,in+lin);
		bool bo=false;
		for(int i=1;i<=n;i++){
			if(a[i]!=in[i]){
				bo=true;
				break;
			}
		}
		if(bo==false){
			for(int i=1;i<=n-1;i++){
				cout<<b[i]<<" ";
			}
			cout<<b[n];
			return;
		}
		return;
	}
	for(int i=1;i<=n;i++){
		int in=b[x-1]+a[i];
		if(l[in]==0){
			b[x]=in;
			l[in]=1;
			f(x-1);
			l[in]=0;
		}
	}
}

相关文章:

  • 解锁全方位健康生活,构筑身心防护网
  • vue前端项目技术架构(第二版)
  • 【LeetCode 热题100】347:前 K 个高频元素(详细解析)(Go语言版)
  • 如何理解Transformer缺乏像CNN那样的归纳偏置
  • 荣耀大数据面试题及参考答案
  • Redis在线安装
  • 【Python使用】嘿马python运维开发全体系教程第1篇:网络设定,系统基本优化【附代码文档】
  • 【C语言】文件操作
  • 导出cad实体所有信息到txt并打开(生成唯一文件名) ——c#cad二次开发
  • 大数据技术之Scala
  • 5、无线通信基站的FPGA实现架构
  • 大厂算法面试 7 天冲刺:第2天-链表算法深度解析 - 高频面试题与Java实战
  • OpenCv(五)——边缘检测
  • 基础算法篇(3)(蓝桥杯常考点)—图论
  • 【Java】Hibernate的一级缓存
  • 多模态大语言模型arxiv论文略读(一)
  • Mac下小智AI本地环境部署
  • MetaPerceptron:基于200+种优化算法的多层感知器MLP参数优化-附Python免费代码
  • 将pandas.DataFrame转换为以数据为键的字典
  • 【FPGA开发】用 Verilog编程实现一个分秒计数器(实现按键暂停、消抖功能)
  • 两部门调度部署“五一”假期安全防范工作,要求抓好旅游安全
  • 青海省林业和草原局副局长旦增主动投案,正接受审查调查
  • 从咖啡节到话剧、演唱会,上海虹口“文旅商体展”联动促消费
  • 论法的精神︱张玉敏:知识产权保护要为社会经济文化发展服务
  • 美情报机构攻击中国大型商用密码产品提供商,调查报告公布
  • 国家发改委:是否进口美国饲料粮、油料不会影响我国粮食供应