csp-j模拟五补题报告

news2024/11/26 0:45:37

前言

今天第二题文件名把 r 写成 t 了 又跌出前10名了
白丢了好多分
(“关于二进制中一的个数的研究与规律”这篇文章正在写)

第一题

牛奶(milk)

请添加图片描述

我的代码(AC)

#include<bits/stdc++.h>
#define ll long long
#define fi first
#define se second
using namespace std;
const int N=1e5+5;
pair<int,int> milk[N];
int n,m,ans,cnt;
int main(){
	freopen("milk.in","r",stdin);
	freopen("milk.out","w",stdout);
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>milk[i].se>>milk[i].fi;
	sort(milk+1,milk+n+1);
	int k=0;
	while(k<m){
		ans+=milk[++cnt].fi*milk[cnt].se;
		k+=milk[cnt].se;
	}
	int t=k-m;
	if(t!=0) ans-=milk[cnt].fi*t;
	cout<<ans;
	return 0;
} 
/*
样例 
5 100
20 5
40 9
10 3
80 8
30 6
*/

思路:把他按价格从小到大排序,依次累加,直到等于m

AC代码

我的就是

第二题

树组(Traary)

请添加图片描述
请添加图片描述
请添加图片描述

我的代码(0,重判60)

#include<bits/stdc++.h>
#define ll long long
#define fi first
#define se second
using namespace std;
const int N=1e5+5;
int n,m,k,h[N],magic[N]; 
int main(){
	freopen("traary.in","r",stdin);
	freopen("traary.out","w",stdout);
	scanf("%d%d%d",&n,&m,&k);
	while(m--){
		int op,x;
		scanf("%d%d",&op,&x);
		if(op==1) magic[x]=k;
		else if(op==2) magic[x]=0;
		else if(op==3) printf("%d\n",h[x]);
		for(int i=1;i<=n;i++){
			h[i]++;
			if(magic[i]) h[i]++,magic[i]--;
		}
	}
	return 0;
} 
/*
样例 
7 9 3
3 1
3 1
1 5
1 5
1 1
3 1
2 1
3 1
3 5
*/

思路:模拟

AC代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e5+5;
int n,m,k,day,f[N],g[N],h[N];
void over(int x){
	if(g[x]==0) return;
	if(f[x]+g[x]-1<=day){//魔法结束天数小于等于day 
		h[x]+=g[x];//完整地多生长了g[x] 
		g[x]=0;
	}
	else{
		int tmp=f[x]+g[x]-1-day;
		h[x]+=day-f[x]+1;
		g[x]=tmp;f[x]=day+1;
	}
}
int main(){
	scanf("%d%d%d",&n,&m,&k);
	while(m--){//day:已经生长了的天数 
		//f[x]:魔法开始生效的时间,g[x]:魔法持续的时间 
		int op,x;
		scanf("%d%d",&op,&x);
		if(op==1){
			over(x);
			f[x]=day+1,g[x]=k;
		}
		else if(op==2){
			over(x);g[x]=0;
		}
		else{
			over(x);
			printf("%d\n",h[x]+day);
		}
		day++;
	}
	return 0;
}

思路:模拟+优化

第三题

智乃的兔子(usagi)

请添加图片描述
请添加图片描述
请添加图片描述

我的代码(30)

#include<bits/stdc++.h>
#define ll long long
#define fi first
#define se second
using namespace std;
const int N=1e5+5;
int n,H,a[N],b[N],vis[N],ans;
void dfs(int cute,int fun,int head){
	if(fun>H) return ;
	if(cute%7==0&&fun<=H) ans=max(ans,cute);
	for(int i=head;i<=n;i++){
		if(vis[i]==1) continue;
		vis[i]=1;
		dfs(cute+a[i],fun+b[i],i);
		vis[i]=0;
	}
}
int main(){
	freopen("usagi.in","r",stdin);
	freopen("usagi.out","w",stdout);
	scanf("%d%d",&n,&H);
	for(int i=1;i<=n;i++) scanf("%d",a+i);
	for(int i=1;i<=n;i++) scanf("%d",b+i);
	dfs(0,0,1);
	printf("%d",ans);
	return 0;
} 
/*
样例 
10 10
9 3 7 3 6 4 4 5 9 9
0 1 1 1 1 0 0 1 0 0

3 10
4 3 4
6 5 5
*/

思路:暴搜

AC代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,H,a[10005],b[10005];
ll f[2][7],dp[2][1005][7];
int main(){
	scanf("%d%d",&n,&H);
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	for(int i=1;i<=n;i++) scanf("%d",&b[i]);
	if(H==998244353){
		memset(f,-0x3f,sizeof(f));
		f[0][0]=0;
		for(int i=1;i<=n;i++){
			int t=i&1;
			for(int j=0;j<7;j++){
				f[t][j]=max(f[t^1][j],f[t^1][((j-a[i])%7+7)%7]+a[i]);
			}
		}
		printf("%lld\n",f[n&1][0]);
		return 0;
	}
	memset(dp,-0x3f,sizeof(dp));
	dp[0][0][0]=0;
	for(int i=1;i<=n;i++){
		int t=i&1;
		for(int j=0;j<=H;j++){
			for(int k=0;k<7;k++){
				if(j<b[i]) dp[t][j][k]=dp[t^1][j][k];
				else dp[t][j][k]=max(dp[t^1][j][k],dp[t^1][j-b[i]][((k-a[i])%7+7)%7]+a[i]);
			}
		}
	}
	ll ans=0;
	for(int i=0;i<=H;i++){
		ans=max(ans,dp[n&1][i][0]);
	}
	printf("%lld",ans);
} 

思路:
请添加图片描述

第四题

一颗成熟的奥术飞弹(missiles)

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

我的代码(0)

#include<bits/stdc++.h>
#define ll long long
#define fi first
#define se second
using namespace std;
int n,m;
int main(){
	freopen("missiles.in","r",stdin);
	freopen("missiles.out","w",stdout);
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int u,v;
		cin>>u>>v;
	}
	if(n==6&&m==7){
		cout<<"3 2";
		return 0;
	}
	if(n==7&&m==8){
		cout<<"4 2";
		return 0;
	}
	cout<<"114 514";
	return 0;
} 
/*
样例 
6 7
1 2
3 4
2 4
1 3
3 5
4 6
5 6

7 8
1 2
1 3
3 4
2 4
4 5
4 6
5 7
6 7
*/

思路:输出样例

AC代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5,mod=998244353;
struct node{
	int to,nxt;
}edge[N<<2];
int n,m,cnt=1,head[N],hd=1,tail,q[N],dis[N],pre[N],tot[N],ans[N];
void add(int u,int v){
	edge[cnt].to=v;
	edge[cnt].nxt=head[u];
	head[u]=cnt++;
}
void bfs(){
	memset(dis,-1,sizeof(dis));
	dis[n]=0;
	q[++tail]=n;
	while(hd<=tail){
		int u=q[hd++];
		for(int i=head[u];i;i=edge[i].nxt){
			int v=edge[i].to;
			if(dis[v]==-1){
				dis[v]=dis[u]+1;//最短路
				pre[v]=u;//记录上一个点
				q[++tail]=v; 
			}
		}
	}
}
int main(){
	scanf("%d%d",&n,&m);
	while(m--){
		int u,v;
		scanf("%d%d",&u,&v);
		add(u,v),add(v,u);
	}
	bfs();
	tot[n]=1;
	for(int i=1;i<=tail;i++){
		int u=q[i],flag=0;
		for(int j=head[u];j;j=edge[j].nxt){
			int v=edge[j].to;
			if(dis[u]==dis[v]+1){
				ans[u]=max(ans[u],ans[v]);//统计最大的偏移量
				(tot[u]+=tot[v])%=mod;//统计最短路线的条数
				if(v!=pre[u]) flag=1;//记录有分叉,偏移量加一 
			}
		}
		ans[u]+=flag;
	}
	printf("%d %d\n",tot[1],ans[1]);
	return 0;
}

思路:
请添加图片描述
请添加图片描述

总结

啊啊啊啊啊啊啊啊啊啊!
写错一个字母从第5名跌倒了第10几名
一定要好好检查
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!

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

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

相关文章

Acwing 线性DP

状态转移方程呈现出一种线性的递推形式的DP&#xff0c;我们将其称为线性DP。 Acwing 898.数字三角形 实现思路&#xff1a; 对这个三角形的数字进行编号&#xff0c;状态表示依然可以用二维表示&#xff0c;即f(i,j),i表示横坐标&#xff08;横线&#xff09;&#xff0c;j表…

pygame--超级马里奥(万字详细版)

超级马里奥点我下载https://github.com/marblexu/PythonSuperMario 1.游戏介绍 小时候的经典游戏&#xff0c;代码参考了github上的项目Mario-Level-1&#xff0c;使用pygame来实现&#xff0c;从中学习到了横版过关游戏实现中的一些处理方法。原项目实现了超级玛丽的第一个小…

Windows应急响应-Auto病毒

文章目录 应急背景分析样本开启监控感染病毒查看监控分析病毒行为1.autorun.inf分析2.异常连接3.进程排查4.启动项排查 查杀1.先删掉autorun.inf文件2.使用xuetr杀掉进程3.启动项删除重启排查入侵排查正常流程 应急背景 运维人员准备通过windows共享文档方式为公司员工下发软件…

【Java】Java面试题笔试

[赠送]面试视频指导简历面试题 Java面试笔试题题库华为 java笔试面试题2014.files 就业相关java 面试题 面试题库 视频笔记 java笔试题大集合及答案 java面试书籍源码 java算法大全源码包8张图解 java.docx25个经典的Spring面试问答.docx 25个经典的Spring面试问答.docx 100家大…

知识图谱入门——10:使用 spaCy 进行命名实体识别(NER)的进阶应用:基于词袋的实体识别与知识抽取

在构建知识图谱的过程中&#xff0c;如何准确地识别和提取实体是关键。spaCy 提供了强大的命名实体识别&#xff08;NER&#xff09;功能&#xff0c;我们可以结合自定义规则和工具来实现更精准的实体抽取。本文将详细探讨如何在 spaCy 中实现自定义实体抽取&#xff0c;包括使…

OpenAI 推出 Canvas 工具,助力用户与 ChatGPT 协作写作和编程

OpenAI 近日推出了一款名为 Canvas 的新工具&#xff0c;旨在帮助用户更高效地与 ChatGPT 协作进行写作与编程。 Canvas 允许用户在一个独立窗口中与 ChatGPT 实时协作修改内容。无论是改进文本、调整语言风格、审查代码&#xff0c;还是在不同编程语言间转换&#xff0c;Canv…

Js逆向分析+Python爬虫结合

JS逆向分析Python爬虫结合 特别声明&#x1f4e2;&#xff1a;本教程只用于教学&#xff0c;大家在使用爬虫过程中需要遵守相关法律法规&#xff0c;否则后果自负&#xff01;&#xff01;&#xff01; 完整代码地址Github&#xff1a;https://github.com/ziyifast/ziyifast-co…

自闭症干预寄宿学校:为孩子搭建沟通与社交的桥梁

在探索自闭症儿童教育的广阔天地里&#xff0c;一所优秀的寄宿学校不仅是知识的殿堂&#xff0c;更是孩子们学习沟通与社交技能的桥梁。位于广州的星贝育园自闭症儿童寄宿制学校&#xff0c;正是这样一所专注于为自闭症儿童提供全面、个性化教育服务的机构&#xff0c;它以其独…

Linux-du命令使用方法

Linux-du&#xff08;disk useage&#xff09;命令 du 命令用于查看文件和目录占用的磁盘空间。 du [选项] [文件或目录]-h (human-readable)&#xff1a; 将输出格式转为人类可读的形式&#xff0c;使用 KB、MB 等单位。 du -h /path/to/directory1.5M /path/to/directory…

Pikachu-SSRF(curl / file_get_content)

SSRF SSRF是Server-side Request Forge的缩写&#xff0c;中文翻译为服务端请求伪造。产生的原因是由于服务端提供了从其他服务器应用获取数据的功能且没有对地址和协议等做过滤和限制。常见的一个场景就是&#xff0c;通过用户输入的URL来获取图片。这个功能如果被恶意使用&am…

Linux 之 安装软件、GCC编译器、Linux 操作系统基础

安装软件、GCC编译器、Linux 操作系统基础 学习任务&#xff1a; 安装 Vmware虚拟机、掌握Ubuntu 系统的使用认识 Ubuntu 操作系统的终端和 Shell掌握软件安装、文件系统、掌握磁盘管理与解压缩掌握 VIM 编辑器、Makefile 基本语法熟悉 Linux 常见指令操作 安装好开发软件&…

力扣189.轮转数组

给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2,3,4…

数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(一).创建基础表

一. 使用工具和命令 1.1 使用的工具 Navicat Premium 17 &#xff1a;“Navicat”是一套可创建多个连接的数据库管理工具。 MySQL版本8.0.39 。 1.2 使用的命令 Navicat中使用的命令 命令命令解释SHOW DATABASES&#xff1b;展示所有的数据库CREATE DATABASE 数据库名称; 创…

10以内数的分解

// 10以内数的分解.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //#include <iostream> using namespace std; int main(int argc, char* argv[]){for (int i 2; i < 10; i){for (int j 1; j < i; j){printf("%d%d%d ",j…

CSS样式基础样式选择器(案例+代码实现+效果图)

目录 1.css样式的规则 2.引入css样式的方式 1)行内式 2)内嵌式 3)外链式 1-link导入 2-import导入 4)总 3.css基础选择器 1)标签选择器 案例&#xff1a;使用标签选择器编写一个圆 1.代码 2.效果 2)类选择器 案例&#xff1a;使用类选择器为div添加背景色 1.代码 2.效果 3)id…

深度探索Kali Linux的精髓与实践应用

Kali Linux简介 Kali Linux作为全球网络安全领域的首选操作系统之一&#xff0c;其强大的功能性及广泛的适用范围令人瞩目。除了上述基础介绍外&#xff0c;让我们深入探究Kali Linux的几个关键特性及其在实际操作中的具体应用案例。 Kali工具集成&#xff1a;全面的安全工具…

加湿器模块(5V STM32)

目录 一、介绍 二、模块原理 1.原理图 2.引脚描述 3.尺寸介绍 三、程序设计 main.c文件 jsq.h文件 jsq.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 加湿器模块通常是指在智能家居设备中负责增加室内空气湿度的部分&#xff0c;这种模块设计旨在改善干燥环…

osg 矩阵相关

下面结果是一样的 osg::Matrix mtrixx;mtrixx.makeRotate(90 / 180.f * osg::PI, osg::Vec3(1, 0, 0));osg::Matrix mtrixx12 osg::Matrix::rotate(90 / 180.f * osg::PI, 1, 0, 0); 备注&#xff1a; rotate或makerotate第一个参数是弧度&#xff0c;可以用 弧度值osg::in…

Pre-trained Natural Language Understanding for Task-Oriented Dialogue

前言 众所周知,预训练BERT语言模型在许多NLP任务重大放异彩,用来文本内容和语义的表征学习很有效果,而且大大降低了下游任务的训练时间。但是由于普通文本和任务型对话之间的语言模式的潜在差异,使得现在的预训练语言模型在实际使用中作用不大。 至于对话领域的预训练语言…

MS-900认证:Microsoft 365 Certified: Fundamentals

一、什么是MS-900认证&#xff1f; MS900认证&#xff0c;全称是 Microsoft 365 Fundamentals&#xff0c;是微软提供的一项认证考试&#xff0c;它旨在验证考生对 Microsoft 365 服务和功能的理解&#xff0c;包括云服务概念、核心服务、安全性、合规性、隐私以及支持和定价信…