人要么就是好看,要么就是丑陋,
中间不美不丑的,只能说可爱。
目录
人要么就是好看,要么就是丑陋,
中间不美不丑的,只能说可爱。
蓝桥杯2022年第十三届省赛真题-纸张尺寸
题目描述
输入格式
输出格式
样例输入
样例输出
蓝桥杯2022年第十三届省赛真题-求和
题目描述
输入格式
输出格式
样例输入
样例输出
提示
蓝桥杯2022年第十三届省赛真题-数位排序
题目描述
输入格式
输出格式
样例输入
样例输出
提示
蓝桥杯2022年第十三届省赛真题-选数异或
题目描述
输入格式
输出格式
样例输入
样例输出
提示
获取源码?私信?关注?点赞?收藏?
时间限制: 1s 内存限制: 512MB 提交: 1977 解决: 1479
在 ISO 国际标准中定义了 A0 纸张的大小为 1189mm × 841mm,将 A0 纸沿长边对折后为 A1 纸,大小为 841mm × 594mm,在对折的过程中长度直接取下整(实际裁剪时可能有损耗)。将 A1 纸沿长边对折后为 A2 纸,依此类推。
输入纸张的名称,请输出纸张的大小。
输入一行包含一个字符串表示纸张的名称,该名称一定是 A0、A1、A2、A3、A4、A5、A6、A7、A8、A9 之一。
输出两行,每行包含一个整数,依次表示长边和短边的长度。
A0
1189 841
#include
#include
int l=1189,w=841; // 原尺寸
using namespace std;
bool max(int x,int y){ // 递归调用
if(x>y){ // 比较
return l=x,w=y; // 长=l 宽=w
//因为每次需要折叠长的一边
}
else{
return l=y,w=x;
}
}
int main(){
char a;
int n;
cin >> a >> n;
for(int i=0;i<=n;i++){
if(i==n){
cout << l << endl << w; // A0时
}
else{
l=l/2; // 折叠
max(l,w);
}
}
}
笔记:
使用了递归函数 返回值
min(x,y)函数
针对向下取整问题只需直接除即可/*!!!
由于作者才疏学浅,代码无论从时间复杂度、效率、方法等方面无疑不是最优解,疏漏之处在所难免,还希望广大读者指正
!!!*/
时间限制: 1s 内存限制: 256MB 提交: 5085 解决: 1937
给定 n 个整数 a1, a2, · · · , an ,求它们两两相乘再相加的和,即 S = a1 · a2 + a1 · a3 + · · · + a1 · an + a2 · a3 + · · · + an-2 · an-1 + an-2 · an + an-1 · an.
输入的第一行包含一个整数 n 。
第二行包含 n 个整数 a1, a2, · · · an。
输出一个整数 S,表示所求的和。请使用合适的数据类型进行运算。
4 1 3 6 9
117
对于 30% 的数据,1 ≤ n ≤ 1000,1 ≤ ai ≤ 100。
对于所有评测用例,1 ≤ n ≤ 200000,1 ≤ ai ≤ 1000。
#include
#include
#include
long long int sArray[200005],nArray[200005],sum=0;
long long a[200005];
long long b[200005];
using namespace std;
int main(){
/*
第一次写题:
long long int sum=0;
int nArray[200005]={0},n; // 定义数组
scanf("%d",&n); // 给定整数n 输入
for(int i=0;i>n;
for (int i = 1; i <= n; ++i) {
cin>>b[i];
a[i]=a[i-1]+b[i]; // 预处理,前缀
}
long long sum=0;
for(int i=1;i<=n;i++){
sum+=b[i]*(a[n]-a[i]); // 求和
}
cout<
笔记:
不难看出第一次我的想法还是比较直接的---就是两两相加再相乘,但是由于时间超限就不得不再次优化
预处理,前缀
找寻优化思路,方法!!!/*!!!
由于作者才疏学浅,代码无论从时间复杂度、效率、方法等方面无疑不是最优解,疏漏之处在所难免,还希望广大读者指正
!!!*/
时间限制: 1s 内存限制: 512MB 提交: 1756 解决: 841
小蓝对一个数的数位之和很感兴趣,今天他要按照数位之和给数排序。当两个数各个数位之和不同时,将数位和较小的排在前面,当数位之和相等时,将数值小的排在前面。
例如,2022 排在 409 前面,因为 2022 的数位之和是 6,小于 409 的数位之和 13。
又如,6 排在 2022 前面,因为它们的数位之和相同,而 6 小于 2022。
给定正整数 n,m,请问对 1 到 n 采用这种方法排序时,排在第 m 个的元素是多少?
输入第一行包含一个正整数 n。
第二行包含一个正整数 m。
输出一行包含一个整数,表示答案。
13 5
3
1 到 13 的排序为:1, 10, 2, 11, 3, 12, 4, 13, 5, 6, 7, 8, 9。第 5 个数为 3。
对于 30% 的评测用例,1 ≤ m ≤ n ≤ 300。
对于 50% 的评测用例,1 ≤ m ≤ n ≤ 1000。
对于所有评测用例,1 ≤ m ≤ n ≤ 106。
#include
#include
#include
#include
using namespace std;
long long int n,m,nArray[1000005],sArray[1000005],sum=0; // 数组较大
bool cmp(int x,int y){ // 注意递归调用
return (sArray[x]
笔记:
本题关键点在于,判断数位之和相同之后,如何再根据整数大小排序
递归调用
sort(x,y)
/*!!!
由于作者才疏学浅,代码无论从时间复杂度、效率、方法等方面无疑不是最优解,疏漏之处在所难免,还希望广大读者指正
!!!*/
时间限制: 1s 内存限制: 256MB 提交: 2639 解决: 722
给定一个长度为 n 的数列 A1, A2, · · · , An 和一个非负整数 x,给定 m 次查询, 每次询问能否从某个区间 [l,r] 中选择两个数使得他们的异或等于 x 。
输入的第一行包含三个整数 n, m, x 。
第二行包含 n 个整数 A1, A2, · · · , An 。
接下来 m 行,每行包含两个整数 li ,ri 表示询问区间 [li ,ri ] 。
对于每个询问, 如果该区间内存在两个数的异或为 x 则输出 yes, 否则输出 no。
4 4 1 1 2 3 4 1 4 1 2 2 3 3 3
yes no yes no
显然整个数列中只有 2, 3 的异或为 1。
对于 20% 的评测用例,1 ≤ n, m ≤ 100;
对于 40% 的评测用例,1 ≤ n, m ≤ 1000;
对于所有评测用例,1 ≤ n, m ≤ 100000 ,0 ≤ x < 220 ,1 ≤ li ≤ ri ≤ n , 0 ≤ Ai < 220。
#include
#include
#include
#define ll long long // long long 推荐在大于10^5 均使用 long long int
using namespace std;
int f[100005],pos[5000005]; // \0
int main(){
int n,m,x;
cin>>n>>m>>x;
for(int i=1;i<=n;++i){
int a;
scanf("%d",&a);
f[i]=max(f[i-1],pos[a^x]); // 输入A1,A2…… 两数中最大值 异或 预处理
pos[a]=i;
}
while(m--){
int l,r;
scanf("%d%d",&l,&r);
if(f[r]>=l){ // 由于已经进行预处理 即可直接判断 大于等于左即可
printf("yes\n");
}
else{
printf("no\n");
}
}
}
笔记:
异或,十进制转二进制,二进制比较相等为0,不相等为1
(a^b) 异或
动态规划(DP算法),时间超限,max(x,y)函数 {预处理}
/*
首先,我们容易知道:若a^b=x,那么a^x=b,对于数组a[i],
我们可以通过关系式,找到a[i]^x的左边的最靠近下标,明显我们需要找到最靠近的下标,
而当这个下标是大于等于所需要找的区间的左端点,
即可满足这个区间内可以找到两个数的异或为x。
当对于一个数,其左边没有数与其异或等于x时,那么就将其置为0,
而当我们不断输入数字的时候,我们需要同时存储这个数的下标,
方便循环到下一个下标的时候找到这个数字(通过a^x=b这样的关系)
*//*!!!
由于作者才疏学浅,代码无论从时间复杂度、效率、方法等方面无疑不是最优解,疏漏之处在所难免,还希望广大读者指正
!!!*/
好了,这篇文章到这就结束了,就是一个简简单单的题解,希望可以帮助到大家!!!
蓝桥杯冲刺!!!加油!!!
后续会继续更新,真题+基础题
只为拿奖
兄弟们冲啊!!!
2023年第三十期,希望得到大家的喜欢
也是新的系列,将会持续更新,
希望大家有好的意见或者建议,欢迎私信
以上就是本篇文章的全部内容了
~ 关注我,点赞博文~ 每天带你涨知识!
1.看到这里了就 [点赞+好评+收藏] 三连 支持下吧,你的「点赞,好评,收藏」是我创作的动力。
2.关注我 ~ 每天带你学习 :各种前端插件、3D炫酷效果、图片展示、文字效果、以及整站模板 、HTML模板 、C++、数据结构、Python程序设计、Java程序设计、爬虫等! 「在这里有好多 开发者,一起探讨 前端 开发 知识,互相学习」!
3.以上内容技术相关问题可以相互学习,可 关 注 ↓公 Z 号 获取更多源码 !
+✏️+⭐️+
有需要源码的小伙伴可以 关注下方微信公众号 " Enovo开发工厂 "