csp-202209

news2024/12/23 3:43:08

202209

  • 题目一:如此编码【100分】
  • 题目二:何以包邮?【100分】
  • 题目三:防疫大数据【100分】

题目一:如此编码【100分】

比较简单的题,根据题意计算一遍就行
一定要关注csp题目中的提示,这个是很有用的
AC代码:

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
const int N=25;
typedef long long LL;
int n;
LL m;
int a[N];
LL c[N];
int b[N];
int main() {

	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	c[0]=1;
	c[1]=a[1];
	for(int i=2;i<=n;i++)
	{
		c[i]=c[i-1]*a[i];
	}
	for(int i=1;i<=n;i++)
	{
		LL t=m%c[i];
		LL sum=0;
		for(int j=0;j<i-1;j++)
		{
			sum+=c[j]*b[j+1];
		}
		t-=sum;
		b[i]=t/c[i-1];
		cout<<b[i]<<" ";
	}
	return 0;
}

题目二:何以包邮?【100分】

比赛的时候,就感觉跟0/1背包很像,就一直朝着那个方向去做,但是我dp太差了,当时的环境下怎么都想不出来,最后想着算了,枚举吧,得70分也挺好的,就用回溯简单枚举了一下
回溯枚举,,得到的是一个二叉树,时间复杂度为O(2^n)
当n<=15时,为O(2^15)=32768 ,1s内能过
当n<=30是,为O(2^30)=1073741824>1e8 ,肯定超时
70分回溯枚举代码:

#include<bits/stdc++.h>
using namespace std;
const int N=35;
int INF=0x3f3f3f3f;
int a[N],n,x,ans=INF,now;
void back(int i)
{
	if(i>n) 
	{
		if(now<x) return ;
		if(now<ans) ans=now;
		return ;
	}
	//选
	now+=a[i]; back(i+1);
	//不选 
	now-=a[i];back(i+1);
}
int main() {
	cin>>n>>x;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	back(1);
	cout<<ans;
	return 0;
}

但其实这个回溯是可以优化来混点分的,加点剪枝什么的
然后再看dp背包方法,寻找大于等于包邮条件x的最小花费,其实发过来看,就是用总买的书的价格减去满足包邮条件x得到v,得到不超过v的最大花费,最后再用总价格减去这个不超过v的最大花费,就得到了结果,后者其实就是规范的0/1背包问题
AC代码:

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
const int N=35;
const int M=1000005;
int a[N];
int n,x,sum=0,dp[N][M];
int main() {

	cin>>n>>x;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];sum+=a[i];
	}
	int v=sum-x;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=v;j++)
		{
			if(j>=a[i]) dp[i][j]=max(dp[i-1][j],dp[i-1][j-a[i]]+a[i]);
			else dp[i][j]=dp[i-1][j];
		}
	}
	cout<<sum-dp[n][v];
	return 0;
}

再利用一下滚动数组进行空间优化:

#include<iostream>
using namespace std;
const int N=35;
const int M=1000005;
int a[N];
int n,x,sum=0,dp[M];
int main() {

	cin>>n>>x;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];sum+=a[i];
	}
	int v=sum-x;
	for(int i=1;i<=n;i++)
	{
		for(int j=v;j>=a[i];j--)
		{
			dp[j]=max(dp[j],dp[j-a[i]]+a[i]);
		}
	}
	cout<<sum-dp[v];
	return 0;
}

在这里插入图片描述

题目三:防疫大数据【100分】

  1. 按照以前的csp认证惯例,第三题是大模拟题,静下心来,慢慢做,变量什么的直接用题目里的变量表示就行了,不用再自己编变量;
  2. 大致思路就是,先把所有的用户漫游记录和风险地区记录存起来,最后在每天遍历近七日的游客记录,再根据题目的三个要去进行筛选遍历即可;
  3. 注意一个问题:题目中的日期可以是负数,从最后30分能明显看出来,dij的范围为[-1e5,i],因此用普通的一维或者二维数组就会出错,此时用map是最好的,map支持[]获取数值,并且[]内允许索引为负数(几乎任何类型)

AC代码:
在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
typedef struct Node
{
	int d;
	int u;
	int r;
}UserNode,*User; 
map<int,vector<User>>manyou;  //第i天的漫游记录 
int n,ri,mi;
set<int>ans;   //有序的输出用户列表 
map<int,map<int,int>>fengxian;  //每个风险地区对应的风险日期 
int main() { 	

	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>ri>>mi;
		for(int j=0;j<ri;j++) 
		{
			int t;cin>>t;
			for(int k=i;k<i+7;k++) fengxian[t][k]=1;
		}
		for(int j=0;j<mi;j++)
		{
			User user=new UserNode;
			cin>>user->d>>user->u>>user->r;
			manyou[i].push_back(user);
		}
		for(int k=i;k>i-7;k--)  //遍历近7日的漫游数据 
		{
			int len=manyou[k].size();
			for(int j=0;j<len;j++)
			{
				User user=manyou[k][j];
				if((user->d>i-7&&user->d<=i)&&fengxian[user->r][user->d]) //到访的那一天处于风险状态 
				{
					//该地区从到访日到目前持续处于风险状态
					bool f=true;
					for(int h=user->d;h<=i;h++)
					{
						if(!fengxian[user->r][h])  
						f=false;
					} 
					if(f) ans.insert(user->u);
				} 
			}
		}
		cout<<i<<" ";
		for(set<int>::iterator it=ans.begin();it!=ans.end();it++)
		{
			cout<<*it<<" ";
		}
		cout<<endl;
		ans.clear();
	}
	return 0;
}

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

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

相关文章

达梦数据IPO过会:拟募资24亿 光谷“扫地僧”冯裕才将敲钟

雷递网 雷建平 12月23日武汉达梦数据库股份有限公司&#xff08;简称&#xff1a;“达梦数据”&#xff09;日前IPO过会&#xff0c;准备在科创板上市。达梦数据计划募资23.51亿元。其中&#xff0c;3.52亿元用于集群数据库管理系统升级项目&#xff0c;3.43亿元用于高性能分布…

[翻译+笔记]变分自编码器:从AutoEncoder到Beta-VAE

与GAN的那篇笔记相同, 做一下笔记. 并不是全文翻译, 只翻译一部分. 原文地址: from AutoEncoder to Beta-VAE 0. 前言 自编码器是用来重构高维数据的&#xff0c;它利用一个有bottleneck层的神经网络。bottleneck层获取压缩的潜在编码&#xff0c;这样将嵌入向量以低维表示可…

Activity生命周期

Activity生命周期 1.Activity状态 1.基本状态 运行&#xff0c;active。位于最前台&#xff0c;可以和用户交互的激活状态。暂停&#xff0c;pause&#xff0c;被透明或者Dialog覆盖&#xff0c;此时可见失去焦点但是不允许交互。停止&#xff0c;stop&#xff0c;被Active覆盖…

spring提前加载,懒加载,bean的作用域和注入注解讲解

前言 sping知识随笔笔记&#xff1b;spring提前加载&#xff0c;懒加载&#xff0c;bean的作用域和注入注解讲解 这里写目录标题前言1 depends-on2 bean的作用域3 lazy-init 懒加载4 Autowrite和Resource的区别和使用1 depends-on depends-on 是提前加载&#xff0c;比如在实…

关于node.js版本切换nvm的命令和安装

首先是安装,第一步,搜索下方链接地址下载Releases coreybutler/nvm-windows GitHub 安装应用下载好后直接安装就可以了,或者下载一个压缩包,在下载安装之前建议先将之前下载的node版本给删除,否则会报错。 上面的操作都结束后,那么,下面就需要通过管理员的权限去查…

外汇天眼:利空美元!2023年美国经济将如履薄冰?各大银行预测整体不乐观!

高盛表示&#xff0c;美国经济可能避免衰退。摩根士丹利预计&#xff0c;美国经济在2023年只是避开了衰退&#xff0c;但着陆并不那么软。瑞士信贷认为&#xff0c;美国明年可以避免经济下滑。摩根大通警告称&#xff0c;明年很有可能出现经济衰退。美国银行预测2023年第一季度…

大学宿舍四位舍友皆为软测,3年后的现状~

笔者最近收到测试员好友小H的分享&#xff0c;临年关&#xff0c;他参加了一场大学舍友毕业3年后的聚会&#xff0c;感慨良多。 从2019年至今&#xff0c;这已经是毕业的第3个年头了。小H的寝室大多来自五湖四海&#xff0c;毕业后&#xff0c;能够相聚的时间也少之又少&#…

Android -- 每日一问:如何设计一个照片上传 app ?

经典回答 把自己放在一个面试官的角度&#xff0c;自己先实现一次这个 App &#xff0c;然后自己总结一下你在这次实现中需要哪些能力、需要注意哪些事项。最后&#xff0c;再回过头来看&#xff0c;如果你是面试官&#xff0c;你希望面试者怎么回答才算是符合你的标准的&…

el-table 列的动态显示与隐藏

目录 业务场景 官方链接 实现效果图 使用框架 代码展示 template代码 ①、为什么要给el-table绑定【:key"reload"】&#xff1f; ②、为什么给每个绑定【key"Math.random()"】呢&#xff1f; ③、为什么列改变之后要添加【reload Math.random();…

【HarmonyOS】调测助手安装失败10内部错误

关于鸿蒙开发通过应用调测助手向watch gt 3 手表安装hap时报错。 问题背景&#xff1a; 鸿蒙开发&#xff0c;使用新建工程的helloworld 没有其他修改&#xff0c;生成hap包。然后通过应用调测助手向watch gt 3 手表安装hap时提示 安装失败:10.内部错误。 Sdk&#xff1a; a…

Shiro之授权

授权 1、角色认证 在controller层创建接口 使用shiro中的注解RequiresRoles指定能访问的角色名称 /*** 登录认证角色*/ RequiresRoles("admin") GetMapping("/userLoginRoles") ResponseBody public String userLoginRoles(){System.out.println("…

54 线程最外层异常的处理

前言 之前在 kafka 消费者客户端的一个 case 中曾经看到了这样的了一个情况 我没有配置 "group.id", 然后 kafka 客户端抛出了 InvalidGroupIdException 然后 输出的日志信息 除了类型, 其他 什么都没有, 主要是 么有堆栈信息 这里 来大致看一下 这个问题, 以及…

WooCommerce Product Feed指南 – Google Shopping和Facebook[2022]

在过去十年中&#xff0c;在线购物一直在增加。全球超过 85% 的人更喜欢网上购物而不是光顾实体店。 许多 WooCommerce 商店都做得非常好&#xff0c;销售额是大约几年前的三倍。 您是否知道您也可以立即轻松地将商店销售额翻三倍&#xff1f; 秘诀是什么&#xff1f; 好吧&…

【网络安全】浅识 SQL 注入

前言 SQL 注入&#xff08;SQL Injection&#xff09;是发生在 Web 程序中数据库层的安全漏洞&#xff0c;是网站存在最多也是最简单的漏洞。主要原因是程序对用户输入数据的合法性没有判断和处理&#xff0c;导致攻击者可以在 Web 应用程序中事先定义好的 SQL 语句中添加额外…

AcrGIS Pro一键出图

简介 日常工作中我们经常遇到批量出图的场景,比如对某个县下的各个乡镇分别按照其行政区范围出图、对某个流域/河流按照一定方向纵横的网格排布顺序出图等等要求,ArcGIS Pro对于上述需求提供了一个良好的解决方案——地图系列! 那么应该如何创建一个地图系列呢?ArcGIS Pro…

我不是浮躁,只是迷茫,北大毕业转行学编程

北大毕业的我选择去学习编程了&#xff01;&#xff01;&#xff01; 没有希望的地方&#xff0c;就没有奋斗。于千万人之中遇见它&#xff0c;于千万年之中&#xff0c;时间的无涯的荒野里&#xff0c;没有早一步&#xff0c;也没有晚一步&#xff0c;刚巧赶上了&#xff0c;那…

9_SpringMVC_作用域传参

PageContext对象 作用域范围:当前jsp页面内有效 request对象 作用域范围:一次请求内。 作用: 解决了一次请求内的资源的数据共享问题 session对象 作用域范围:一次会话内有效。 说明:浏览器不关闭,并且后台的session不失效&#xff0c;在任意请求中都可以获取到同一个se…

RV1126笔记十:RTMP单路推流

若该文为原创文章,转载请注明原文出处 一、介绍 使用ffmpeg把RV1126采集到的视频和音频以RTMP方式推流到服务器,并播放。 视频为h264格式,音频为AAC格式,利用的是RV1126硬件编码,缩短时间,在局域网内测试,实现200毫秒内实时播放预览。 二、流程图 说明: RTMP推流…

Spring MVC【返回数据与请求转发和重定向】

Spring MVC【返回数据与请求转发和重定向】&#x1f34e;一. 返回数据&#x1f352;1.1 返回静态页面&#x1f352;1.2 返回一个非静态页面&#x1f352;1.3 返回text/html类型页面&#x1f352;1.4 返回JSON对象&#x1f352;1.5 实现计算器功能&#x1f352;1.6 使用ajax方式…