ccf_csp第一题汇总

news2024/11/27 23:53:03

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++; 
		else
			sum_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;
		else
			cout<<"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.coloradmin.cn/o/1052677.html

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

相关文章

git你学“废”了吗?——git本地仓库的创建

git你学“废”了吗&#xff1f;——git本地仓库的创建&#x1f60e; 前言&#x1f64c;初识gitgit 本地仓库的创建1、基于centos7环境下 git的下载2、设置自己的用户名和邮箱 查看.git中的结构区分清楚版本库和工作区 查看git中的相关内容查看仓库的状态 总结撒花&#x1f49e;…

给奶牛做直播之一

一、前言 前几天看了薇亚写的一本书《人生是用来改变的》&#xff0c;和同事聊的时候同事问我这本书讲了什么&#xff0c;我回想了一下说主要是讲&#xff1a;我很辛苦&#xff0c;我很上进&#xff0c;我很牛逼&#xff0c;我很善良&#xff01;话说成功人士放个屁都是香的&am…

[题]修剪草坪 #单调队列优化

题目 洛谷上的题目 Acwing上的题目 根据y总的一波分析&#xff0c;我们得出……公式就是一切…… 所以&#xff0c;我要学会推公式…… 推公式…… 公式…… #include<bits/stdc.h> using namespace std; typedef long long ll; const int N 1e5 10; int n, m; ll s[N…

知识库系统都有哪些?知识库系统功能和介绍

知识库的建立是企业数字化转型的重要一步&#xff0c;能够为企业的可持续发展奠定坚实的基础。使用HelpLook创建的知识库知识库系统已经成为当前很多人的选择。 HelpLook可以实现并制作企业帮助中心设计、产品说明书、常见问题手册、在线知识库、企业文档制作。 点击注册使用&…

pip version 更新

最近报了一个错&#xff1a; 解决办法&#xff1a; 在cmd输入“conda install pip” conda install pip 完了之后再输入&#xff1a; python -m pip install --upgrade pip ok.

面试题六:Promise的使用,一文详细讲解

含义 Promise是异步编程的一种解决方案&#xff0c;比传统的解决方案&#xff08;回调函数和事件&#xff09;更合理更强大。 所谓Promise&#xff0c;简单说就是一个容器&#xff0c;里面保存着某个未来才会结束的事件 (通常是一个异步操作)的结果。从语法上说&#xff0c;P…

WPF 01

xaml是声明性语言 每见到一个标签&#xff0c;就意味着xaml为我们声明一个标签对应的对象。 在XAML中为对象属性赋值 1. AttributeValue形式 <Grid><Rectangle Width"100" Height"80" Stroke"Black" Fill"Blue" RadiusX&q…

Mybatis 二级缓存(使用Redis作为二级缓存)

上一篇我们介绍了mybatis中二级缓存的使用&#xff0c;本篇我们在此基础上介绍Mybatis中如何使用Redis作为二级缓存。 如果您对mybatis中二级缓存的使用不太了解&#xff0c;建议您先进行了解后再阅读本篇&#xff0c;可以参考&#xff1a; Mybatis 二级缓存https://blog.csd…

oracle分组合并数值带顺序

比如&#xff1a;有如下一张设备电子围栏位置坐标的表&#xff08;tb_equ_point&#xff09;。 equ_name:设备电子围栏名称 point_id:点位坐标id point_x:点位x坐标 point_y:点位y坐标。 附数据&#xff1a; INSERT INTO "tb_equ_point" ("EQU_NAME",…

数据结构题型11-顺序队列

#include <iostream> //引入头文件 using namespace std;typedef int Elemtype;#define Maxsize 5 #define ERROR 0 #define OK 1typedef struct {Elemtype data[Maxsize];int front, rear; }SqQueue;void InitQueue(SqQueue& Q) //初始化队列 {Q.rear Q.front…

使用代理IP进行安全高效的竞争情报收集,为企业赢得竞争优势

在激烈的市场竞争中&#xff0c;知己知彼方能百战百胜。竞争对手的信息对于企业来说至关重要&#xff0c;它提供了洞察竞争环境和市场的窗口。在这个信息时代&#xff0c;代理IP是一种实用的工具&#xff0c;可以帮助企业收集竞争对手的产品信息和营销活动数据&#xff0c;为企…

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

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

Win10自带输入法怎么删除-Win10卸载微软输入法的方法

Win10自带输入法怎么删除&#xff1f;Win10系统自带输入法就是微软输入法&#xff0c;这个输入法满足了很多用户的输入需求。但是&#xff0c;有些用户想要使用其它的输入法&#xff0c;这时候就想删除掉微软输入法。下面小编给大家介绍最简单方便的卸载方法吧。 Win10卸载微软…

数据挖掘(1)概述

一、数据仓库和数据挖掘概述 1.1 数据仓库的产生 数据仓库与数据挖掘&#xff1a; 数据仓库和联机分析处理技术(存储)。数据挖掘&#xff1a;在大量的数据中心挖掘感兴趣的知识、规则、规律、模式、约束(分析)。数据仓库用于决策分析&#xff1a; 数据仓库&#xff1a;是在数…

在Qt中,怎么获取到在mainwindow.ui文件中添加的控件

2023年9月30日&#xff0c;周六晚上 假设我在mainwindow.ui中添加了一个名为textEdit的QTextEdit对象 在mainwindow.cpp中&#xff0c;可以通过ui对象来获取到这个控件

妙不可言的Python之旅----(一)

初识Python python的起源 1989年&#xff0c;为了打发圣诞节假期&#xff0c;Gudio van Rossum吉多 范罗苏姆&#xff08;龟叔&#xff09;决心开发一个新的解释程序&#xff08;Python雏形&#xff09; 1991年&#xff0c;第一个Python解释器诞生 Python这个名字&#xff…

怎么修改jupyter lab 的工作路径而不是直接再桌面路径打开

要修改Jupyter Lab的工作路径&#xff0c;你可以按照以下步骤操作&#xff1a; 打开终端或命令提示符窗口。 输入 jupyter lab --generate-config 命令来生成Jupyter Lab的配置文件。 找到生成的配置文件&#xff0c;通常会位于 ~/.jupyter/jupyter_notebook_config.py。 使…

C++ AB组辅导课

C AB组辅导课 蓝桥杯C AB组辅导课 第一讲 递归与递推 Acwing1、整数划分(递归)2、acwing92. 递归实现指数型枚举10凑算式(全排列)11李白打酒(全排列)12、棋牌总数(递归)13、剪邮票(递归)14、1050. 鸣人的影分身 (递归或动态规划(记忆化搜索))15、方格分割 &#xff08;dfs思维&…

蓝桥杯每日一题2023.9.30

蓝桥杯大赛历届真题 - C&C 大学 B 组 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 对于此题&#xff0c;首先想到了dfs进行一一找寻&#xff0c;注意每次不要将重复的算进去&#xff0c;故我们每次循环可以记录一个开始的位置&#xff0c;下一次到这个位置时&#xff0c;…

Git版本控制系统

概念&#xff1a; 一个免费的 开源 分布式源码仓库&#xff0c;帮助团队维护代码 个人使用 多人联机使用 git安装: 这里直接看大佬的安装 文章 很不错的 git 安装配置https://blog.csdn.net/mukes/article/details/115693833 安装完毕之后&#xff1a; 使用命名git -v查看…