目录

第一题:啤酒和饮料(枚举)

第二题:切面条(数学)

第三题:李白打酒(dfs)

第四题:史丰收速算

第五题:打印图形

第六题:奇怪的分式(枚举)

第七题:六角填数

第八题:蚂蚁感冒(数学)

第九题:地宫取宝

第十题:小朋友排队(树状数组)


题目来源:

2014年第五届C/C++ B组蓝桥杯省赛真题_元气算法的博客-CSDN博客

第一题:啤酒和饮料(枚举)

#include<iostream>
using namespace std;
int main()
{for (int i = 0; i < 82.3 / 2.3; i++){for (int j = 0; j < 82.3/1.9; j++){if (2.3 * i + 1.9 * j == 82.3){cout << i << endl;return 0;}}}
}

第二题:切面条(数学)

 解析:

2014年第五届C/C++ B组蓝桥杯省赛真题_元气算法的博客-CSDN博客

#include<iostream>
#include<cmath>
using namespace std;int main()
{//计算对折拐弯处数目(等比公式推导)int a = pow(2,10)-1;//无对折情况下数目int b = pow(2,11);//最后面条数目cout << b-a;return 0;
}

第三题:李白打酒(dfs)

#include<iostream>
using namespace std;
int ans;void dfs(int x, int y, int z)
{if (x < 0 || y < 0) return;if (x == 0 && y == 1 && z == 1) ans++;if (x > 0) dfs(x - 1, y, z * 2);if (y > 0) dfs(x, y - 1, z - 1);
}int main()
{dfs(5, 10, 2);cout << ans;return 0;
}

第四题:史丰收速算

//计算个位
int ge_wei(int a)
{if(a % 2 == 0)return (a * 2) % 10;elsereturn (a * 2 + 5) % 10;
}//计算进位
int jin_wei(char* p)
{char* level[] = {"142857","285714","428571","571428","714285","857142"};char buf[7];buf[6] = '\0';strncpy(buf,p,6);int i;for(i=5; i>=0; i--){int r = strcmp(level[i], buf);if(r<0) return i+1;while(r==0){p += 6;strncpy(buf,p,6);r = strcmp(level[i], buf);if(r<0) return i+1;______________________________;  //填空}}return 0;
}//多位数乘以7
void f(char* s)
{int head = jin_wei(s);if(head > 0) printf("%d", head);char* p = s;while(*p){int a = (*p-'0');int x = (ge_wei(a) + jin_wei(p+1)) % 10;printf("%d",x);p++;}printf("\n");
}int main()
{f("428571428571");f("34553834937543");     return 0;
}

解析:

函数名已经写得很清楚了:进位

既然有进那么就有不进位:答案为:

if(r>0) return i;

第五题:打印图形

2014年第五届C/C++ B组蓝桥杯省赛真题_元气算法的博客-CSDN博客


第六题:奇怪的分式(枚举)

#include<iostream>
#include<cmath>using namespace std;int main()
{int cnt = 0;for(int a = 1; a < 10; a++){for(int b = 1; b < 10; b++){//满足分子分母不同 if(a!=b)for(int c = 1; c < 10; c++){for(int d = 1; d < 10; d++){if(c!=d){//浮点数判断相等 if(fabs(a*c*1.0/(b*d)-(a*10.0+c)/(b*10+d))<1e-5){cnt++;}}}}}}cout<< cnt <<endl; return 0;
}

第七题:六角填数

 解析:

第五届蓝桥杯——六角填数_业余算法学徒的博客-CSDN博客

#include <iostream>
#include <algorithm>
using namespace std;int main()
{int a[9] = {2, 4, 5, 6, 7, 9, 10, 11, 12};do{int L1 = 1 + a[0] + a[3] + a[5];int L2 = 1 + a[1] + a[4] + a[8];int L3 = a[5] + a[6] + a[7] +a[8];int L4 = 8 + a[0] + a[1] + a[2];int L5 = 8 + a[3] + a[6] + 3;int L6 = a[2] + a[4] + a[7] + 3;if(L1 == L2 && L1 == L3 && L1 == L4 && L1 == L5 && L1 == L6) cout << a[3] << endl;}while(next_permutation(a, a + 9));return 0;
}

第八题:蚂蚁感冒(数学)

#include<iostream>
#include<algorithm>
using namespace std;const int N=55;
int x[N];
int n;int main()
{cin>>n;for(int i=0;i<n;i++) cin>>x[i];int left=0,right=0;//左边向右走的:x[i]>0,且abs小于x[0],和右边向左走的:x[i]<0,且abs大于x[0]for(int i=1;i<n;i++){if(abs(x[i])<abs(x[0]) && x[i]>0) left++;else if(abs(x[i])>abs(x[0]) && x[i]<0) right++;}if(x[0]>0 && right==0 || x[0]<0 && left==0) cout<<1<<endl;else cout<<left+right+1<<endl;return 0;
}

第九题:地宫取宝

#include<iostream>
#include<cstring>
#include<algorithm>using namespace std;const int MOD = 1000000007, N = 55;int map[N][N];//地图的值
int dp[N][N][13][14];//DP[A][B][C][D] AB横纵坐标 C数量 D最后一个为D的价值 int main()
{int n, m, k;//n m横纵数量 k K件宝物cin >> n >> m >> k;for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++){cin >> map[i][j];map[i][j]++;}//读入地图宝物价值,为了方便初始下标判断,全加1dp[1][1][1][map[1][1]] = 1;//起始点选择 方案数1dp[1][1][0][0] = 1;//起始点不选 方案数1for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){if (i == 1 && j == 1)continue;//如果是起始点 跳过for (int u = 0; u < 13; u++)for (int v = 0; v < 14; v++){int& val = dp[i][j][u][v];//引用 简化val = (val + dp[i - 1][j][u][v]) % MOD;//左边 不选val = (val + dp[i][j - 1][u][v]) % MOD;//上边 不选if (u > 0 && v == map[i][j])//最终的选择到了最大的价值宝物(因为题目递增),且有选择次数,则累加不同价值的子集//当前的方案数量=上一步的所有价值的方案数量之和{for (int c = 0; c < v; c++)//{val = (val + dp[i - 1][j][u - 1][c]) % MOD;//左边val = (val + dp[i][j - 1][u - 1][c]) % MOD;//上边}}}}}int res = 0;for (int i = 1; i <= 13; i++)res = (res + dp[n][m][k][i]) % MOD;//总方案数量等于当前数量下所有价值的数量总和cout << res;return 0;
}

第十题:小朋友排队(树状数组)

 解析:

活动 - AcWing

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int N = 1000010;
int n;
long long a[N], tr[N], b[N];int lowbit(int x)
{return x & -x;
}void add(int x, int y)
{for (int i = x; i < N; i += lowbit(i)) tr[i] += y;
}int query(int x)
{int ans = 0;for (int i = x; i; i -= lowbit(i)) ans += tr[i];return ans;
}int main()
{cin >> n;for (int i = 1; i <= n; i++){cin >> a[i];a[i]++;}for (int i = 1; i <= n; i++){add(a[i], 1);b[i] = i - query(a[i]);}memset(tr, 0, sizeof tr);for (int i = n; i >= 1; i--){add(a[i], 1);b[i] += query(a[i] - 1);}long long res = 0;for (int i = 1; i <= n; i++){res += (1 + b[i]) * b[i] / 2;}cout << res << endl;return 0;
}

蓝桥杯2014年第五届C/C++ B组省赛习题题解相关推荐

  1. 蓝桥杯2018第九届C语言B组省赛习题题解——习题B.明码(暴力破解密码)

    每日刷题(四十三) 蓝桥杯第九届C语言B组省赛习题 习题B:明码 这道题还是很值得细品的,很多人都会被题目太长给吓到,其实这个题考察的东西很少也很简单,就是考十进制转化为二进制外加结果的输出格式构造以 ...

  2. 蓝桥杯2017年第八届C/C++ B组省赛习题题解

    目录 第一题:购物单(暴力计算) 第二题:等差素数数列(数学+暴力枚举) 第三题:承压计算(模拟) 第四题:方格分割(dfs) 第五题:取数位(模拟) 第六题:最大公共子串(dp) 第七题:日期问题( ...

  3. 蓝桥杯2013年第四届C/C++ B组省赛习题题解

    目录 第一题:高斯日记(日期计算) 第二题:马虎的算式(全排列) 第三题:第39级台阶(dfs) 第四题:黄金连分数(递推+大数运算) 第五题:前缀判断(枚举) 第六题:三部排序 第七题:错误票据 第 ...

  4. 蓝桥杯2016第七届C语言B组省赛习题题解——习题B.生日蜡烛

    每日刷题(十一) 蓝桥杯第七届C语言B组省赛习题 习题B:生日蜡烛 我们可以立刻想到等差数列求和,那就是Sn = (n0 + n)* (n - n0 + 1)/ 2 Sn = 236,很明显这里有两个 ...

  5. 问题 1819: [蓝桥杯][2014年第五届真题]Log大侠

    问题 1819: [蓝桥杯][2014年第五届真题]Log大侠 时间限制: 1Sec 内存限制: 128MB 提交: 236 解决: 173 题目描述  atm参加了速算训练班,经过刻苦修炼,对以2为 ...

  6. 地宫寻宝java_蓝桥杯 2014年 第五届 迷宫寻宝 详解(JAVA)

    蓝桥杯 2014年 第五届 迷宫寻宝 详解(JAVA) 基础思路(DFS) package provincial_2014B; import java.util.Scanner; /** * 该题有两 ...

  7. 蓝桥杯2015年第六届C/C++ B组省赛习题题解

    目录 第一题:奖券数目 第二题:星系炸弹(日期计算) 第三题:三羊献瑞(全排列) 第四题:格子中输出 第五题:九数组分数(dfs) 第六题:加法变乘法(枚举) 第七题:牌型种数(dfs+dp) 第八题 ...

  8. 蓝桥杯大学组python试题_第十届蓝桥杯2019年C/C++ 大学A组省赛试题

    2019年蓝桥杯第十届软件类省赛 C/C++ 大 学 A 组 试题 A: 平方和 本题总分:5 分 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣,在 1 到 40 中这样的数包括 1 ...

  9. [蓝桥杯][2014年第五届真题]地宫取宝(记忆化搜索)

    题目描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...

最新文章

  1. 最短路合集(Dijkstra、SPFA、Floyd以及路径还原模板)
  2. python调用自定义函数返回值的类型_生成dll文件以及python对DLL中函数的调用(参数类型以及返回值)...
  3. python_104_面向对象总结
  4. MIT开发AI新工具,替设计师“省材料钱”:支持实时预览、兼容CAD软件丨开源...
  5. 互联网协议 — TCP — 流量控制(网络质量保障)
  6. RocketMQ 消息丢失场景及解决办法
  7. Py:利用pyautogui实现自动将pdf文件(需手动设定pdf总页数)自动翻页并截取另存为图片形式,或自动隔0.1秒自动截笔记本全屏保存到指定文件夹
  8. Oracle原理:11g的体系结构
  9. AGC011D - Half Reflector(模拟)
  10. PS教程第十八课:放大缩小
  11. 【转】ABP源码分析四十七:ABP中的异常处理
  12. 线性代数:线性方程组的解
  13. 鸿蒙系统-手机-HAP开发编译调试
  14. jQuery基础资料
  15. JQuery插件Fullpage说明文档
  16. thinkpad systemupdate 下载软件存放的位置
  17. 【HTML/CSS】表单美化
  18. C# winform实现系统托盘NotifyIcon控件右键菜单
  19. 如何让计算机自动重启,教你如何实现让win7系统电脑定时自动重启
  20. 信息系统安全实验(一):InterNIC、Nslookup、Sam spade、Nmap、Nessus的使用

热门文章

  1. PHP:使用curl请求聚合支付的驾考宝典题库接口数据, 并渲染到页面上;composer 常用的指令;mvc pathinfo 路由映射实现
  2. 技术招聘官和候选人在各自视角下对于薪资和能力匹配问题看法
  3. linux命令行elasticsearch查询工具es2unix
  4. k-近邻算法(KNN)Python实现
  5. Ubuntu Linux上的Joomla安装
  6. 凤翅医话——小方巧治慢鼻炎
  7. 教你如何在短期内取得考博英语的高分成绩
  8. 基于JavaSpringBoot+Vue+uniapp微信小程序实现在线房屋装修管理系统
  9. 医学实验室装修材料要求那些点
  10. 数据清洗(二):岗位职责与要求的分离