CSP-J Day 3 模拟赛补题报告

news2024/11/27 10:38:05

姓名:王胤皓,校区:和谐校区,考试时间: 2024 2024 2024 10 10 10 3 3 3 9 : 00 : 00 9:00:00 9:00:00~ 12 : 30 : 00 12:30:00 12:30:00,学号: S 07738 S07738 S07738

请关注作者的 B 站,谢谢~链接

CSP-J Day 3 3 3 模拟赛补题报告

前言

考了我们班 Rank 3 3 3

分数

T1 ip: A c c e p e t e d   100 \color{green}Accepeted\space100 Accepeted 100
T2 same: A c c e p e t e d   100 \color{green}Accepeted\space100 Accepeted 100
T3 box: W r o n g _ a n s w e r   10 \color{red}Wrong\_answer\space10 Wrong_answer 10
T4 party: W r o n g _ a n s w e r   20 \color{red}Wrong\_answer\space20 Wrong_answer 20

T1

题面

在这里插入图片描述

思路

开一个映射数组,下标存的是 ip 地址,内容存的是名称,然后每次询问,直接输出下标所对应的名称,就可以了。

赛时 A c c e p e t e d \color{green}{Accepeted} Accepeted 代码

#include<bits/stdc++.h>
using namespace std;
map<string,string> m;
int main(){
	freopen("ip.in","r",stdin);
	freopen("ip.out","w",stdout);
	int n;
	cin>>n;
	while(n--){
		string a,b;
		cin>>a>>b;
		m[b]=a;
	}
	int q;
	cin>>q;
	while(q--){
		string c;
		cin>>c;
		cout<<m[c]<<"\n";
	}
	return 0;
}

T2

题面

在这里插入图片描述

思路

利用双指针找到两个个长度都为 k k k 的不相等的区间,然后双指针后, k k k 就是 l l l 1 1 1,然后按照题目描述模拟,然后逐次判断,最后输出。

代码

#include<bits/stdc++.h>
using namespace std;
int a[1000005],b[1000005];
int main(){
	freopen("same.in","r",stdin);
	freopen("same.out","w",stdout);
	cin.tie(0);
	ios::sync_with_stdio(false);
	int t;
	cin>>t;
	while(t--){
		int n;
		cin>>n;
		for(int i=1; i<=n; i++) cin>>a[i];
		for(int i=1; i<=n; i++) cin>>b[i];
		int l=1,r=n;
		while(l<r){
			if(a[l]!=b[l]&&a[r]!=b[r]){
				l++,r--;
			}
			else{
				break;
			}
		}
		l--;
		for(int i=1,j=n-l+1; i<=l; i++,j++){
			swap(a[i],a[j]);
		} 
		bool flag=0;
		for(int i=1; i<=n; i++){
			if(a[i]!=b[i]){
				flag=1;
				break;
			}
		}
		if(flag==1) cout<<"No\n";
		else cout<<"Yes\n";
	}
	return 0;
}

T3

题面

在这里插入图片描述

思路

错误思路

按照合并果子的策略,每次合并 m m m 个,最终不够 m m m 个,直接都合起来。

用优先队列实现小顶堆。

正确思路

按照合并果子的策略,每次合并 m m m 个,最终不够 m m m 个,添上不够的数量个 0 0 0,然后再重新执行一遍

用优先队列实现小顶堆。

代码

#include<bits/stdc++.h>
using namespace std;
priority_queue<long long,vector<long long>,greater<long long> > pq,pqq;
int main(){
	int n,m;
	cin>>n>>m;
	long long w;
	for(int i=1; i<=n; i++){
		cin>>w;
		pq.push(w*1ll);
		pqq.push(w*1ll);
	}
	int flag=0;
	long long cnt=0ll;
	while(pq.size()>1){
		long long sum=0ll;
		int len=pq.size();
		for(int i=1; i<=min(m,len); i++){
			sum+=pq.top();
			pq.pop();
		}
		for(int i=len+1; i<=m; i++){
		    flag++;
		}
		pq.push(sum);
	}
	for(int i=1; i<=flag; i++){
	    pqq.push(0);
	} 
	while(pqq.size()>1){
		long long sum=0ll;
		int len=pqq.size();
		for(int i=1; i<=m; i++){
			sum+=pqq.top();
			pqq.pop();
		}
		pqq.push(sum);
		cnt+=sum;
	}
	cout<<cnt<<"\n";
	return 0;
}

T4

题面

在这里插入图片描述

思路

dfs+分组背包,就没了(唐题)

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=514;
int n,m,cnt,a[N][N],sz[N][2],col[N];
bool f[N],vis[N];
bool dfs(int u,int c){
    vis[u]=1;
    col[u]=c;
    sz[cnt][c]++;
    for(int i=1; i<=n; i++){
        if(i!=u&&(!a[i][u]||!a[u][i])){
            if(vis[i]){
                if(col[u]==col[i]) return false;
            }
            else if(!dfs(i,1-c)) return false;
        }
    }
    return true;
}
int main(){
    scanf("%d",&n);
    for(int i=1; i<=n; i++){
        for(int j=1; j<=n; j++){
            cin>>a[i][j];
        }
    }
    for(int i=1; i<=n; i++){
        if(!vis[i]){
            cnt++;
            if(!dfs(i,0)){
                cout<<"No\n";
                return 0;
            }
        }
    }
    m=n>>1;
    f[0]=1;
    for(int i=1; i<=cnt; i++){
        for(int j=m;j;j--){
            if(j<sz[i][0]&&j<sz[i][1]) break;
            if(j>=sz[i][0]) f[j]|=f[j-sz[i][0]];
            if(j>=sz[i][1]) f[j]|=f[j-sz[i][1]];
        }
    }
    for(int j=m; j>=1; j--){
        if(f[j]){
            cout<<"Yes\n"<<n-j;
            return 0;
        }
    }
    return 0;
}

请关注作者的 B 站,谢谢~链接

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

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

相关文章

docker运行arm64架构的镜像、不同平台镜像构建

背景 Docker 允许开发者将应用及其依赖打包成一个轻量级、可移植的容器&#xff0c;实现“一次构建&#xff0c;到处运行”的目标。然而&#xff0c;不同的操作系统和硬件架构对容器镜像有不同的要求。例如&#xff0c;Linux 和 Windows 系统有不同的文件系统和系统调用&#…

银河麒麟桌面操作系统修改默认Shell为Bash

银河麒麟桌面操作系统修改默认Shell为Bash &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 在银河麒麟桌面操作系统&#xff08;ARM版&#xff09;中&#xff0c;若要将默认Shell从Dash改为Bash&#xff0c;可执行以下步骤&#xff1a; 打开…

谈及医疗和教育真实需求是什么

医疗就是健康&#xff0c;物质基础身体棒&#xff1b; 教育就是心智&#xff0c;心理稳定智慧高。 提示&#xff1a;能让人内心充盈并不断提升自我能力的教育才是高品质的。 全文终结 需求量萎缩对品质端的改变-CSDN博客 与参考资料中的内容以及“贪嗔痴”的关联性进行详细扩…

【C++】vector类的模拟实现

✨ Blog’s 主页: 白乐天_ξ( ✿&#xff1e;◡❛) &#x1f308; 个人Motto&#xff1a;他强任他强&#xff0c;清风拂山冈&#xff01; &#x1f525; 所属专栏&#xff1a;C深入学习笔记 &#x1f4ab; 欢迎来到我的学习笔记&#xff01; 本篇文章参考博客&#xff1a;【C】…

HTML5+CSS+JavaScript剪子石头布游戏

HTML5CSSJavaScript剪子石头布游戏 用HTML5CSSJavaScript剪子石头布游戏实现剪子石头布游戏&#xff0c;游戏有成绩计数&#xff0c;人、机输赢情况&#xff0c;及平局情况。 ✂代表剪刀&#xff0c;▉代表石头&#xff0c;▓ 代表布&#xff0c;给出人机双方的出拳情况 游戏…

对于无人机行业技术、人才、实验环境共享,这事你怎么看?

对于无人机行业技术、人才、实验环境共享这一话题&#xff0c;我认为这是一个具有前瞻性和积极意义的趋势&#xff0c;对于推动无人机行业的健康发展具有重要意义。以下是我对此事的详细看法&#xff1a; 一、技术共享促进创新与发展 1. 加快技术创新&#xff1a;技术共享能够…

web前端面试中拍摄的真实js面试题(真图)

web前端面试中拍摄的真实js面试题&#xff08;真图&#xff09; WechatIMG258.jpeg WechatIMG406.jpeg WechatIMG407.jpeg WechatIMG922.jpeg WechatIMG1063.jpeg © 著作权归作者所有,转载或内容合作请联系作者 喜欢的朋友记得点赞、收藏、关注哦&#xff01;&#xff01;…

散度旋度拉普拉斯算子速记

哈密顿运算符号想象成一个矢量&#xff08;对x偏导&#xff0c;对y偏导&#xff0c;对z偏导&#xff09; 1、旋度就是这个矢量做点乘 2、散度就是矢量做叉乘 3、拉普拉斯算子就是哈密顿算符点乘哈密顿算符

【自然语言处理】(1) --语言转换方法

文章目录 语言转换方法一、统计语言模型1. 词向量转换2. 统计模型问题 二、神经语言模型1. 词向量化2. 维度灾难3. 解决维度灾难4. embedding词嵌入5. Word2Vec技术5.1 连续词袋模型&#xff08;CBOW&#xff09;5.2 跳字模型&#xff08;Skip-gram&#xff09; 总结 语言转换方…

[论文笔记]SGPT: GPT Sentence Embeddings for Semantic Search

引言 解码器Transformer的规模不断壮大&#xff0c;轻松达到千亿级参数。同时由于该规模&#xff0c;基于提示或微调在各种NLP任务上达到SOTA结果。但目前为止解码器Transformer还无法应用在语义搜索或语句嵌入上。 为了简单&#xff0c;下文中以翻译的口吻记录&#xff0c;比…

平台数据分类与聚类实验报告

参考书籍&#xff1a;《数据流挖掘与在线学习算法》 李志杰 1.6.1 实验目的 本书内容以及课程实验主要涉及Java程序设计语言、数据挖掘工具Weka和数据流机器学习平台MOA&#xff0c;因此&#xff0c;需要安装、配置并熟悉实验环境。Java、Weka和MOA都是开源小软件&#xff0…

2024年10月2日历史上的今天大事件早读

1683年10月2日 清朝康熙帝统一台湾 1869年10月2日 印度民族解放运动领袖甘地诞辰 1890年10月2日 中共创始人之一李达诞生 1895年10月2日 天津中西学堂&#xff08;天津大学前身&#xff09;开学 1901年10月2日 郑士良等发起惠州起义 1909年10月2日 京张铁路正式通车 1920…

国外电商系统开发-运维系统功能清单开发

一、最终效果图 二、功能清单 功能 描述 自定义日志绘图 根据Nginx、Apache登录日志文件绘图&#xff0c;绘图数据包括&#xff1a;访问量走势&#xff0c;500错误&#xff0c;200正确百分比等 创建服务器 加入服务器 主机状态自动检查 加入主机到系统后&#xff0c;系统…

【STM32】TCP/IP通信协议(2)--LwIP内存管理

五、LWIP内存管理 1.什么是内存管理&#xff1f; &#xff08;1&#xff09;内存管理&#xff0c;是指软件运行时对计算机内存资源的分配的使用的技术&#xff0c;其主要目的是如何高效、快速的分配&#xff0c;并且在适当的时候释放和回收内存资源&#xff08;就比如C语言当…

前端规范工程-5:Git提交信息规范(commitlint + czg)

前面讲的都是在git提交之前的一些检查流程&#xff0c;然而我们git提交信息的时候&#xff0c;也应该是需要规范的。直接进入主题&#xff1a; 目录 需安装插件清单commitlint 介绍安装配置配置commit-msg钩子提交填写commit信息czg后续方式一&#xff1a;push触动build并上传…

行为设计模式 -观察者模式- JAVA

观察者模式 一.简介二. 案例2.1 抽象主题&#xff08;Subject&#xff09;2.2 具体主题&#xff08;Concrete Subject&#xff09;2.3 抽象观察者&#xff08;Observer&#xff09;2.4 具体观察者&#xff08;Concrete Observer&#xff09;2.5 测试 三. 结论3.1 优缺点3.2 使用…

从零开始讲PCIe(0)——外设与外设总线

一、外设 计算机外设&#xff08;Peripheral&#xff09;是指连接到计算机主机以扩展其功能的外部设备。这些设备可以是输入设备、输出设备、存储设备或通信设备等&#xff0c;外设&#xff08;外围设备&#xff09;通过输入、输出、存储和通信等方式帮助计算机与用户和其他设备…

用Arduino单片机读取PCF8591模数转换器的模拟量并转化为数字输出

PCF8591是一款单芯片&#xff0c;单电源和低功耗8位CMOS数据采集设备。博文[1]对该产品已有介绍&#xff0c;此处不再赘述。但该博文是使用NVIDIA Jetson nano运行python读取输入PCF8591的模拟量的&#xff0c;读取的结果显示在屏幕上&#xff0c;或输出模拟量点亮灯。NVIDIA J…

可解释聚类又“炸出圈”啦!把准3个切入点一路开挂!创新思路一学就会~

可解释聚类是机器学习领域一个非常重要的研究方向&#xff0c;它通过引入解释性强的特征和模型&#xff0c;让我们更直观地理解聚类结果&#xff0c;从而提升聚类分析的准确性和可靠性。 这种方法在一些敏感领域如医疗、金融等非常适用&#xff0c;因为它与传统方法不同&#…

工具模块及项目整体模块框架

文章目录 工具模块logger.hpphelper.hppthreadpool.hpp 核心概念核心API交换机类型持久化⽹络通信消息应答持久化数据管理中心模块虚拟机管理模块交换路由模块消费者管理模块信道管理模块连接管理模块Broker服务器模块消费者管理信道请求模块通信连接模块项⽬模块关系图 工具模…