2015年蓝桥杯B组C/C++决赛题解
2015年第六届蓝桥杯B组C/C++决赛题解
点击查看2015年第六届蓝桥杯B组C/C++国赛题目(不含答案)
1.积分之迷
三重循环 枚举A,B,C的值,如果满足两个条件:3个A + 7个B + 1个C = 15 ,4个A + 10个B + 1个C = 420 就是一组合法的解。 输出A+B+C就是答案
2.完美正方形
一开始以为很难,看了题解 都是用dfs暴力搜出来的
国赛第二题永远是用dfs解决。。
下面博客dfs的很完美啊!
参考博客:https://blog.csdn.net/liangzhaoyang1/article/details/51571031
思路:dfs(x,y) 正方形想象成边长是47+46+61的网格(每个网格边长为1),
还剩下19个小正方形;
从 (0,0) 网格点开始搜,作为小正方形的(左上角的顶点),枚举19个小正方形放在当前网格里
搜索过程中标记是否使用过这块网格、是否使用过这个小正方形
3.关联账户
并查集思想
4.密文搜索
30%数据点:
按题目要求 全排列子串,用STL内置函数在主串中查找,string.find(s) != string::npos;
30-50%数据:
参考博客:https://blog.csdn.net/u014552756/article/details/51398775
100%数据点:
对于每个子串,先对它排序,从主串中依次截取8位,如果这8位对应的字母个数 等于 子串的各个字母个数,说明匹配上(因为子串顺序可以任意排列的,对比字符出现的次数就能比较是否匹配),可以用哈希表优化查找
参考博客:https://blog.csdn.net/weixin_42765557/article/details/89402941
5.居民集会
10%数据点:
先想到暴力枚举,题目让我们找3个位置当作集会点,那我们就在1~l-1区间内枚举3个集会点,三重循环
参考博客:https://www.cnblogs.com/zhazhaacmer/p/9020089.html
上面博客的做法中,我们有两点我们可以在优化时用到:
1.前三个集合地点肯定是要建在某个人的家里,这样可能更加省时
2.前缀和预处理,sum[i] 表示 1号家庭 到距离起点i 之间 所有家庭到i集会的花费总和,那么sum[i] - sum[j] (j < i) 就可以算出 从j到i之间所有家庭到i集会的花费总和,我们可以在时间复杂度O(n)下完成预处理!
另外,如果没想到暴力枚举和预处理,我们可以用dfs搜索来做这10%的数据,我自己用dfs做的。先不放上代码。
10%-30%数据点:
分治 + 预处理时间复杂度O(l^2n),如果数据比较弱可以过30%数据
参考博客:https://blog.csdn.net/the_best_man/article/details/72472919
上面博客做法,值得参考的点:分治算法。具体怎么分治呢?题目让我们选3个位置当作集会点,也就等于让我们把1~L区域划分成4段,例如样例1~10,我们从1~10中划分4段即可。
缺点:预处理时间复杂度太高了O(l^2n)
100%数据点:
上面博客做法的缺点:作者没有意识到前面我们说的 集会点在某个人家里更省时间,我们把作者的对距离1~L区间分治 改为对家庭1~n分治,再用前缀和预处理sum[i] 就可以完成
我不知道分治算法的时间复杂度怎么分析。。大概能过100%数据,如果过不了,当我没说。。
正常人的做法:DP动规,首先我认为这题和BZOJ 叶子合并 很像。
dp[i][j]表示前i个家庭建立了j个集会点时的最小花费, 自己想的状态转移方程:dp[i][j] = min(dp[i][j], dp[0~i-1][j-1] + sum[i] - sum[0~i-1]) 但是题目中数据n最大达到1e6,两层循环dp肯定不行,那怎么做呢。。我也不知道
6.模型染色
读不懂样例,不写了
2015年蓝桥杯B组C/C++决赛题解的更多相关文章
- 2018年蓝桥杯A组C/C++决赛题解
2018年第九届蓝桥杯A组C/C++决赛题解 点击查看视频题解 点击查看2018年蓝桥杯A组C/C++决赛题目(不含答案) 1:三角形面积 画个图,求三角形面积,可以用外接长方形 - 其他多余区域面积 ...
- 2016年蓝桥杯B组C/C++决赛题解
2016年第七届蓝桥杯B组C/C++决赛题解 2016年蓝桥杯B组C/C++决赛题目(不含答案) 1.一步之遥 枚举解方程,或者套模板解线性方程 #include<bits/stdc++.h&g ...
- 2018年蓝桥杯B组C/C++决赛题解
2018年第九届蓝桥杯B组C/C++决赛题解 点击查看2018年蓝桥杯B组C/C++决赛题目(不含答案) 1.换零钞 ok 枚举 设x表示1元钱的个数,y表示2元钱的个数,z表示5元钱的个数 x+21 ...
- 2017年蓝桥杯B组C/C++决赛题解
2017年蓝桥杯B组C/C++决赛题目(不含答案) 1.36进制 ok 求36进制,类比二进制转10进制,36^3 + 36^2 + 36^1 + 36^0 2.磁砖样式 ok dfs搜索 我自己写的 ...
- 2015年蓝桥杯B组C/C++决赛题目
2015年第六届蓝桥杯B组C/C++国赛题目 点击查看2015年第六届蓝桥杯B组C/C++国赛题解 1.积分之迷 小明开了个网上商店,卖风铃.共有3个品牌:A,B,C. 为了促销,每件商品都会 ...
- 2018年蓝桥杯A组C/C++决赛题目
2018年蓝桥杯A组C/C++决赛题目 2018年蓝桥杯A组C/C++决赛题解 1:三角形面积 已知三角形三个顶点在直角坐标系下的坐标分别为: (2.3, 2.5) (6.4, 3.1) (5 ...
- 2016年蓝桥杯B组C/C++决赛题目
2016年第七届蓝桥杯B组C/C++决赛题目 点击查看2016年第七届蓝桥杯B组C/C++决赛题解 1.一步之遥 从昏迷中醒来,小明发现自己被关在X星球的废矿车里. 矿车停在平直的废弃的轨道上. 他的 ...
- 2017年蓝桥杯B组C/C++决赛题目
2017年第八届蓝桥杯B组C/C++决赛题目 点击查看2017年蓝桥杯B组C/C++决赛题解 1.36进制 对于16进制,我们使用字母A-F来表示10及以上的数字. 如法炮制,一直用到字母Z, ...
- 2018年蓝桥杯B组C/C++决赛题目
自己的博客排版,自我感觉略好一点. 先放上题目. 点击查看2018年蓝桥杯B组C/C++决赛题目题解 1.换零钞 x星球的钞票的面额只有:100元,5元,2元,1元,共4种. 小明去x星旅游, ...
随机推荐
- docker 存储卷 Volumes
一,docker容器面临的困境: 容器运行中产生的数据,是放到容器栈的最顶层,当容器停止并被删除后,这些数据就被删除了. docker采用COW(写时复制)策略,导致性能低下.比如有个mysql容器, ...
- Liu Junqiao:Raid 0 1 5 6 特性
Raid工作原理及优缺点 Raid工作原理及优缺点Raid 0Raid 1Raid 5Raid 6Raid 1 0Raid 5 0Raid 6 0 Raid 0 特点 采用剥离,数据将在几个磁盘上进行 ...
- Java总结转载,持续更新。。。
1.Java中内存划分 https://www.cnblogs.com/yanglongbo/p/10981680.html
- cookie和session及token的区别联系
1 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加响应, 尤其是我 ...
- Java Web 学习(4) —— Spring MVC 概览
Spring MVC 概览 一. Spring MVC Spring MVC 是一个包含了 Dispatcher Servlet 的 MVC 框架. Dispatcher Servlet 实现了 : ...
- 元数据MetaData(五)
JDBC的元数据接口有: DatabaseMetaData数据库级 ResultSetMetaData结果集级 一.DatabaseMetaData 在对数据源进行连接以后,得到一个Connectio ...
- CF785D Anton and School - 2
题目链接 problem 给出一个括号序列,要求删除一些括号使得剩下的括号序列是个匹配的括号序列,且改括号序列左边全部为左括号,右边全部为右括号. solution 考虑枚举左右括号交界的位置\(x\ ...
- 洛谷 P5686 [CSP-SJX2019]和积和
传送门 思路 应用多个前缀和推出式子即可 \(30pts\): 首先如果暴力算的话很简单,直接套三层循环就好了(真的是三层!!最后两个\(sigma\)一起算就好了) \[\sum_{l = 1}^{ ...
- 《细说PHP》第四版 样章 第23章 自定义PHP接口规范 1
如今的项目开发中,接口是很普遍的应用技术.现在好多项目组都单独设有接口开发人员.像腾讯.微博.淘宝等开放平台,其所谓的开放,就是提供一些可调用的接口,用于获取相关的信息.例如,微信用户基本信息.淘宝店 ...
- python学习第一天第二天总结
变量赋值 1, 变量由字⺟, 数字,下划线搭配组合⽽成 2, 不可以⽤数字开头,更不能是全数字 3,不能是pythond的关键字, 这些符号和字⺟已经被python占⽤, 不可以更改 4,不要⽤中⽂ ...