第十四届蓝桥杯C++A组(A/B/C/D/E/H)

文章目录

  • A.幸运数
  • B.有奖问答
  • C.平方差
  • D.更小的数
  • E.颜色平衡树
  • H.异或和之和

A.幸运数

在这里插入图片描述

/*纯暴力*/
#include <bits/stdc++.h>

using namespace std;

void solve()
{
	int sum = 0;
	for(int i = 1; i <= 100000000; i ++ )
	{
		int n = i;
		int a[11];
		int j = 1;
		for(; n != 0; j ++ )
		{
			a[j] = n % 10;
			n = n / 10;
		}
		j --;
		if(j % 2 == 0)
		{
			int sum1 = 0, sum2 = 0;
			for(int u = 1; u <= j / 2; u ++ )
			{
				sum1 = sum1 + a[u];
				sum2 = sum2 + a[j/2 + u];
			}
			if(sum1 == sum2) sum ++ ;
		}
	}
	cout << sum;
}

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	solve();
	cout << ans << endl;
	return 0;
}
/*dfs搜索*/
#include <bits/stdc++.h>

using namespace std;

int ans;

void dfs(int x, int l, int r)
{
  if(l != 0 && l == r) ans ++ ; //非0且相等才可以,卡掉刚开始进入时的dfs(0, 0, 0)
  if(x == 4) return; //递归出口
  for(int i = 0; i <= 9; i ++ )
  {
    if(l == 0 && i == 0) continue; //从高位开始枚举,所以第一次l不可以是0,i也不是0
      for(int j = 0; j <= 9; j ++ )
        dfs(x + 1, l + i, r + j);
  }
}

int main()
{
  ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	dfs(0,0,0);
	cout << ans << endl;
  return 0;
}

B.有奖问答

在这里插入图片描述

#include<bits/stdc++.h>

using namespace std;

int ans = 0;

void bfs(int step, int score)
{
	if(score == 70) ans ++ ; //达到70分可以停止记为一次成功
	if(score == 100 || step == 30) return; //递归出口:满分立即停止,满30次立即停止

	bfs(step + 1, score + 10); //答对
	bfs(step + 1, 0); //答错
}

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	bfs(0, 0);
	cout << ans << endl;
	return 0;
}

C.平方差

在这里插入图片描述

#include<bits/stdc++.h>

using namespace std;

/*****思路:*****/

/*
y方 - z方 = (y - z)(y + z)
y-z和y+z始终是同奇偶的
奇*奇 = 奇
偶*偶 = 偶(且该数必然是4的倍数)
*/

/*
x方 - (x-1)方 = 2x - 1则所有奇数满足拆分
x方 - (x-2)方 = 4x - 4则所有4的倍数满足拆分
*/

/*
所以如果要查找1~n中满足的x则***return (x + 1)/2 + x/4***即可
*/

int calc(int x)
{
  //(x + 1)/2是奇数乘以奇数部分,x/4是偶数乘以偶数部分
  return (x + 1)/2 + x/4;
}

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
  int l,r;
  cin >> l >> r;
  cout << calc(r) - calc(l - 1) << endl;
	return 0;
}

D.更小的数

在这里插入图片描述

#include<bits/stdc++.h>

using namespace std;

const int MAX = 5020;
int dp[MAX][MAX]; //dp[len][i]表示从i开始长度为len的子串反转是否可以满足,满足为1,不满足为0
int ans = 0;

//dp动态规划
void solve()
{
	string s;
	cin >> s;
	int n = s.length();
  
	for(int len = 2; len <= n; len ++ ) //遍历每种长度
		for(int l = 0; l + len - 1 < n; l ++ ) //遍历每个起点
		{
      //每次比较最边缘两个,如果不满足则各向中间靠一位再比较(可以直接使用dp)
			if(s[l] > s[l + len - 1]) dp[l][l + len - 1] = 1;
			else if(s[l] == s[l + len - 1]) dp[l][l + len - 1] = dp[l + 1][l + len - 2];

			ans += dp[l][l + len - 1]; //累加答案
		}
	
	cout << ans << endl;
}

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	solve();
	return 0;
}

E.颜色平衡树

在这里插入图片描述

#include<bits/stdc++.h>

using namespace std;

const int N = 2e5 + 5;
int n, ans;
map<int, int>col[N],num[N]; //col[N]每个颜色多少数量,num[N]每个数量有几组
vector<int> e[N];

void dfs(int u) //从上到下,u为此时树的根节点
{
  for(auto &v:e[u]) //所有遍历一遍,自顶向下再自底向上
  {
    dfs(v);
    //合并两树
    if(col[u].size() < col[v].size()) //u是保持的,v要更新,所以让u更大耗时更少
    {
      col[u].swap(col[v]);
      num[u].swap(num[u]);
    }
    for(auto it = col[v].begin();it != col[v].end(); it ++ )
    {
      int v_col = it->first, v_num = it->second;
      if(col[u].count(v_col)) //u树中含有v中该颜色,则要更新num颜色数量组
      {
        int u_num = col[u][v_col];
        num[u][u_num] -- ;
        if(num[u][u_num] == 0) num[u].erase(u_num);
        num[u][u_num + v_num] ++ ;
      }
      else num[u][v_num] ++ ; //u树不含有则直接添加
      col[u][v_col] += v_num; //更新col
    }
    map<int, int> tmp1, tmp2; //释放v
    col[v].swap(tmp1);
    num[v].swap(tmp2);
  }
  if(num[u].size() == 1) ans ++ ; //最大最小都是在一个num上则是满足的
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
  cin >> n;
  for(int u = 1; u <= n; u ++ )
  {
    int c, fa;
    cin >> c >> fa;
    e[fa].push_back(u); //父节点向子节点连一条边
    col[u][c] ++ ; //此时u节点树中,只有c一种颜色,且只要一个,first是颜色,second是数量
    num[u][1] ++ ; //此时u节点树中,只有1种颜色的,且其只有一个,first是数量,second是该数量有几套颜色
  }
  dfs(1);
  cout << ans;
    return 0;
}

H.异或和之和

在这里插入图片描述

#include<bits/stdc++.h>

using namespace std;

/*****思路:*****/

/*
从前往后遍历
每次遍历该值的所有前缀异或和的每一位的累加值
可以使用i - cnt[j]来表示
最后按位累加即可
*/

typedef long long LL;
int cnt[21];//cnt[i]表示第i位为1的可能情况有多少种

void solve()
{
	int n;
  cin >> n;
  LL ans = 0;
  for(int i = 1; i <= n; i ++ ) //从前往后遍历每一个数
  {
    int a;
    cin >> a;
    for(int j = 0; j <= 20; j ++ ) //遍历每一位
    {
      if((1 << j) & a) cnt[j] = i - cnt[j]; //只有该位是1的时候才会有此异或变化
      ans += 1ll * (1 << j) * cnt[j];
    }
  }
  cout << ans;
  return;
}

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	solve();
	return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Python的Climate Indices库计算SPI01:不同站点不同时间尺度的SPI的计算

热闹的尽头是孤寂&#xff0c;在虚浮的欢闹中保持自己&#xff0c;纷繁世间&#xff0c;可报期望者不过二三。 文章目录 前言1. 概述2.1 目的2.2 说明 2. 版本2.1 天津&#xff0c;2024年1月18日&#xff0c;Version1 3. 微信公众号GISRSGeography 一、数据1. 输入数据2. 输出…

日常刷题之77-组合

题目 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案 提示&#xff1a;假设 n5,k3 就是需要组合出来&#xff0c;长度3且内容数据是在[1,n]这个区间内的所有可能得组合 同时一个组合里面内个数字只能出现一次&#…

windows grep 安装及使用

1&#xff09;下载地址&#xff1a; Grep for Windows 2&#xff09;选择这个包下载&#xff1a; 3&#xff09; 将D:\Program Files (x86)\GnuWin32\bin目录 加入系统变量&#xff1a; 4&#xff09;grep "ACE_Lock_Adapter" -i * 执行命令如下&#xff1a;

使用Git仓库进行项目代码同步与打包

1. 引言 最近在用友的开发者中心论坛发现好多小伙伴反馈使用 YonStudio 开发工具进行云端项目导入失败的问题&#xff0c;有感于此问题会影响开发小伙伴的开发效率&#xff0c;特编写此文帮助新手小伙伴去规避这类问题的发生。 一直以来&#xff0c;开发者依循惯性思维去依赖…

不会搭建物联网数据平台的老板参考一下吧

搭建牛奶厂的物联网数据平台 对于现代牛奶厂&#xff0c;在数字化时代中&#xff0c;搭建物联网数据平台至关重要。这样的平台基础是建立IOT数据底座平台&#xff0c;它是支撑物联网应用的数据存储和管理基础设施&#xff0c;通常由分布式存储系统、时序数据库集群和存储管理组…

放弃 Rust 选择 Zig,Xata 团队推出 pgzx —— 计划使用 Zig 开发基于 PG 的分布式数据库

Summary Xata 公司在基于 PostgresSQL 开发自己的分布式数据库&#xff0c;出于 Zig 和 C 语言以及 PostgreSQL 的 API 有更好的互操作性的考虑&#xff0c;他们选择了 Zig 而非当红炸子鸡语言 Rust。他们的博客文章中对 pgzx 进行了介绍。让我们来看下他们对 Zig 和 Rust 语言…

学习网络编程No.15【高级IO之多路转接】

引言&#xff1a; 北京时间&#xff1a;2024/3/19/11:16&#xff0c;若是说记忆有克星的话&#xff0c;那么一定是时间。若是说耐心有克星的话&#xff0c;那么一定是人的心态。连续几天睡眠问题&#xff0c;加上环境影响&#xff0c;上篇博客还有部分知识只能放在该篇博客介绍…

面试总结:C++11新特性

对于C11的特性你了解多少&#xff1f;简单说说 - 在语法层面引入统一初始化&#xff08;即列表初始化&#xff09;&#xff0c;那么C11的初始化就可以分为列表初始化和字面值初始化 列表初始化就是使用{}&#xff08;花括号&#xff09;来进行对象、内置基本类型等的初始化 in…

超全整理,软件测试-性能测试流程汇总,看这一篇就够了...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试&#xf…

这个插件,提供了1000多个在线底图服务!

本文推荐一下QGIS中的热门插件:QuickMapService。目前在QGIS插件市场下载量排名第一,先看下官网的介绍: Easy to use list of services and search for finding datasets and basemaps. 言简意赅,用来添加QGIS底图的插件。 插件安装 打开QGIS自带的插件管理器。 在搜索框中…

学习要不畏难

我突然发现&#xff0c;畏难心是阻碍我成长的最大敌人。事未难&#xff0c;心先难&#xff0c;心比事都难&#xff0c;是我最大的毛病。然而一念由心生&#xff0c;心不难时&#xff0c;则真难事也不再难。很多那些自认为很难的事&#xff0c;硬着头皮做下来的时候&#xff0c;…

黑马鸿蒙学习(3):滑动条

1&#xff09; 滑动条slidebar属性&#xff1a;

MySQL-1.数据库的基本操作

1. 数据库的基本操作 show databases; information_schema&#xff1a;信息图式&#xff0c;存储服务器管理数据库的信息 mysql&#xff1a;存放系统信息&#xff0c;用户名密码等 performance_schema&#xff1a;性能图式 sys&#xff1a;系统文件 1.1 创建数据库-studen…

[STL]priority_queue类及反向迭代器的模拟实现

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 今日主菜&#xff1a; priority_queue类及反向迭代器 主厨&#xff1a;邪王真眼 主厨的主页&#xff1a;Chef‘s blog 所属专栏&#xff1a;c大冒险 向着c&…

【Web应用技术基础】HTML(5)——案例1:展示简历信息

样式&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>展示简历信息…

【微服务】Gateway

文章目录 1.基本介绍官方文档&#xff1a;https://springdoc.cn/spring-cloud-gateway/#gateway-starter1.引出网关2.使用网关服务架构图3.Gateway网络拓扑图&#xff08;背下来&#xff09;4.Gateway特性5.Gateway核心组件1.基本介绍2.断言3.过滤 6.Gateway工作机制 2.搭建Gat…

从姿态估计到3D动画

在本文中&#xff0c;我们将尝试通过跟踪 2D 视频中的动作来渲染人物的 3D 动画。 在 3D 图形中制作人物动画需要大量的运动跟踪器来跟踪人物的动作&#xff0c;并且还需要时间手动制作每个肢体的动画。 我们的目标是提供一种节省时间的方法来完成同样的任务。 我们对这个问题…

超实用!10条JavaScript这20年来增加的新功能?

部门捞人&#xff1a;前端可投&#xff1a;OD软件工程师社会招聘-表单-金数据 在过去的20年里&#xff0c;JavaScript经历了多次更新和升级&#xff0c;引入了许多新功能以增强其表达力、交互性和开发效率。以下是一些显著的新功能&#xff1a; 1.ECMAScript 6 (ES6) &#xf…

【ssh连接】奇奇怪怪报错记录

gitlab配置ssh连接&#xff0c;先跟着教程生成密钥&#xff0c;上传公钥&#xff0c;将服务器信息存入config文件&#xff0c;但是ssh连接超时&#xff0c;很急&#xff0c;想用服务器&#xff0c;各种搜索尝试&#xff0c;搞了两三天别的什么都没干&#xff0c;还是没解决&…

vue脚手架创建项目:账号登录(利用element-ui快速开发)(取消eslint强制格式)(修改端口号)

新手看不懂&#xff0c;老手不用看系列 文章目录 一、准备工作1.1 取消强制格式检查1.2 导入依赖&#xff0c;注册依赖 二、去element-ui官网找样式写Login组件2.1 引用局部组件2.2 运行项目 三、看一下发现没问题&#xff0c;开始修改前端的代码四、修改端口号4.1 修改后端端口…