ccf_csp第一题汇总

ccf_csp第一题汇总

  • printf()输出格式大全(附 - 示例代码)
  • 现值计算
  • AcWing 4699. 如此编码
  • AcWing 4509. 归一化处理(小数位数+根号函数)
  • AcWing 4454. 未初始化警告
  • AcWing 4280. 序列查询
  • AcWing 4006. 数组推导(小陷阱)
  • AcWing 3292. 称检测点查询
  • AcWing 3287. 线性分类器(直线有关)
  • AcWing 3282. 报数
  • AcWing 3277. 小明种苹果
  • AcWing 3272. 小中大(小数位数)
  • AcWing 3257. 跳一跳
  • 打酱油(贪心算法)
      • AcWing 1216. 饮料换购(数学推理)
        • AcWing1219.移动距离
  • AcWing 3242. 分蛋糕---双指针---看
  • AcWing 3237. 中间数---看
  • AcWing 3217. 数列分段
  • AcWing 3197.相反数

abs(num)返回整型的绝对值
fabs(num)返回双精度的绝对值
exp(x)返回指数函数ex的值
pow(x, y)返回x^y的值
sqrt(x)返回√x的值

printf()输出格式大全(附 - 示例代码)

printf()输出格式大全(附 - 示例代码)

现值计算

#include<bits/stdc++.h>
using namespace std;double ans;int main()
{int n;double i;cin>>n>>i;for(int j=0;j<=n;j++){int x;cin>>x;ans+=x*pow((1+i),-j);}cout<<ans<<endl;return 0;} 

AcWing 4699. 如此编码

AcWing 4699. 如此编码

#include<bits/stdc++.h>
using namespace std;
const int N = 22;int main()
{int n,m;int a[N];cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++){cout<<m%a[i]<<" ";m/=a[i];}return 0;
}

AcWing 4509. 归一化处理(小数位数+根号函数)

AcWing 4509. 归一化处理

#include<bits/stdc++.h>
using namespace std;
const int N = 1010;int n;
double w[N];int main()
{cin>>n;double sum=0;for (int i=0;i<n;i++){cin>>w[i];sum+=w[i];}double avg=sum/n;//平均值 double d=0;for (int i=0;i<n;i++)d+=pow((w[i]-avg),2)/n;d=sqrt(d);//标准差 for (int i=0;i<n;i++)printf("%.16lf\n", (w[i]-avg)/d);//归一化后 return 0;
}

AcWing 4454. 未初始化警告

AcWing 4454. 未初始化警告

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n;
int k;
bool st[N];//a[k]记录第k个下标是否使用过
int x,y;
int ans=0;//记录个数,用于输出
int main()
{cin>>n>>k;for(int i=0;i<=n;i++) st[i]=false;st[0]=true;//常量---默认赋过值 for(int i=0;i<k;i++){cin>>x>>y;if(!st[y])	ans++;st[x]=true;//将左值标记为赋值过}cout<<ans<<endl;return 0;} 

AcWing 4280. 序列查询

AcWing 4280. 序列查询

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const int N=1e7+10;
int n,m;
int a[N];
int ans;
int main()
{cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];a[n+1]=m;//初始 a[0]=0,a[n+1]=m;nb  for(int i=0;i<=n;i++)ans+=(a[i+1]-a[i])*i;//计算f[a]cout<<ans<<endl;return 0;} 

AcWing 4006. 数组推导(小陷阱)

AcWing 4006. 数组推导

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const int N=1e2+10;
int b[N];
int main()
{int n;cin>>n;for(int i=0;i<n;i++) cin>>b[i];int maxs=0,mins=0;//存储sum的最大值和最小值 for(int i=0;i<n;i++){maxs+=b[i];//最大值时 a[i]==b[i] if(!i||b[i]>b[i-1])//当b[i]是拐点时 必须选上 mins+=b[i];}cout<<maxs<<endl<<mins<<endl;return 0;	} 

AcWing 3292. 称检测点查询

AcWing 3292. 称检测点查询

题目需要首先按照距离排序,再按照编号排序
采用pair类型,将first设置为距离,second设置为编号
调用sort函数进行排序(sort对pair排序先排first,再排second)
存储距离时,不按照样例存储开根号的值,直接存储平方
#include<bits/stdc++.h>
using namespace std;const int N=200+10;
typedef pair<int,int> PII;
PII node[N];
int X,Y; 
int n;int main()
{cin>>n>>X>>Y;for(int i=0;i<n;i++){int x,y;cin>>x>>y;node[i].first=(X-x)*(X-x)+(Y-y)*(Y-y);//比较距离--不需要开根号node[i].second=i;}sort(node,node+n);for(int i=0;i<3;i++){cout<<node[i].second+1<<endl;}return 0;} 

AcWing 3287. 线性分类器(直线有关)

AcWing 3287. 线性分类器

用结构体存储点的信息,sumA记录类型A的点的个数,sumB记录类型B的点的个数
通过比较在直线一侧各种类型点的数量和sumA、sumB,当一侧全为A类型或者B类型时,满足分类条件
由于一个点只能位于直线的一侧,因此我们仅选取直线的上侧进行计数,即满足c+a*node[j].x+b*node[j].y>0
#include<bits/stdc++.h>
using namespace std;const int N=1e3+10;
typedef long long LL;//所有的坐标和参数的绝对值最大为106,参数与坐标相乘后为1012,因此采用long long 数据类型
LL n,m;
int sum_A=0;
int sum_B=0;
struct {LL x;LL y;char type;
}node[N]; int main()
{cin>>n>>m;for(LL i=0;i<n;i++){LL x,y;char type;cin>>x>>y>>type;node[i].x=x;node[i].y=y;node[i].type=type;if(type=='A')sum_A++; elsesum_B++;} for(LL i=0;i<m;i++){LL a,b,c;cin>>a>>b>>c;LL sum_A_UP=0;//A类型在直线上方的个数 LL sum_B_UP=0;//B类型在直线上方的个数 for(LL j=0;j<n;j++){if(a+b*node[j].x+c*node[j].y>0&&node[j].type=='A')//统计A类型在直线上方的个数  sum_A_UP++;if(a+b*node[j].x+c*node[j].y>0&&node[j].type=='B')//统计B类型在直线上方的个数sum_B_UP++;}//A类型全部在直线上方且B类型全在直线下方  ---  B类型全部在直线上方且A类型全在直线下方if((sum_A==sum_A_UP&&sum_B_UP==0) || (sum_B==sum_B_UP&&sum_A_UP==0))cout<<"Yes"<<endl;elsecout<<"No"<<endl;}return 0;
}

AcWing 3282. 报数

AcWing 3282. 报数

#include<bits/stdc++.h>
using namespace std;int res[4];//存储丁(0)--甲(1)--乙(2)--丙(3)----跳过的个数 
int main()
{int n;//记录一共要数几个数 cin>>n; int i=1;//轮流报数---且---遍历-甲-乙-丙-丁 while(n){if(i%7==0 || to_string(i).find('7')!=-1)//被跳过时 res[i%4]++;else//没被跳过时---数数了 n--;i++;//报数	}for(int i=1;i<4;i++) cout<<res[i]<<endl;cout<<res[0]<<endl;return 0;} 

AcWing 3277. 小明种苹果

AcWing 3277. 小明种苹果

#include<bits/stdc++.h>
using namespace std;
int n,m;
int main()
{cin>>n>>m;int T=0,K=0,P=-1;for(int i=1;i<=n;i++)//---n棵苹果树 {int total=0;//某棵苹果树上的苹果总数int sum=0;//某棵苹果树上的梳果总数cin>>total;for(int j=0;j<m;j++)//---m次操作 {int x;cin>>x;sum+=abs(x);}T+=total-sum;if(sum>P)//如果此次梳果最多---更新 K=i,P=sum; }cout<<T<<" "<<K<<" "<<P<<endl;return 0;} 

AcWing 3272. 小中大(小数位数)

AcWing 3272. 小中大

#include<bits/stdc++.h> 
using namespace std;
const int N = 100010;
int n;
int q[N];int main()
{scanf("%d", &n);for (int i = 0; i < n; i ++ ) scanf("%d", &q[i]);int res[3];//存储---小 中 大 res[0] = q[0] * 2, res[1] = q[n - 1] * 2;if (n % 2) res[2] = q[n / 2] * 2;else res[2] = q[n / 2 - 1] + q[n / 2];sort(res, res + 3);//从小到大排序 for (int i = 2; i >= 0; i -- )if (res[i] % 2) printf("%.1lf ", res[i] / 2.0);//中位数---小数 else printf("%d ", res[i] / 2);return 0;
}

AcWing 3257. 跳一跳

AcWing 3257. 跳一跳

#include<bits/stdc++.h>
using namespace std;int main()
{int x;int ans=0;	//最终答案 int score=0;	//当前得分 while(cin>>x,x)	//只要输入≠0,就可以一直输入{if(x==1)	//当没有跳到中心时 {ans+=1;score=0;	//等差数列清空 }	else		//当跳到中心时,得分是一个等差数列{score+=2; ans+=score; }  } cout<<ans<<endl;return 0; 
}

打酱油(贪心算法)

思路:(贪心算法)
1.尽可能多的选择买5瓶送2两瓶的方式,然后再选择买3瓶送1瓶,最后才选择10块钱1瓶的方式
#include<bits/stdc++.h>
using namespace std;
const int N=400;int n;
int main()
{int fifty;int thirty;int ten;cin>>n;fifty=n/50;thirty=(n-fifty*50)/30;ten=(n-fifty*50-30*thirty)/10;cout<<7*fifty+4*thirty+ten<<endl;return 0;
}

AcWing 1216. 饮料换购(数学推理)

 共喝饮料数res,当前瓶盖数 n赋值给n,且res=n一直循环直到瓶盖n<3,每次res += n / 3,n变成了新的饮料/3加上剩下的n%3
#include<bits/stdc++.h>
using namespace std;int main()
{int n; cin>>n;//初始买入的饮料数==初始的饮料瓶盖数 int res=n;//一共能喝的饮料数 while(n>=3){res+=n/3;//可以换购到的第一批饮料数 n=n%3+n/3; //n%3 上次没换完的瓶盖数  n/3新得到的瓶盖数 }cout<<res<<endl;return 0;
}
AcWing1219.移动距离

AcWing1219.移动距离

#include<iostream>
using namespace std;
int main()
{int w,m,n;cin>>w>>m>>n;m--,n--;//序号从0开始,方便计算行号和列号int x1=m/w,x2=n/w;//行号 int y1=m%w,y2=n%w;//求列号if(x1%2==0)//当位于偶数行时 y1=w-y1-1;//求列号if(x2%2==0)//当位于偶数行时 y2=w-y2-1;//求列号//曼哈顿距离 cout<<abs(x1-x2)+abs(y1-y2)<<endl;return 0; } 

AcWing 3242. 分蛋糕—双指针—看

AcWing 3242. 分蛋糕

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
int a[N];
int ans;
int main()
{int n,k;cin>>n>>k;for(int i=1;i<=n;i++)	cin>>a[i];for(int i=1;i<=n;i++)//双指针算法 {int j=i,sum=0;while(j<=n && sum<k)sum+=a[j++];ans++;		//最后一个即是不够,ans也会++ i=j-1;		//当前第j-1个蛋糕已经被使用了,循环外还有个i++; }cout<<ans<<endl; return 0;
}

AcWing 3237. 中间数—看

AcWing 3237. 中间数

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 1010;int n;
int q[N];int main()
{cin >> n;for (int i = 0; i < n; i ++ ) cin >> q[i];for (int i = 0; i < n; i ++ ){int d = 0, u = 0;for (int j = 0; j < n; j ++ )if (q[j] < q[i]) d ++ ;else if (q[j] > q[i]) u ++ ;if (u == d){cout << q[i] << endl;return 0;}}puts("-1");return 0;
}

AcWing 3217. 数列分段

AcWing 3217. 数列分段

#include<bits/stdc++.h>
using namespace std;const int N=1e3+10;int n;
int a[N];int main()
{cin>>n;int ans=1;for(int i=0;i<n;i++){cin>>a[i];}for(int i=1;i<n;i++){if(a[i-1]!=a[i])ans++;}cout<<ans<<endl;return 0;} 
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3+10;
int n;
int a[1001];
int main()
{cin>>n;for(int i=0;i<n;i++)cin>>a[i];cout<<unique(a,a+n)-a;return 0;} 

AcWing 3197.相反数

AcWing 3197.相反数

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;int n;
int cnt[N];
int main()
{cin>>n;while(n--){int x;cin>>x;cnt[abs(x)]++;}int ans=0;for(int i=0;i<N;i++){if(cnt[i]==2)ans++;}cout<<ans<<endl;} 

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

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

相关文章

Linux知识点 -- 网络基础 -- 传输层

Linux知识点 – 网络基础 – 传输层 文章目录 Linux知识点 -- 网络基础 -- 传输层一、传输层协议1.端口号2.网络相关bash命令 二、UDP协议1.UDP报文的解包与交付2.理解UDP报文3.UDP协议的特点4.UDP应用层IO类接口5.UDP的缓冲区6.UDP使用注意事项7.基于UDP的应用层协议 三、TCP协…

lv5 嵌入式开发-11 消息队列

掌握&#xff1a;消息队列机制、打开/创建消息队列、发送消息、接收消息 1 消息队列 消息队列是System V IPC对象的一种 消息队列由消息队列ID来唯一标识 消息队列就是一个消息的列表。用户可以在消息队列中添加消息、读取消息等 消息队列可以按照类型来发送/接收消息 消…

Spring Boot:利用JPA进行数据库的增改

目录 JPA介绍Service接口Service和Autowired示例代码 Dao数据库操作层Repository示例代码 控制器文件示例代码-增加增加成功示例代码-修改修改成功 JPA介绍 JPA&#xff08;Javaa Persistence API)一种用于持久化 Java 对象到关系型数据库的标准规范。它提供了一种统一的方式来…

Pytorch单机多卡分布式训练

Pytorch单机多卡分布式训练 数据并行&#xff1a; DP和DDP 这两个都是pytorch下实现多GPU训练的库&#xff0c;DP是pytorch以前实现的库&#xff0c;现在官方更推荐使用DDP&#xff0c;即使是单机训练也比DP快。 DataParallel&#xff08;DP&#xff09; 只支持单进程多线程…

openGauss学习笔记-83 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT使用内存和存储规划

文章目录 openGauss学习笔记-83 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT使用内存和存储规划83.1 MOT内存规划83.2 存储IO83.3 容量需求 openGauss学习笔记-83 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT使用内存和存储规划 本节描述了为满足特定…

完整的 pixel 6a 刷入 AOSP 源码过程记录

基础环境 虚拟机&#xff1a;VMware Workstation 16 Pro 16.0.0 build-16894299 Linux版本&#xff1a;ubuntu-16.04.7-desktop-amd64 设备&#xff1a;pixel 6a&#xff1b;代号&#xff1a;bluejay&#xff1b; 基础软件安装 安装 Git 命令&#xff1a;sudo apt install git …

金融生产存储亚健康治理:升级亚健康 3.0 ,应对万盘规模的挑战

随着集群规模的不断扩大&#xff0c;硬盘数量指数级上升&#xff0c;信创 CPU 和操作系统、硬盘多年老化、物理搬迁等多种复杂因素叠加&#xff0c;为企业的存储亚健康管理增加了新的挑战。 在亚健康 2.0 的基础上&#xff0c;星辰天合在 XSKY SDS V6.2 实现了亚健康 3.0&#…

【C++入门到精通】C++入门 —— set multiset (STL)

阅读导航 前言一、set简介二、std::set1. std::set简介2. std::set的使用- 基本使用- std::set的模板参数列表- std::set的构造函数- std::set的迭代器- std::set容量与元素访问函数 3. set的所有函数&#xff08;表&#xff09; 三、std::multiset1. std::multiset简介 四、st…

嵌入式学习笔记(35)外部中断

6.9.1什么是外部中断 (1)内部中断就是指中断源来自于SoC内部&#xff08;一般是内部外设&#xff09;&#xff0c;譬如串口、定时器等部件产生的中断&#xff1b;外部中断是SoC外部的设备&#xff0c;通过外部中断对应的GPIO引脚产生的中断。 (2)按键在SoC中就使用了外部中断…

【每日一题】1498. 满足条件的子序列数目

1498. 满足条件的子序列数目 - 力扣&#xff08;LeetCode&#xff09; 给你一个整数数组 nums 和一个整数 target 。 请你统计并返回 nums 中能满足其最小元素与最大元素的 和 小于或等于 target 的 非空 子序列的数目。 由于答案可能很大&#xff0c;请将结果对 109 7 取余后…

stm32无人机-飞行力学原理

惯性导航&#xff0c;是一种无源导航&#xff0c;不需要向外部辐射或接收信号源&#xff0c;就能自主进行确定自己在什么地方的一种导航方法。 惯性导航主要由惯性器件计算实现&#xff0c;惯性器件包括陀螺仪和加速度计。一般来说&#xff0c;惯性器件与导航物体固连&#xf…

CTFSHOW SSTI

目录 web361 【无过滤】 subprocess.Popen os._wrap_close url_for lipsum cycler web362 【过滤数字】 第一个通过 计算长度来实现 第二个使用脚本输出另一个数字来绕过 使用没有数字的payload web363 【过滤引号】 使用getitem 自定义变量 web364 【过…

数据集笔记:OpenCelliD(手机基站开放数据库)

下载数据的方式可见&#xff1a;【数据获取】全球最大手机基站开源数据库 1 读取数据 import pandas as pdpd.read_csv(C:/Users/16000/Downloads/454.csv/454.csv,headerNone,names[Radio,MCC,MNC,LAC/TAC/NID,CID,Longitude,Latitude,Range,Samples,Changeable1,Changeable…

设计模式6、适配器模式 Adapter

解释说明&#xff1a;将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作 目标接口&#xff08;Target&#xff09;&#xff1a;当前系统所期待的接口&#xff0c;它可以是抽象类或接口 适配者&#xff08;Adaptee&#xff09;&#xff1a…

AIGC(生成式AI)试用 7 -- 桌面小程序

生成式AI&#xff0c;别人用来写作&#xff0c;我先用来写个桌面小程序。 桌面小程序&#xff1a;计算器 需求 Python开发图形界面&#xff0c;标题&#xff1a;计算器 - * / 基本运算计算范围&#xff1a;-999999999 ~ 999999999** 乘方计算&#xff08;例&#xff0c;2*…

LLM之Colossal-LLaMA-2:Colossal-LLaMA-2的简介、安装、使用方法之详细攻略

LLM之Colossal-LLaMA-2&#xff1a;Colossal-LLaMA-2的简介、安装、使用方法之详细攻略 导读&#xff1a;2023年9月25日&#xff0c;Colossal-AI团队推出了开源模型Colossal-LLaMA-2-7B-base。Colossal-LLaMA-2项目的技术细节&#xff0c;主要核心要点总结如下: >> 数据处…

分布式事务-TCC异常-幂等性

1、幂等性问题&#xff1a; 二阶段提交时&#xff0c;如果二阶段执行成功通知TC时出现网路或其他问题中断&#xff0c;那么TC没有收到执行成功的通知&#xff0c;TC内部有定时器不断的重试二阶段方法&#xff0c;导致接口出现幂等性问题。 2、解决方法 和空回滚问题一样也是…

Kotlin只截取Float小数点后数值DecimalFormat

Kotlin只截取Float小数点后数值DecimalFormat import java.text.DecimalFormatfun main(args: Array<String>) {val pi 3.141516Fvar p pi - pi.toInt()println(p)val decimalFormat DecimalFormat("00.0000")val format decimalFormat.format(p)println(…

UE5屏幕适配

一、本程序设计发布在手机上&#xff0c;首先确定屏幕的设计分辨率&#xff0c;这里我们选择iphone6s&#xff0c;750x1334。 二、设置DPI Scale为1.0的比例&#xff0c;点击齿轮标志 因为我们这个程序是手机竖屏使用的&#xff0c;所以DPI Scale Rule选择Shortest Side&#…

c语言常用语法,长时间不用容易忘。

关键字 auto 声明自动变量const 定义常量&#xff0c;如果一个变量被 const 修饰&#xff0c;那么它的值就不能再被改变extern 声明变量或函数是在其它文件或本文件的其他位置定义register 声明寄存器变量signed 声明有符号类型变量或函数static 声明静态变量&#xff0c;修饰…