第十四届蓝桥杯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也不是0for(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; //释放vcol[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;
}

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

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

相关文章

C++ 友元函数

目录 如果觉得有用的话&#xff0c;给小弟点个赞吧&#xff01;哈哈哈哈&#xff0c;谢谢嘞&#xff01; 概念&#xff1a; 如何理解&#xff1f; 概念&#xff1a; 友元&#xff1a;慎用&#xff08;突破封装&#xff09; 友元函数&#xff1a;在函数前加friend的函数称为…

网页代理ip怎么设置的

众所周知&#xff0c;现在网络安全和隐私保护是我们非常关注的问题。为了更好地保护自己的隐私&#xff0c;提高上网的安全性&#xff0c;使用代理IP成为了很多人的首选。 那么&#xff0c;网页代理IP是怎么设置的呢&#xff1f;下面&#xff0c;就让我来一一为大家介绍。 一、…

CMake学习笔记(二)从PROJECT_BINARY_DIR看外部编译和内部编译

目录 外部编译 内部编译 总结 外部编译 看如下例子&#xff1a;我在EXE_OUT_PATH中建立了文件夹build、文件夹src2 和 文件CMakeLists.txt 其中EXE_OUT_PATH/CMakeLists.txt的内容如下&#xff1a; PROJECT(out_path) ADD_SUBDIRECTORY(src2 bin2) MESSAGE(STATUS "m…

(一)whatsapp 语音通话基本流程

经过了一整年的开发测试&#xff0c;终于将whatsapp 语音通话完成&#xff0c;期间主要参考webrtc的源码来实现.下面简要说一下大致的步骤 XMPP 协商 发起或者接受语音通话第一步是发起XMPP 协商&#xff0c;这个协商过程非常重要。下面是协商一个包 <call toxxxs.whatsap…

【大模型基础】什么是KV Cache?

哪里存在KV Cache&#xff1f; KV cache发生在多个token生成的步骤中&#xff0c;并且只发生在decoder中&#xff08;例如&#xff0c;decoder-only模型&#xff0c;如 GPT&#xff0c;或在encoder-decoder模型&#xff0c;如T5的decoder部分&#xff09;&#xff0c;BERT这样…

Protocol Buffers设计要点

概述 一种开源跨平台的序列化结构化数据的协议。可用于存储数据或在网络上进行数据通信。它提供了用于描述数据结构的接口描述语言&#xff08;IDL&#xff09;&#xff0c;也提供了根据 IDL 产生代码的程序工具。Protocol Buffers的设计目标是简单和性能&#xff0c;所以与 XM…

(执行上下文作用域链)前端八股文修炼Day4

一 作用域作用域链 作用域&#xff08;Scope&#xff09;是指程序中定义变量的区域&#xff0c;作用域规定了在这个区域内变量的可访问性。在 JavaScript 中&#xff0c;作用域可以分为全局作用域和局部作用域。 全局作用域&#xff1a;在代码中任何地方都可以访问的作用域&am…

基于Springboot的狱内罪犯危险性评估系统的设计与实现(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的狱内罪犯危险性评估系统的设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#…

宝塔部署项目

如何在云服务器上使用宝塔 登录到你的云服务器后&#xff0c;执行宝塔面板安装命令&#xff0c;阿里云服务器网使用的CentOS操作系统&#xff0c;命令如下 yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh …

题。。。。

O - 胜利大逃亡(续) 题目分析 bfs状态压缩&#xff08;在bfs的基础上&#xff0c;存储持有不同钥匙时&#xff0c;此点位是否走过的情况&#xff09;&#xff1b; -----状态压缩使用二进制实现&#xff0c;同时通过位运算修改是否转移至另一状态&#xff08;详情见代码及注释…

解决 Xshell 等工具连接虚拟机失败

这里以 Xshell 等工具连接 Linux 虚拟机为例 对于我们使用 Xshell 等工具连接虚拟机失败&#xff0c;我们可以从以下的几个方面进行检查和解决 检查连接工具中的连接会话配置是否正确 对于这方面&#xff0c;我们要检查连接工具中连接会话配置的虚拟机 IP 地址和端口号是否正…

Postman核心功能解析-参数化和测试报告

一、参数化处理 参数化&#xff1a;针对于某一个接口&#xff0c;有大量的的测试数据需要批量验证&#xff0c;一个一个的更改请求参数太耗时耗力&#xff0c;使用参数化批量处理数据会比较高效&#xff0c;常规通过文档参数化实现。 创建文件 格式CSV 文件内第一行信息 需要…

操作系统的理解|冯·若依曼体系结构|进程的状态

操作系统的理解 冯诺伊曼体系结构为什么必须通过内存然后到cpu存储金字塔冯诺伊曼结构的改进在哪&#xff1f;我们可不可以全部用寄存器来做存储器在硬件数据流动角度学以致用&#xff1a;解释程序运行为什么要加载到内存程序没被运行之前存在哪里&#xff1f; 操作系统概念广义…

应急响应实战笔记04Windows实战篇(2)

第2篇&#xff1a;蠕虫病毒 0x00 前言 ​ 蠕虫病毒是一种十分古老的计算机病毒&#xff0c;它是一种自包含的程序&#xff08;或是一套程序&#xff09;&#xff0c;通常通过网络途径传播&#xff0c;每入侵到一台新的计算机&#xff0c;它就在这台计算机上复制自己&#xff…

第一个C++程序,我也没看明白,暂时。

#include<iostream> using namespace std; int main() { cout << "hello world and you too number!" << endl; system("pause"); return 0; } 运行结果为&#xff1a;

优化生产流程,解决无尘布擦拭留下划痕问题

在现代化工生产中&#xff0c;无尘布被广泛应用于清洁工作&#xff0c;然而&#xff0c;河北一家化工企业在使用无尘布进行擦拭时却发现产品表面留下了划痕&#xff0c;给生产过程带来了不小的困扰。针对这一问题&#xff0c;一家化工企业向供应商优斯特寻求解决方案&#xff0…

AI视频激光综合驱鸟装置:全自动、大范围驱鸟 | 真驱鸟科技

在电力系统中&#xff0c;鸟害事故已成为一个不容忽视的问题&#xff0c;直接威胁到电网的正常运行。但鸟类拥有极强的环境适应能力&#xff0c;它们能够在各种环境中生存和繁衍。这种强大的适应性使得传统的单一功能驱鸟器&#xff0c;在面对鸟类时显得力不从心&#xff0c;无…

苹果与百度合作,将在iPhone 16中使用生成式AI

3月25日&#xff0c;《科创板日报》消息&#xff0c;苹果将与百度进行技术合作&#xff0c;为今年即将发布的iPhone16、Mac系统和iOS 18提供生成式AI&#xff08;AIGC&#xff09;功能。 据悉&#xff0c;苹果曾与阿里巴巴以及另外一家国产大模型厂商进行了技术合作洽谈。最终…

#Linux系统编程(ps和kill命令)

&#xff08;一&#xff09;发行版&#xff1a;Ubuntu16.04.7 &#xff08;二&#xff09;记录&#xff1a; &#xff08;1&#xff09;ps命令 可以列出系统中当前运行的那些进程。 命令格式&#xff1a;ps 参数(常用-aux) 命令功能&#xff1a;用来显示当前进程的状态 常…

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

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