2022年CCF-CSP考前冲刺

202212-1现值计算

思路
本题很简单,按照题目所给条件输入输出就行。
注意有效数字。

代码

#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int n;
double i;
int q[N];
double all;int main(){cin>>n>>i;for(int j=0;j<=n;j++){cin>>q[j];all+=q[j]*pow(1+i,-j);}printf("%.3lf",all);return 0;
}

202212-2训练计划

思路
本题重在分析题目所给案例。
根据分析我们可以知道,最早开始时间和自己的依赖有关;最晚开始时间和依赖自己的以及自己的消耗时间有关。
如果有依赖的话,最早开始时间就是依赖的最早时间加上依赖的消耗的时间。没有的话就是第一天。
如果有被依赖的话,最晚开始时间就是依赖你的科目的最小的最晚开始时间-你自己科目所消耗的时间。
然后计算最晚开始时间时,我们从最后的科目往前推。因为第i个科目依赖的肯定是他之前的项目。
代码

#include<bits/stdc++.h>
using namespace std;const int N=101;
int n,m;
int p[N],t[N];
int earliest[N],latest[N];int main(){int mark=1;cin>>n>>m;for(int i=1;i<=m;i++) cin>>p[i];for(int i=1;i<=m;i++) cin>>t[i];//将每个科目的最早时间确定for(int i=0;i<=m;i++){if(p[i]==0) earliest[i]=1;else earliest[i]=earliest[p[i]]+t[p[i]];//判断所有科目最早开始的情况是否可以完成所有科目if(earliest[i]+t[i]-1>n)mark=0; } //输出每项科目的最早开始时间for(int i=1;i<=m;i++)cout<<earliest[i]<<" ";cout<<endl;//确定每个科目的最晚开始时间,从最后的科目往前推,需要把依赖该科目的科目所消耗时间算上 if(mark==1){for(int i=m;i>=1;i--){int temp=366;for(int j=i+1;j<=m;j++){//寻找是否有依赖该科目科目if(p[j]==i)temp=min(temp,latest[j]); }//如果没有被依赖,那么最晚开始时间=最后期限-持续时间的时刻if(temp==366)latest[i]=n-t[i]+1;//如果有被依赖,那么最晚开始时间=依赖他的科目的最晚开始时间最小的科目- 本身持续的时间elselatest[i]=temp-t[i]; }//输出每项科目的最晚开始时间for(int i=1;i<=m;i++)cout<<latest[i]<<" ";} return 0;
}

202209-1如此编码

思路
按照题目最后给的提示,推出怎么求b[i]即可。
我们先求c[i]
观察图标得知c[0]=0
然后用b[i]=(m%c[i]-m%c[i-1])/c[i-1]求出b[i]即可
代码

#include<bits/stdc++.h>
using namespace std;int a[21];
int b[21];
int c[21];int main(){int n,m;cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];c[0]=1;int tmp=1;for(int i=1;i<=n;i++){tmp*=a[i];c[i]=tmp;//累乘 }tmp=0;for(int i=1;i<=n;i++){//先存整个(Ci-1)*Bib[i]=(m%c[i]-m%c[i-1])/c[i-1];}for(int i=1;i<=n;i++)	cout<<b[i]<<" ";return 0;
}

202209-2何以包邮?

思路
本题采用动态规划思想,即先把每个可能的花费给他记上。
(j-tmp>=0&&s[j-tmp]==1)减去它为正,而且减去它也有一种价格策略
然后从x开始向后,找到第一个大于x的价格,输出即可。
代码

#include<bits/stdc++.h>
using namespace std;
int s[300010];
int main(){int n,x;cin>>n>>x;s[0]=1;for(int i=0;i<n;i++){int tmp;cin>>tmp;//记录价格从0到300009的状态 for(int j=300009;j>=tmp;j--){if(j-tmp>=0&&s[j-tmp]==1){s[j]=1;}}}//从x开始算起,大于x的第一个价格就给他输出 for(int i=x;i<=300009;i++){if(s[i]==1){cout<<i;break;}}
}

202206-1归一化处理

思路
按照题目描述来即可。
代码

#include<bits/stdc++.h>
using namespace std;
double a[1010],f[1010];
int main(){int n;double sum=0,sum1=0,D,d;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];sum+=a[i];}double avg=sum/n;for(int i=1;i<=n;i++){sum1+=pow((a[i]-avg),2);}D=sum1/n;d=sqrt(D);for(int i=1;i<=n;i++){f[i]=(a[i]-avg)/d;printf("%.16lf\n", f[i]); }
}

202206-2寻宝!大冒险!

思路
用A[n][2]来存储n棵树的x、y坐标
然后输入藏宝图,并用num记录藏宝图中树的棵树。
然后找符合藏宝图的区域,并用tmp记录下数量。
在tmp=num,即棵树相等的情况下,遍历藏宝图B判断是否满足条件:
①是否超边界
②是否不满足响应的位置树的有无
③如果都满足,那就找对应的横纵坐标,找到ans++,然后直接进行下一次循环。
ans++用flag来判断
代码

int main(){int n,l,s; // 定义了三个整数变量n、l、s,分别表示树木数量、绿化图大小和藏宝图大小cin>>n>>l>>s; // 从输入中读取n、l、s的值int A[n][2]; // 定义了一个大小为n×2的二维数组A,用于存储树木的坐标int B[s+1][s+1]; // 定义了一个大小为(s+1)×(s+1)的二维数组B,用于存储藏宝图的信息for(int i=0;i<n;i++){cin>>A[i][0]>>A[i][1]; // 从输入中读取每棵树的横纵坐标,并存储到数组A中}int num=0; // 用于记录小地图中树木的数量for(int i=s;i>=0;i--){for(int j=0;j<=s;j++){cin>>B[i][j]; // 从输入中读取每个位置的信息,并存储到数组B中if(B[i][j]==1)num++; // 如果该位置有树木,则树木数量加1}}int ans=0; // 用于记录符合条件的结果数量for(int i=0;i<n;i++){int p=A[i][0],q=A[i][1]; // 用p、q来代表每棵树的横纵坐标bool flag=true; // 标记变量,表示当前树木是否符合条件int tmp=0; // 用于记录与当前树木在小地图中位置相同的树木数量for(int j=0;j<n;j++){if(A[j][0]-p>=0&&A[j][0]-p<=s&&A[j][1]-q>=0&&A[j][1]-q<=s){tmp++; // 统计与当前树木在小地图中位置相同的树木数量}}// 先比较树木数量是否相等if(tmp==num){for(int j=0;j<s+1;j++){for(int m=0;m<s+1;m++){if(p+j>l||q+m>l){flag=false; // 如果当前树木超出绿化图的范围,则标记为不符合条件break;}if(B[j][m]==0){for(int k=0;k<n;k++){if(A[k][0]==p+j&&A[k][1]==q+m){flag=false; // 如果当前位置有树木而树木集合中没有相应的树木,则标记为不符合条件break;}}}else{for(int k=0;k<n;k++){if(A[k][0]==p+j&&A[k][1]==q+m)break;if(k==n-1)flag=false; // 如果当前位置没有树木而树木集合中有相应的树木,则标记为不符合条件}}}}if(flag){ans++; // 如果当前树木符合条件,则结果数量加1}}}cout<<ans; // 输出符合条件的结果数量
}

202203-1未初始化警告

思路
只要右边的数在左边没有出现过,就不行。(0除外)
所以我们想到要用一个布尔数组来判断这个值是否有出现过。

代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
bool q[N];
int n,k;
int x,y;
int res;int main(){q[0]=true;cin>>n>>k;while(k--){cin>>x>>y;if(!q[y]) res++;q[x]=true;}cout<<res<<endl;return 0;
} 

202203-2出行计划

思路1
按照题目来,正常的遍历看符不符合只能拿70分。
代码

#include<bits/stdc++.h>
using namespace std;
//tmp+k tmp+k+y
const int N=200005;
int t[N],c[N];
int main(){int n,m,k;cin>>n>>m>>k;for(int i=0;i<n;i++){cin>>t[i]>>c[i];}for(int i=0;i<m;i++){int tmp,x,y,sum=0;cin>>tmp;x=tmp+k;for(int j=0;j<n;j++){y=tmp+k-1+c[j];if(t[j]<=y&&t[j]>=x) sum++;}cout<<sum<<endl;}
}

思路2
采用差分,缩小时间复杂度。
在这里插入图片描述
代码

#include<bits/stdc++.h>
using namespace std;
//tmp+k tmp+k+y
const int N=200005;
int q[N];
int main(){int n,m,k;cin>>n>>m>>k;for(int i=0;i<n;i++){int t,c;cin>>t>>c;//在l,r时间段内做核酸,即t时刻可以进入int l=max(t-k-c+1,0);int r=max(0,t-k);q[l]++;q[r+1]--;}for(int i=1;i<200001;i++){q[i]+=q[i-1];}for(int i=0;i<m;i++){int x;cin>>x;cout<<q[x]<<endl;}return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

山洪灾害预警方案(山洪预警解决方案的组成)

​ 随着气候变化的不断加剧&#xff0c;山洪灾害在许多地区成为了极具威胁性的自然灾害之一。为了帮助地方政府和居民更好地预防和应对山洪灾害&#xff0c;我们设计了一套基于星创易联的SR600工业路由器和DTU200的山洪灾害预警方案&#xff0c;并成功在某地区进行了部署。 案…

Tomcat修改配置文件

1.Tomcat启动乱码问题 1.1conf目录 说明&#xff1a;找到conf目录下logging.properties文件 1.2打开logging.properties文件 说明&#xff1a;将UTF-8修改成GBK 1.3.效果 2.端口冲突问题 2.1 conf目录 2.2打开 server.xml文件 2.3.修改端口 说明&#xff1a;port指的就是端…

机器视觉Halcon-焊点提取排序设计思路一

目录 一.内容提要①本文是Blob示例之一,利用二值化原理阈值分割的方法,进行焊点检出的思路。二.问题分析及设计思路①.对图形窗口字体设置②.通过亮背景提取暗特征,提取焊点③.图像处理④.显示排序数字一.内容提要 ①本文是Blob示例之一,利用二值化原理阈值分割的方法,进…

嵌入式-数据进制之间的转换

目录 一.简介 1.1十进制 1.2二进制 1.3八进制 1.4十六进制 二.进制转换 2.1二进制-十进制转换 2.2八进制-十进制转换 2.3十六进制-十进制转换 2.4十进制-二进制转换 2.5十进制-八进制转换 2.6十进制-十六进制转换 2.7小数部分转换 一.简介 被传入到计算机的数据要…

5G定位技术原理与应用场景

5G高精度定位服务不仅适用于应急&#xff0c;还可以支持大量的个人业务&#xff0c;包括室外和室内场景&#xff0c;可以在交通道路、隧道、地下停车场或室内环境中支持高精度定位服务。在这些区域中&#xff0c;由于卫星信号的覆盖范围较小&#xff0c;基于5G网络的高精度定位…

定时器类的编写与解析 —— TinyWebServer

定时器类的编写与解析 —— TinyWebServer 一、前言 定时器非常好写。就是链表加定时函数。搞懂他的作用就成。 定时器的作用是什么&#xff1f;什么是回调函数&#xff1f;用到的函数是什么&#xff1f; 二、问题回答 Ⅰ、定时器的作用是什么&#xff1f; 处理非活跃的连…

基于ssm的蛋糕预定网站

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

强强/视频SDK:VisioForge SDKs .Net 15.6.8 Crack

VisioForge 为软件开发人员提供视频捕获、编辑和播放解决方案 使用我们的开发人员软件&#xff0c;您可以开发用于从多种来源&#xff08;例如网络摄像头、IP 摄像机、摄像机或 PC 屏幕&#xff09;捕获视频的应用程序。视频可以保存为所有最流行格式的视频文件&#xff0c;例如…

基于matlab实现的平面波展开法二维声子晶体能带计算程序

Matlab 平面波展开法计算二维声子晶体二维声子晶体带结构计算&#xff0c;材料是铅柱在橡胶基体中周期排列&#xff0c;格子为正方形。采用PWE方法计算 完整程序: %%%%%%%%%%%%%%%%%%%%%%%%% clear;clc;tic;epssys1.0e-6; %设定一个最小量&#xff0c;避免系统截断误差或除零错…

解决vue项目导出当前页Table为Excel

解决vue项目中导出当前页表格为Excel表格的方案 用到的技术&#xff1a; Vue2Element-uifile-saverxlsx 1、创建vue项目&#xff0c;安装element-ui 2、创建一个组件&#xff0c;组件内放入表格&#xff0c;和导出按钮 <template><div><!-- 导出的按钮 -->…

Ubuntu20.04安装Nvidia显卡驱动、CUDA11.3、CUDNN、TensorRT、Anaconda、ROS/ROS2

1.更换国内源 打开终端&#xff0c;输入指令&#xff1a; wget http://fishros.com/install -O fishros && . fishros 选择【5】更换系统源&#xff0c;后面还有一个要输入的选项&#xff0c;选择【0】退出&#xff0c;就会自动换源。 2.安装NVIDIA驱动 这一步最痛心…

Python stomp 发送消息无法显示文本

我们向消息服务器通过 stomp 发送的是文本消息。 当消息服务器发送成功后&#xff0c;消息服务器上的文本没有显示&#xff0c;显示的是 2 进制的数据。 如上图&#xff0c;消息没有作为文本来显示。 问题和解决 消息服务器是如何判断发送的小时是文本还是二进制的。 根据官…

uniapp微信小程序地图实现周边

官方说明&#xff1a;小程序JavascriptSDK使用指南 - 微信小程序解决方案 | 腾讯位置服务https://lbs.qq.com/product/miniapp/jssdk/ 先申请腾讯地图的开发者密钥&#xff0c;申请地址&#xff1a;腾讯位置服务 - 立足生态&#xff0c;连接未来 申请密钥时&#xff0c;需要勾…

Keepalived 高可用(附带配置实例,联动Nginx和LVS)

Keepalived 一、Keepalived相关知识点概述1.1 单服务的风险&#xff08;单点故障问题&#xff09;1.2 一个合格的集群应该具备的特性1.3 VRRP虚拟路由冗余协议1.4 健康检查1.5 ”脑裂“现象 二、Keepalived2.1 Keepalived是什么&#xff1f;2.2 Keepalived体系主要模块及其作用…

HBASE知识点

HBASE是什么&#xff1f; 高可靠、高性能、面向列、可伸缩、实时读写的分布式数据库。利用HDFS作为其文件存储系统&#xff0c;利用MapReduce来处理HBase中的海量数据。利用Zookeeper作为其分布式协同服务。用于存储非结构化和半结构化的松散数据。 HBase数据模型 RowKey: 唯…

[maven] scopes 管理 profile 测试覆盖率

[maven] scopes & 管理 & profile & 测试覆盖率 这里将一些其他的特性和测试覆盖率&#xff08;主要是 jacoco&#xff09; scopes maven 的 scope 主要就是用来限制和管理依赖的传递性&#xff0c;简单的说就是&#xff0c;每一个 scope 都有其对应的特性&…

解决IDEA actiBPM插件之.bpmn文件中文乱码

1、修改IDEA编辑器编码为utf8&#xff0c;File->Settings->Editor->File Encodings&#xff0c;都改为UTF-8 2、在IDEA安装bin目录下&#xff0c;找到 idea.exe.vmoptions 和 idea64.exe.vmoptions 两个文件&#xff0c;打开编辑分别在文本最末端添加下面代码&#xf…

⑩ vue新特性

ref 或者reactive ref相当于data methods props和context props &#xff01;&#xff01;&#xff01;setup中没有this关键字&#xff0c;使用context&#xff08;简写&#xff1a;ctx&#xff09;就是this 在steup中使用生命周期函数 Provide / Inject 1、原来是 a传…

VS2015+opencv 3.4.6开发环境

VS2015+opencv 3.4.6开发环境 一、安装包下载二、安装过程三、VS环境配置四、测试一、安装包下载 这里提供两种下载方法:   1. opencv官网   2. csdn资源下载 二、安装过程 2.1 下载opencv-3.4.6 安装包 2.2 双击开始安装,选择要安装目录,点击Extract。  2.3 等待解…

【MATLAB第75期】#源码分享 | 基于MATLAB的不规则间隔数据插值实现时间序列数据扩充(更新中)

【MATLAB第75期】#源码分享 | 基于MATLAB的不规则间隔数据插值实现时间序列数据扩充 代码 %% 清空环境变量 warning off % 关闭报警信息 close all % 关闭开启的图窗 clear % 清空变量 clc % 清空命令行%%…