- 博客(15)
- 收藏
- 关注
原创 数梯子 递归和高精度加法 洛谷P1002
斐波那契数列都是f[i] = f[i-2]+f[i-1],但基准情况有点不同,先总结出该题公式。编一个程序,计算共有多少种不同的走法。输入:一个数字,楼梯数。:楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶。
2024-05-23 17:54:04
265
1
原创 两种形式题,一字符串截取,unordered_map,二“桶”(数组里面放数组),求子串
分析:设子串长度为 a。因为a=1次数大于等于a等于其他数(想想是不是),所以记录长度为1时子串最大次数就行。题目:给一个字符串,计算子串(长度大于1)出现次数,最长为多少。用string 里面substr()截取子串。
2024-03-02 17:40:58
190
原创 基础模拟--扫雷游戏,暴力轴对称
分析:memset()清空得到地图,有雷地方标记为1, 剩下模拟即可。分析:暴力做,int read()快读等得分,或read(x)
2024-02-29 23:24:27
188
原创 打分题,用贪心
其实,就好比,最大和第二大非要一决高下,但是第二大就是没法大于最大,争执到最后,第二大也都是为2~(n-1)区间贡献。Step2:计算查看a1...a[n] 裁判分数与 a[n] 裁判的分数是否相等,如果不等,可以通过。思路:想一下贪心的思路。可以发现给最低分裁判加分是没有意义的,所以我们的。(此时的调整是不会影响最高分和最低分的相对位置的);从a[n]~a[2]逐个累加,直到耗尽剩余操作数。Step1:读入全部数据,排序。代码如下,欢迎一起讨论,分析。分数要尽量给到中间的裁判。
2024-02-19 23:10:24
180
1
原创 分巧克力(2017 蓝桥 AB题),二分一下
二分,每块巧克力可分出的数量:H/mid*W/mid 如果得数小于小朋友数(不够分),就往左区间继续尝试(缩小边长),直到大于等于 k 是ture了。题目要求,求解最大正方形巧克力边长。题目分析:考虑枚举会超时,我们采用。
2024-02-19 21:53:20
214
1
原创 打保龄球吗?写个Problem A+B=C,想体验A-B=C吗?寄包柜问题
如上图,每个 “◯” 代表一个瓶子。如果 DL 想要打倒 3 个瓶子就在 1 位置发球,想要打倒 4 个瓶子就在 2位置发球。现在他想 打倒 m 个瓶子。他告诉你每个位置的瓶子数,请你给他一个发球位置。看着得map根据key元素value。代码奉上,找和上面相似哦。
2024-02-18 23:47:06
421
1
原创 RGB(10进制)与16进制转换
定义:int stoi( const std::string& str, std::size_t* pos = nullptr, int base = 10 );一,读入RGB转成字符串 ,即10进制转16进制,采用专门“工具”hex,uppercase,setfill(‘0’),setw();二,16进制转10进制,RGB.观察到需要截取2为长度进行转换,用substr。std::setfilll(‘0’) 当不足要求长度的时候填充’0’来满足长度要求。std::uppercase:可以将输入转为大写。
2024-02-16 23:43:37
609
1
原创 字符串哈希(进制哈希模板题)
比如说orzc的哈希值是233,而orzhjw的哈希值也是233,重了·。解决办法:一是自然溢出大法,二是双哈希,但时间长了点。哈希概述:把字符赋予进制和模数,将每一个字符串映射为一个小于模数数字。进制哈希,采用自然溢出,降低哈希冲突。
2024-02-15 23:42:07
236
1
原创 “栈,队列模拟合集”
题目要求: 假设一个表达式有英文字母(小写)、运算符(+、-、*、/)和左右小(圆)括号构成,以 @ 作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则输出 YES;n 个人围成一圈,从第一个人开始报数,数到 m 的人出列,再由下一个人重新从 11 开始报数,数到 m 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。分析:不用栈的话,x遇到“(”就加,遇到 “)” 就i减。分析:Solution 1:用队列读入,如果报数为m,踢出。
2024-02-14 23:22:02
370
1
原创 在平面直角坐标系中,有两个矩形(保证不相交),然后给出第三个矩形,求这两个矩形没有被第三个矩形遮住的部分的面积。
分析: if 解决麻烦。数学思维:a,b矩形总的面积减over的,S=(x2-x1)*(y2-y1);题目给出三个坐标,分别表示三个矩形的左下、右上坐标。再x_over*y_over就是覆盖面积。
2024-02-13 23:54:12
153
1
原创 给定一个长度为 n的数列 a。定义 rank(i) 表示数列 a 中比 a i小的不同数字个数再加一。对 1<i<n,求rank()
分析:先对数组元素大小排序 sort()就欧克,去重 手写或者unique()新数组在原数组全部元素找大于等于这个数 的第一个数,返回lower_bound()。2024.2.13,东。
2024-02-13 23:46:42
178
1
原创 讨论动态规划,对付采药求最大价值(类似01背包)
还有足够的容量可以装该草药,但装了也不一定达到当前最优价值,所以在装与不装之间选择最优的一个,即V(i,j)=max{V(i-1,j),V(i-1,j-w(i))+v(i)}。其中V(i-1,j)表示不装,V(i-1,j-w(i))+v(i) 表示装了第i个草药,容器容量减少w(i),但价值增加了v(i);现在容器容量比该药草体积小,装不下,此时的价值与前i-1个的价值是一样的,即V(i,j)=V(i-1,j);④把子问题的解局部最优解合成原来解问题的一个解。但回看这题,可不能用贪心,得用动态规划。
2024-02-07 23:18:15
326
1
原创 截取字符串,并输出字符串里数字(使用string相关函数,c++)
判断是否到大写字母结尾。再‘+’或者‘-’判断输出什么,(记住空格,漏了就太不小心了)。istringstream()对输入流进行字符串数字分割操作。大写字母“截取”,用 isalpha函数,返回1或者0。思路分析:根据下标遍历字符串,“截取”。(以上内容如有纰漏,可以评论指正)
2024-01-18 23:23:51
420
1
原创 回文子串,c++(string进行巧妙验证)
回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:“abba”,“cccdeedccc”“abba”,“cccdeedccc”都是回文字符串。第二个for,i必须必须从0,否则要少了,i的循环停止和截取长度有关,不能超过这个字符串长度。两个for,第一个for是长度截取,最短为2,最长为这个字符串长度。思路分析:是否回文字符串,reverse函数反转和原来比较;给定一个字符串,输出所有长度至少为22的回文子串。关键:怎么截取每一段字符串,分别判断是否回文子串。
2024-01-18 15:30:56
494
1
原创 题目描述:将长度为n的数组,循环右移m位(c++处理)
/例如:n=10,k=3;分析:数组有(3 4 5 6 7) n=5右移m=2 应该得到 (6 7 3 4 5)for(int j=0;j++)//输出前面n-k。i++)//第二方法。我们可以移动一个到最前面,其他往后推一位;
2024-01-17 22:24:54
456
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人