2024年西安交通大学程序设计校赛(ABCDEFO)

news2024/11/24 7:46:44

题目链接:https://vjudge.net/contest/630537#overview

文章目录

  • A题
    • 题意
    • 思路
    • 编程
  • B题
    • 题意
    • 思路
    • 编程
  • C题
    • 题意
    • 思路
    • 编程
  • D题
    • 题意
    • 思路
    • 编程
  • E题
    • 题意
    • 思路
    • 编程
  • F题
    • 题意
    • 思路
    • 编程
  • O题
    • 题意
    • 思路
    • 编程

写在前面:今天的训练赛出的题目偏简单,与XCPC的难度差别较大,但是我们这次打的也不是很好,卡在思维题卡了很久也没写出来,还需继续努力······


回归正题

A题

题意

输入a,b,c,d四个数,按题意输出。

思路

签到题,直接输出即可。

编程

#include<bits/stdc++.h>
#define int long long 
#define endl "\n"
#define fi first
#define se second
#define PII pair<int,int> 
using namespace std;
const int N=1e6+5;
int a[N];
void solve(){
	int a,b,c,d;
	cin >> a >> b >> c >> d;
	cout << a+b+2*c+3*d << endl; 
	return ;
}
signed main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t=1;
	//cin >> t;
	while(t--) solve();
	return 0;
}

B题

题意

给定起始坐标x,y,在给出它转动的时间和圈数,求这个点转动后和起始坐标点位移。

思路

数学思维,求出起始坐标转动的角度,然后套用数学公式即可

编程

#include<bits/stdc++.h>
//#define int long long 
#define endl "\n"
#define fi first
#define se second
#define PII pair<int,int> 
#define PI 3.1415926535
using namespace std;
const int N=1e6+5;
int a[N];
void solve(){
	double x,y,t,v;
	cin >> x >> y >> t >> v;
	double r=sqrt(x*x+y*y);
	double q=t*v-int(t*v);
	q=q*360;
	if(q>180){
		q=360-q;
	}
	q=q*PI/180;
	printf("%.10f",sqrt(2*r*r-2*r*r*cos(q)));
	return ;
}
signed main(){
	//ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t=1;
	//cin >> t;
	while(t--) solve();
	return 0;
}

C题

题意

给你两个整数x,y代表纵向坐标,将它转化为平面坐标

思路

套题目给的公式即可

编程

#include<bits/stdc++.h>
#define int long long 
#define endl "\n"
#define fi first
#define se second
#define PII pair<int,int> 
#define PI 3.1415926
using namespace std;
const int N=1e6+5;
int a[N];
void solve(){
	double x,y;
	cin >> x >> y;
	double a=x/2+y/2,b=x/2*pow(3,0.5)-y/2*pow(3,0.5);
	printf("%.6f %.6f",a,b);
	return ;
}
signed main(){
	//ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t=1;
	//cin >> t;
	while(t--) solve();
	return 0;
}

D题

题意

一共n个人,请找出一条链接图连接这n个数,且影的力量必须大于等于0

思路

考虑最基础的情况:将所有结点构造成一条链,由于支配关系是可传递的,而且只需要保证影的力量非负,构造一条链即可

  • 我们有两种支配的方法
  • 第一种,1 是总支配者,其余每人都支配他后面一个人,也就是每个人支配他后面的所有人。
  • 第二种,n 是总支配者,其余每人都支配他前面一个人,也就是每个人支配他前面的所有人。
  • 对于每次输入的x,y,如果x>=y,我们让sum++,反之sum–,若sum大于等于0,选择方案一,反之选择方案二

编程

#include<bits/stdc++.h>
#define int long long 
#define endl "\n"
#define fi first
#define se second
#define PII pair<int,int> 
using namespace std;
const int N=1e5+5;
void solve(){
	int n,m;
	cin >> n >> m;
	int sum=0;
	for(int i=1;i<=m;++i){
		int x,y;
		cin >> x >> y;
		if(x>=y) sum++;
		else sum--;
	}
	if(sum>=0){
		for(int i=1;i<n;++i){
			cout << i+1 << " ";//前面支配后面
		}
		cout << 0;
	}
	else{
		cout << 0 << " ";
		for(int i=2;i<=n;++i){//后面支配前面
			cout << i-1 << " ";
		}
	}
	return ;
}
signed main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t=1;
	//cin >> t;
	while(t--) solve();
	return 0;
}

E题

题意

给出n个数的序列ai,要求还原所有楼的大小关系,按照楼层的高低,进行升序排序。

思路

从0进行入手,0是代表当前序列的前面所有序列都比当前序列高,那么我们可以倒着遍历这个序列,当遇到0的时候直接输出该下标,若遍历的数不是0,那么就将该下标存入到ai的序列里面,跟在ai的后面输出即可

编程

#include<bits/stdc++.h>
#define int long long 
#define endl "\n"
#define fi first
#define se second
#define PII pair<int,int> 
using namespace std;
const int N=2e5+5;
vector<int> a;
vector<int> b[N];
void solve(){
	int n;cin >> n;
    a.resize(n+1);	
	for(int i=1;i<=n;++i){
		cin >> a[i];
		b[i].push_back(i);//先存入当前下标
	}
	for(int i=n;i>=1;--i){
		if(a[i]==0){//遇到0直接输出b[i]数组里面所有的数
			for(auto j : b[i]){
				cout << j << " ";
			}
		}
		else{
			for(auto j : b[i]){
			b[a[i]].push_back(j);	//将当前下标存入的所有数存入到b[a[i]]里面
			}
		}
	}
	return ;
}
signed main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t=1;
	//cin >> t;
	while(t--) solve();
	return 0;
}

F题

题意

给出n个数的序列ai,若ai相同则为同一个骑士团,求每两个骑士团所获得的最大收益

思路

将每个骑士团的值进行相加,然后将两个骑士团相加完后的值相乘即可

编程

#include<bits/stdc++.h>
#define int long long 
#define endl "\n"
#define fi first
#define se second
#define PII pair<int,int> 
using namespace std;
const int N=1e6+5;
map<int,int> mp;
void solve(){
	int n,m;	
	cin >> n >> m;
	for(int i=1;i<=n;++i){
		int x;cin >> x;
		mp[x]+=i;
	}
	
	while(m--){
		int a,b;
		int ans=0;
		cin >> a >> b;
		ans+=mp[a]*mp[b];
		cout << ans << endl;
	}	
	return ;
}
signed main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t=1;
	//cin >> t;
	while(t--) solve();
	return 0;
}

O题

题意

在这里插入图片描述

思路

找规律,最终找到的规律为n*n,直接输出即可

编程

#include<bits/stdc++.h>
#define int long long 
#define endl "\n"
#define fi first
#define se second
#define PII pair<int,int> 
using namespace std;
const int N=1e6+5;
int a[N];
void solve(){
	int n;cin>>n;
	cout<<n*n;
	return ;
}
signed main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t=1;
	//cin >> t;
	while(t--) solve();
	return 0;
}

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

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

相关文章

什么是React?

01 Why React? What is React? I think the one-line description of React on its home page (https://react.dev/) is concise and accurate: “A JavaScript library for building user interfaces.” 我认为React主页(https://react.dev/)上的一行描述既简洁又准确: …

Java是长连接

Java是长连接&#xff0c;springboot进程被结束才断开 一个连接池有10个连接&#xff0c;2个并发会占用2个连接&#xff0c;用完之后归还给连接池 springboot服务用户的是线程池&#xff0c;返回结果之后&#xff0c;线程自动归还到线程池。跟php机制不一样 php是短链接&am…

关于网络的基础知识

大家好&#xff0c;在当今数字时代&#xff0c;网络已经成为我们生活中不可或缺的一部分&#xff0c;它连接着世界的每一个角落&#xff0c;让信息、资源和人们彼此之间无阻碍地交流和共享。然而&#xff0c;对于许多人来说&#xff0c;网络仍然是一个神秘而复杂的领域&#xf…

模型实战(21)之 C++ - tensorRT部署yolov8-det 目标检测

C++ - tensorRT部署yolov8-det 目标检测 python环境下如何直接调用推理模型转换并导出:pt -> onnx ->.engineC++ tensorrt 部署检测模型不写废话了,直接上具体实现过程+all代码 1.Python环境下推理 直接命令行推理,巨简单yolo detect predict model=yolov8n.pt source…

linux系统的逻辑卷管理及磁盘配额

目录 逻辑卷管理 磁盘配额 逻辑卷管理 lvm&#xff1a;logical volume manager 逻辑卷管理 linux系统下对硬盘分区的一种管理机制。 lvm机制特别适合于管理大存储设备&#xff0c;可以动态的对硬盘进行扩容。 逻辑上的磁盘&#xff0c;概念上的磁盘&a…

期权与股票在交易上是有什么区别吗?

国内的股票市场&#xff0c;只能做多&#xff0c;T1交易。期权则分为4个方向&#xff0c;买入看涨期权&#xff0c;买入看跌期权&#xff0c;也就是做多和做空T0双向交易&#xff0c;同时每个方向还区分不同的行权价&#xff0c;每个行权价对应的4个方向的期权&#xff0c;都有…

操作系统复习-操作系统概述

操作系统概述 操作系统的基本功能 操作系统统一管理着计算机资源&#xff1a; 处理器资源IO设备资源存储器资源文件资源 操作系统实现了对计算机资源的抽象&#xff1a; 用户无需向硬件接口编程IO设备管理软件&#xff0c;提供读写接口文件管理软件&#xff0c;提供操作文…

快手自动私信获客软件,精准定位潜在客户

在当今数字化营销时代&#xff0c;短视频平台已成为企业与个人品牌不可忽视的流量宝地。快手作为国内领先的短视频社交平台&#xff0c;汇聚了庞大的用户群体和丰富的兴趣社区&#xff0c;为各类商家、创作者提供了无限商机。如何在快手平台上高效引流获客&#xff0c;实现精准…

.net8.0与halcon编程环境构建

1.安装vs2022 2.安装h-12.0.exe ,不要勾选复选框 3.vs2022新建wpf应用程序 4.依赖项添加项目应用,选择halcondotnet.dll 5.安装System.Drawing 安装 HalconDotNet 安装 Rti.HDevEngineDotNet 在工具箱 空白处右键 应用halcon.dll WPF控件也应用halcon.dll 6.xaml申明hal…

尝试编译 AMD ROCm 的 llvm-project

ubuntu 22.04 gcc-11 x86_64 18cores/36threads 256GB RAM 1&#xff0c;第一次尝试 构建命令&#xff1a; cmake -G "Unix Makefiles" ../llvm \ -DLLVM_ENABLE_PROJECTS"clang;lld;lldb;mlir;openmp" \ -DLLVM_BUILD_EXAMPLESON \ -DLLVM_TARGETS_T…

企业为何广泛应用数据可视化?解析其背后原因

数据可视化为何能在企业当中广泛应用&#xff1f;这是一个值得探讨的话题。在当今信息爆炸的时代&#xff0c;企业每天都会产生和处理大量的数据&#xff0c;这些数据蕴含着丰富的信息和潜在的商业价值。然而&#xff0c;面对海量数据&#xff0c;如何高效地分析、理解和利用它…

Springboot邮件发送配置

Springboot邮件发送配置 pom.xml依赖&#xff1a; <dependency><groupId>org.eclipse.angus</groupId><artifactId>jakarta.mail</artifactId><version>2.0.3</version> </dependency> <dependency><groupId>or…

23种设计模式之一— — — —装饰模式详细介绍与讲解

装饰模式详细讲解 一、定义二、装饰模式结构核心思想模式角色模式的UML类图应用场景模式优点模式缺点 实例演示图示代码演示运行结果 一、定义 装饰模式&#xff08;别名&#xff1a;包装器&#xff09; 装饰模式&#xff08;Decorator Pattern&#xff09;是结构型的设计模式…

从一维到二维:数组转换的奥秘与应用

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言&#xff1a;数组转换的魅力 二、一维数组转二维数组的基础方法 1. 确定二维数组的…

智能仓储物流系统(WMS)系列-管理查询调整

好的应用系统应是细分简单&#xff0c;界面简洁易操作&#xff0c;程序代码简洁易懂的。

基于51单片机的酒精浓度检测仪的设计

一.硬件方案 硬件部分为利用MQ3气敏传感器测量空气中酒精浓度&#xff0c;并转换为电压信号&#xff0c;经A/D转换器转换成数字信号后传给单片机系统&#xff0c;由单片机及其相应外围电路进行信号的处理&#xff0c;显示酒精浓度值以及超阈值声光报警。电路主要由51单片机最小…

记录第一次使用U盘重装系统(win10专业版)的流程与总结

写在前面 刚进大学那会儿不懂电脑&#xff0c;什么东西都往 C 盘装&#xff0c;以至于很多环境、文件这些都很乱 尽管我已经把能移的都移动到 D盘了&#xff0c;能清理的东西也清理了&#xff0c;C 盘还是时不时会爆红 刚好最近 CTF 比赛打得差不多了&#xff0c;因此勇师傅决定…

raid配置与实战

一、raid理论 1、raid概述 raid&#xff08;磁盘阵列&#xff09;&#xff1a;是用不同的硬盘分区&#xff0c;组成一个逻辑上的硬盘&#xff0c;高可用&#xff08;冗余&#xff09;。 2、raid级别 2.1、raid0条带化存储 数据分散在多个物理磁盘上的存储方式&#xff0c;…

浅谈 parallelStream和Stream 源码及其应用场景

上篇讲述了list.forEach()和list.stream().forEach() 异同点 谈到了并行流的概念&#xff0c;本篇则从源码出发&#xff0c;了解一下其原理。 一、流的初始操作流程 jdk8中 将Collection中加入了转换流的概念。 default Stream<E> stream() {return StreamSupport.str…

小红书引流获客软件,轻松成为爆款达人

在这个信息爆炸的时代&#xff0c;小红书凭借其独特的内容分享社区模式&#xff0c;迅速成为了品牌和个体创业者不可忽视的营销宝地。作为一个集生活方式分享、购物心得、美妆教程、旅行攻略等于一身的平台&#xff0c;小红书聚集了大量追求品质生活的年轻用户群体。对于想要在…