题解列表

筛选

[编程入门]三个数找最大值-题解(C++代码)

#MarkDown编辑器基本使用说明**如果这是您第一次使用MarkDown编辑器,建议先阅读这篇文章了解一下Markdown的基本使用方法。**##实时预览、全屏显示![](/image_editor_upload/20190606013233_25630.png)**编辑器左边是输入框,

IP判断-题解(C++代码)

##解题思路-使用string类型变量接受输入值-自定义字符串转数字的函数,自定义flag变量1/0判断ip串是否成立-判断是否有三个点分割,如果少于或大于,flag=0-每一个点分割的字串用一个string接受数字字符#####[原题链接](https://www.dotcpp.com/oj/pro

简单的字符串用STL高效解决(C++代码)

STL里面的Map方法可以很高效的解决这个题,因为mapv中只要添加了字符,不会有重复出现并且还能记录重复了几次,所以代码如下:#include#includeusingnamespacestd;intmain(){intN;chars[10000];cin>>N;while(N--){cin>>s;

蓝桥杯算法提高VIP-五次方数-题解(C++代码)

解题思路:这里不知道为什么,1居然不算在内,题目有没提,真的坑人。数字的上限大致估一下不会超过999999了这样算就可以得到结果了。解题代码:```cpp#includeusingnamespacestd;longlongf(inti){returni*i*i*i*i;}intmain(){longl

蓝桥杯2016年第七届真题-压缩变换-题解(C++代码)

这道题直接按照问题描述的,对于每个数向前找到这个数,并统计之间遇到的数的种类数(使用排序),复杂度为O(n2logn),可以得到约30%的分数。为了高效的解决这个问题,可以建立两棵平衡树。第一棵平衡树用于存储每个数和它最后出现的位置对应的映射。

蓝桥杯2015年第六届真题-生命之树 (C++代码)

「算法描述」首先我们可以枚举每个点是否在S中,只需要判断S是否是一个连通块就可以了。时间复杂度O(n2^n)期望得分30分。我们把这棵无根树定一个根,将其转为有根树。这样每个点就有了深度。令f_v表示如果v一定在点集S中,且S中的所有点均在v这棵子树中时,S的权值和的最大值。

蓝桥杯2015年第六届真题-垒骰子-题解(C++代码)

直接搜索可以得基础分。令f_{i,j}表示用i个骰子,最后一层正面朝上的为j的方案数。由于已知每个面相对的面是哪个面,所以原题的限制相当于:i和j不能相邻等价于i和j的对面不能是相邻两个正面朝上的面。例如,1和2不能相邻表示不能存在相邻两个骰子的正面朝上分别为1和5,也不能是2和4。

JakeLin-题解1218:排列 (C++代码)-不如DFS!

####让我们高举DFS伟大旗帜,解决所有排列问题#冲鸭!![](/image_editor_upload/20200311042547_20127.png)为了方便理解,我画出了1开头的情况的树,其中蓝色箭头即是遍历方向,234开头同理。```cpp#include#include#includeu

不是最短的你来打我!!!<c++>

#include#includeusingnamespacestd;intmain(){inta[4];//定义4个整数!!!cin>>a[0]>>a[1]>>a[2]>>a[3];//输入这几个整数sort(a,a+4);//sort函数头文件:#include//----注意这里是4不是3,