华中农业大学第十三届程序设计竞赛 个人题解(待补)

前言:

  注意本篇博客的题解目前并不完整,未来会慢慢补齐的。

  进入实验室后接触算法比赛的机会更多了,我接触的题也不再是简单的c语言题了,开始遇到更多我没接触过的算法和难题了,死磕这些难题对现在的我不但花时间而且成效甚微,我想不如也把这些题发在博客上,写过的题附上我的代码;那些没写过的题也先发在这,等到我有能力时在来补这些题,相当于是我的待补题单。

正文:

比赛题目网址:华中农业大学第十三届程序设计竞赛(同步赛)_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)

 已完成:

 A:scx 的散文诗句:

#include<bits/stdc++.h>
using namespace std;
int a[100005];
int main(){
	int t;
	cin>>t;
	while(t--){
		memset(a,0,sizeof(a));
		long long n,ans=0,x=0,y=0,z=0,j=0,k=0;
		cin>>n;
		for(int i=1;i<=n;i++){
			cin>>a[i];
			if(a[i]<0)x++;
			else if(a[i]>0) y++;
			else z++;
		}
		sort(a+1,a+n+1);
	//	for(int i=1;i<=n;i++)cout<<a[i]<<" ";
		for(int i=1;i<=x;i+=2){
			if(a[i]<0&&a[i+1]<0)ans+=a[i]*a[i+1];
			else j=a[i];
		}
		for(int i=1;i<=y;i+=2){
			if(a[n-i+1]>0&&a[n-i]>0)ans+=a[n-i+1]*a[n-i];
			else k=a[n-i+1];
		}
	//	cout<<ans<<j<<k<<endl;
		if(z==0)ans+=j*k;
		cout<<ans<<endl;
	}
	return 0;
}

把输入的数字排序并计算正数负数和0的数量分别有几个,再根据情况来决定组合方式,算出最大值。

C:猫猫大队:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,cat=0;
	cin>>n;
	while(n--){
		int m;cin>>m;
		if(m==1){
			cat++;
		}
	}
	if(cat%2==0)cout<<"zzy"<<endl;
		else cout<<"miao"<<endl;
	return 0;
}

签到题。

G:怯战蜥蜴:

#include<bits/stdc++.h>
using namespace std;
long long a[200005],pre[200005];
int main(){
	int n,q;
	cin>>n>>q;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		pre[i]=pre[i-1]+a[i];
	}
	for(int i=1;i<=q;i++){
		int x;cin>>x;
		int l=0,r=n,mid=(l+r)/2;
		while(l<r){
			if(pre[mid]<=x){
				l=mid;
			}
			else r=mid-1;
			mid=(l+r+1)/2;
		}
		cout<<r<<endl;
	}
	return 0;
}

  求前缀和然后用二分来找答案。

I:fumo 星:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll x[1005],y[1005];
ll gcd(ll a,ll b){
	if(b==0)return a;
	return gcd(b,a%b);
}
typedef struct line{
	ll A;
	ll B;
	ll C;
	bool operator < (const line b)const{
		if(A==b.A&&B==b.B&&C==b.C)return false;
		else return A==b.A?(B==b.B?C<b.C:B<b.B):A<b.A;
	}
}fumo;
typedef struct node{
	ll x;
	ll y;
}node;
node nod[1005];
set<line> s;
int main(){
	int n;
	cin>>n;
	if(n==1){
		cout<<"0"<<endl;
		return 0;
	}
	for(int i=1;i<=n;i++){
		cin>>nod[i].x>>nod[i].y;
	}
	for(int i=1;i<=n;i++){
		for(int j=i+1;j<=n;j++){
			if(nod[i].x==nod[j].x&&nod[i].y==nod[j].y){
				cout<<"inf"<<endl;
				return 0;
			}
			ll a=nod[i].y-nod[j].y;
			ll b=nod[j].x-nod[i].x;
			ll c=nod[i].x*nod[j].y-nod[j].x*nod[i].y;
			ll g=gcd(gcd(a,b),c);
			a/=g,b/=g,c/=g;
			if(c<0){
				a=-a;b=-b;c=-c;
			}
			s.insert({a,b,c});
		}
	}
	cout<<s.size()<<endl;
	return 0;
}

我本来是想用点斜式来表示各个直线的(一个斜率和一个截距就能表示一个直线),但不知为何只能过70%用例,最后再参考了其他大佬的写法后决定用标准式(Ax+By+C=0),暴力找全部直线后将他们放进set中,最后输出set的大小。

J:上春山:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+5;
typedef struct mount{
	ll a;
	ll h;
}mount;
mount m[N];
ll prefixa[N],prefixh[N];
bool cmp( mount x, mount y){
	return x.h<y.h;
}
int main(){
	ll n,ans=0;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>m[i].h;	
	}
	for(int i=1;i<=n;i++){
		cin>>m[i].a;
	}
	sort(m+1,m+n+1,cmp);
	for(int i=1;i<=n;i++){
		prefixh[i]=prefixh[i-1]+m[i].h;
		prefixa[i]=prefixa[i-1]+m[i].a;
	}
	for(int i=1;i<=n;i++){
		ll k=m[i].h-1,cnt=0;
		cnt+=prefixa[n]-prefixa[i-1];
		cnt-=(prefixh[n]-prefixh[i-1]-k*(n-i+1));
		ans=max(cnt,ans);
	//	cout<<cnt<<endl;
	}
	cout<<ans<<endl;
	return 0;
} 

根据贡献法我们能简单知道山的顺序并不影响结果,我们为了方便处理数据可以将他们排序。然后再根据贪心知k一定是取到某个h[i]-1得到最大结果,我们就可以枚举k来找最大值。

L:南湖少年团:

#include<bits/stdc++.h>
using namespace std;
char a[1010],b[10];
int main(){
	int n,m,ans=0;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>b[i];
	}
	for(int i=1;i<=m;i++){
		cin>>a[i];
	}
	for(int i=1;i<=m-n+1;i++){
		int flag=1;
		for(int j=1;j<=n;j++){
			if(a[j+i-1]!=b[j]){
				flag=0;
			}
		}
		if(flag)ans++;
	}
	cout<<ans<<endl;
	return 0;
}

暴力即可。

未完成(待补):

B:喵喵喵:

D:无限的韵律源点:

E:樱花下落的速度:

F:奕!悟!:

H:To the Moon, Finding Paradise:

K:BiuBiuBiu:

M:上帝造题的八分钟:

后记:

  这些题我总有一天会补完的!!!立个flag(

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

kubebuilder(4)部署测试

将crd部署到k8s make install 日志&#xff1a; kustomize build config/crd | kubectl apply -f - customresourcedefinition.apiextensions.k8s.io/demoes.tutorial.demo.com created 查看下[rootpaas-m-k8s-master-1 demo-operator]# kubectl api-resources | grep demo de…

python爬虫学习-------scrapy的第一部分(二十九天)

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…

【stomp实战】搭建一套websocket推送平台

前面几个小节我们已经学习了stomp协议&#xff0c;了解了stomp客户端的用法&#xff0c;并且搭建了一个小的后台demo&#xff0c;前端页面通过html页面与后端服务建立WebSocket连接。发送消息给后端服务。后端服务将消息内容原样送回。通过这个demo我们学习了前端stomp客户端的…

BBEdit for Mac v15.0.3激活版 支持多种类型的代码编辑器

BBEdit包含了很多一流的功能&#xff0c;包括GREP图样匹配&#xff0c;搜索和替换多个文件&#xff08;即使未开启的远程服务器上的文件&#xff09;&#xff0c;项目定义的工具&#xff0c;功能导航和众多的源代码语言的语法着色&#xff0c;代码折叠&#xff0c;FTP和SFTP打开…

视频质量度量VQM算法详细介绍

视频质量评价 视频质量评价(Video Quality Assessment,VQA)是指通过主观、客观的方式对视频图像的内容、画质等,进行感知、衡量与评价。 ITU definations subjective assessment: the determination of the quality or impairment of programme-like pictures presented…

后端程序员利用 AI 给网站制作专业 favicon

看看你的 Chrome 浏览器顶部的标签页&#xff0c;每个标签页前面有一个小小的图标&#xff0c;这个就是 favicon&#xff0c;如果你将网页保存到收藏夹&#xff0c;前面也会是这个小图标。这个图标有时候就是网站的 Logo&#xff0c;有时候也不太一样。 上面截图中&#xff0c…

C++学习随笔(10)——string

本章我们来了解一下string类。 目录 1. string类是什么&#xff1f; 1.1 C语言中的字符串 1.2 string类本质 2. 标准库中的string类 2.1 string类 2.2 string类的常用接口说明 1. string类对象的常见构造 2. string类对象的容量操作 3. string类对象的访问及遍历操作…

static和extern关键字详解

目录 创作不易&#xff0c;如对您有帮助&#xff0c;还望一键三连&#xff0c;谢谢&#xff01;&#xff01;&#xff01; 回顾 1.作用域和声明周期 1.1作用域 1.2生命周期 2.static和extern 2.1extern 2.2static 2.2-1static修饰局部变量 2.2-2static修饰全局变量 创…

vue flvjs 播放视频

写在前面&#xff1a; 之前使用过vodiejs插件播放过mp4视频格式的视频&#xff1b; 此次需要使用flvjs插件播放rtsp视频格式的视频&#xff1b; 因为视频的数据格式不同&#xff0c;所以对应的插件不同。 思维导图&#xff1a; 参考链接&#xff1a;rtmp、rtsp、flv、m3u8、 …

手把手教会你做属于自己的网站《保姆级教程》

手把手教会你做属于自己的网站《保姆级教程》 前言开始教程特别说明下期内容预报 前言 什么是个人网站&#xff1f; 个人网站是指因特网上一块固定的面向全世界发布消息的地方&#xff0c;通常由域名&#xff08;也就是网站地址&#xff09;、程序和网站空间构成&#xff0c;并…

麒麟 Kylin V10 一键安装 Oracle 11GR2 单机 ASM(231017)

前言 Oracle 一键安装脚本&#xff0c;演示麒麟 Kylin V10 一键安装 Oracle 11GR2 单机 ASM&#xff08;231017&#xff09;过程&#xff08;全程无需人工干预&#xff09;&#xff1a;&#xff08;脚本包括 ORALCE PSU/OJVM 等补丁自动安装&#xff09; ⭐️ 脚本下载地址&a…

(八)小案例银行家应用程序-排序-数组排序

排序一直有很多的算法&#xff0c;今天我们仅仅来说JavaScript内置的排序方法 ● 字符串 const owners [Jonas, Zach, Adam, Martha]; console.log(owners.sort()); console.log(owners);但是注意&#xff0c;这个方法会改变原有的数组&#xff1b; ● 我们在试试数字 cons…

用java实现PDF的下载

1.下载PDF模版 2.导入依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itext7-core</artifactId><version>7.2.5</version><type>pom</type></dependency> 3.完整代码 package com.by.controller…

JAVASE8中基本数据类型

本篇文章基于有过一部分的C语言基础的&#xff0c;还望大家理解 在进入到学习之前我们必须要清楚的是在JAVASE中数据类型与C语言中的数据类型基本上是相同的,接下来我们先来对8中数据类型进行简要介绍&#xff0c;他们分别是&#xff1a; 如果大家之前了解过C语言那么对于基本数…

常见的工业路由器访问问题

A&#xff1a;工业路由器已经设置了pptp怎么访问路由下面的电脑 1. 确认PPTP VPN设置&#xff1a;首先&#xff0c;确保PPTP VPN服务器在工业路由器上已正确设置&#xff0c;并且处于活动状态。这包括确保VPN服务器的IP地址、端口、用户名和密码等设置正确无误。 2. 连接到VP…

Apple公司面试题之Apple-Orange

1. 引言 你幻想过在Apple公司工作吗&#xff1f; 如果心动过&#xff0c;那这个逻辑推理面试题就是给你准备的&#xff01;这是一道有趣的面试题&#xff0c;如下所示&#xff1a; 看到这里的同学&#xff0c;我建议你暂停文章&#xff0c;拿起笔和纸&#xff0c;试一试。准…

KBL410-ASEMI新能源专用整流桥KBL410

编辑&#xff1a;ll KBL410-ASEMI新能源专用整流桥KBL410 型号&#xff1a;KBL410 品牌&#xff1a;ASEMI 封装&#xff1a;KBL-4 最大重复峰值反向电压&#xff1a;1000V 最大正向平均整流电流(Vdss)&#xff1a;4A 功率(Pd)&#xff1a;小功率 芯片个数&#xff1a;4…

Linux实现文件共享

#nfs-utils、rpcbind 软件包来提供 NFS 共享服务 #客户端创建共享文件夹&#xff1a; nmcli c reload nmcli c up ens160 systemctl stop firewalld systemctl disable firewalld rpm -q nfs-utils rpcbind #查看是否安装 systemctl enable rpcbind systemctl enable nfs…

Skill Check: Fundamentals of Large Language Models

Skill Check: Fundamentals of Large Language Models 完结&#xff01;

CUDA的开发框架

CUDA的开发框架主要提供了一系列工具和库&#xff0c;使得开发者可以充分利用NVIDIA GPU进行高效的并行计算。以下是CUDA开发框架的一些关键组成部分。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.CUDA核心库&#xff1a;这些是构…