
算法常用技巧
算法常用技巧
省下洗发水钱买书
个人邮箱:chenyang1001@yeah.net
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2018年蓝桥杯C/C++ B组省赛 试题H:日志统计题解
文章目录题目描述输入格式输出格式输入样例输出样例解题思路解题代码题目描述小明维护着一个程序员论坛。现在他收集了一份"点赞"日志,日志共有N行。其中每一行的格式是:ts id表示在ts时刻编号id的帖子收到一个"赞"。现在小明想统计有哪些帖子曾经是"热帖"。如果一个帖子曾在任意一个长度为D的时间段内收到不少于K个赞,小明就认为这个帖子曾是"热帖"。具体来说,如果存在某个时刻T满足该帖在[T, T+D)这段时间内(注意是左闭右开区间)收到不少于K个赞,该帖就曾是"热帖"。给定日志,请你帮助小明统原创 2020-12-21 13:15:17 · 485 阅读 · 0 评论 -
2018年蓝桥杯C/C++ B组省赛 试题F:递增三元组题解
文章目录题目描述输入输出样例输入样例输出算法思路解题代码1.二重循环 O(n * n * logn))2.一重循环 O(n * logn)错题总结**upper_bound和lower_bound的用法**1、在从小到大的排序数组中,2、在从大到小的排序数组中题目描述给定三个整数数组A = [A1, A2, … AN],B = [B1, B2, … BN],C = [C1, C2, … CN],请你统计有多少个三元组(i, j, k) 满足:1、1 <= i, j, k <=原创 2020-12-21 13:12:53 · 241 阅读 · 0 评论 -
2020 蓝桥杯大学模拟赛(三) - 程序设计:分披萨题解
文章目录题目描述输入格式输出格式数据范围样例输入样例输出算法分析解题代码题目描述由于太久没有⻅到朋友们,⼩明这天晚上做了⼀个甜美的梦。这天⼀共有n个同学⼀起聚餐,他们⼀共点了m块披萨,每块披萨的⼤⼩不尽相同,分别为 ai 。 现在遇到了⼀个尴尬的问题,由于⼩明是⼀个正直的⼈,他希望在场的所有⼈分得的披萨⼀样⼤, 但披萨只能被切成整数⼤⼩,不同的披萨之间也不能拼接。现在他想知道,每个⼈最多能吃到多⼤ 的披萨呢。输入格式第⼀⾏包含两个整数 , 表示有 n 个同学和 m 块披萨。接下来⼀⾏ m 个原创 2020-12-19 09:35:42 · 929 阅读 · 0 评论 -
坐标离散化(挑战程序设计竞赛)
文章目录坐标离散化题目描述算法思路挑战程序书中代码代码解疑解题代码坐标离散化当区域的坐标很大时,无法直接使用搜索算法,但是图可以通过缩放,达到同样的效果。这种坐标缩放,就称为坐标离散化题目描述算法思路书上给的样例太坑了,你会发现最后这个样例,根本没有离散化所以这里给出另一组样例:10 10 42 2 8 22 8 8 83 3 3 88 3 8 8这个样例的变换结果:挑战程序书中代码#include <iostream>#include <vecto原创 2020-12-19 09:28:50 · 226 阅读 · 1 评论 -
尺取法(挑战程序设计竞赛)
文章目录尺取法例题1题目描述输入描述输出描述输入输出算法分析解题代码例题2题目描述输入描述输出描述输入输出算法分析代码尺取法尺取法一般用于求子序列的和、乘积等,给遍历求权值以一个更低的时间复杂度的方法。反复地推进区间的开头和结尾,来求取满足条件的最小区间的方法 例题1题目描述给出了N个正整数序列**(10 < N < 100,000),每个正整数小于或等于10000**,一个正整数S (S < 100 000 000)。编写一个程序,求序列中连续元素的子序列的最小长度,其和原创 2020-12-19 09:27:41 · 278 阅读 · 0 评论 -
反转(开关问题)(挑战程序设计竞赛)
文章目录例题1题目描述输入描述输出描述输入输出提示算法分析代码例题2题目描述输入描述输出描述输入输出算法分析解题代码例题3:例题1题目描述农场主约翰把他的**N(1 ≤ N ≤ 5,000)**头奶牛排成一排,很多都是面向前方的,就像好奶牛一样。然而,有些人是面向过去的,而他需要所有人都面向未来,以使他的生活变得完美。幸运的是,FJ最近买了一台自动翻牛机。因为他购买的是折扣型,所以必须一次性转**K(1 ≤ K ≤ N)**头,且只能转排在一起的奶牛。每次使用该机器时,它都会反转该行中一个连续的K原创 2020-12-19 09:25:46 · 391 阅读 · 0 评论 -
二分搜索算法专题(挑战程序设计竞赛)
文章目录二分搜索算法的四大应用一、从有序数组中查找某个值例题:代码:二、假定一个解并判断是否可行例题:题目描述输入描述输出描述输入输出解题思路代码:三、最大化最小值例题:题目描述输入描述输出描述输入输出提示算法分析代码:四、最大化平均值例题:算法分析代码:关于二分精度的总结二分搜索算法的四大应用二分搜索法,是通过不断缩小解可能存在的范围,从而求得问题最优解的方法。一、从有序数组中查找某个值这是二分搜索最常规的操作,在一个有序的数组中查找某个值 例题: 代码://输入int n, k原创 2020-12-18 11:36:47 · 566 阅读 · 0 评论 -
牛客小白月赛4-F-等价串题解
文章目录题目描述输入分析输出分析输入输出说明算法分析解题代码链接:https://ac.nowcoder.com/acm/contest/134/F来源:牛客网题目描述一串长度为 n 的字符串 A 和一串长度为 m 的字符串 B。并且这两串字符串只会含有 0 或 1 。铁子可以对字符串 A 执行两种操作,两种操作可以执行任意次。操作1(无情替换):铁子可以用 11 替换掉 0 ,也可以用 00 替换掉 1 .操作2(极限删除):铁子可以删除掉 111 ,也可以删除 000 .现在问,字原创 2020-12-18 10:11:31 · 159 阅读 · 0 评论 -
牛客小白月赛4-H-相邻的糖果题解
文章目录题目描述输入描述输出描述输入输出说明算法分析解题代码链接:https://ac.nowcoder.com/acm/contest/134/H来源:牛客网题目描述有 n 个盒子摆成一排,每个盒子内都有ai 个糖果。现在你可以执行以下操作:你可以选择任意一个盒子,在选择的盒子内吃掉一个糖果。对你的要求如下:任何m个相邻的盒子内糖果数量不能超过x个。请问,实现要求的最少操作次数是多少?输入描述第一行三个数字n, m, x(2 ≤ n,m ≤ 106,1 ≤ x ≤ 1原创 2020-12-18 10:01:06 · 422 阅读 · 0 评论 -
熄灯问题(OpenJ_Bailian - 2811)题解
文章目录题目描述输入要求输出要求样例输入样例输出算法分析想法一:想法二:解题标程错题分析题目描述有一个由按钮组成的矩阵,其中每行有6个按钮,共5行。每个按钮的位置上有一盏灯。当按下一个按钮后,该按钮以及周围位置(上边、下边、左边、右边)的灯都会改变一次。即,如果灯原来是点亮的,就会被熄灭;如果灯原来是熄灭的,则会被点亮。在矩阵角上的按钮改变3盏灯的状态;在矩阵边上的按钮改变4盏灯的状态;其他的按钮改变5盏灯的状态。在上图中,左边矩阵中用X标记的按钮表示被按下,右边的矩阵表示灯状态的改变。对矩阵中的原创 2020-12-17 10:30:45 · 451 阅读 · 0 评论 -
假币问题(OpenJ_Bailian - 269)题解
文章目录题目描述输入要求输出要求样例输入样例输出算法分析算法标程题目描述赛利有12枚银币。其中有11枚真币和1枚假币。假币看起来和真币没有区别,但是重量不同。但赛利不知道假币比真币轻还是重。于是他向朋友借了一架天平。朋友希望赛利称三次就能找出假币并且确定假币是轻是重。例如:如果赛利用天平称两枚硬币,发现天平平衡,说明两枚都是真的。如果赛利用一枚真币与另一枚银币比较,发现它比真币轻或重,说明它是假币。经过精心安排每次的称量,赛利保证在称三次后确定假币。输入要求第一行有一个数字n,表示有n组测试用例原创 2020-12-17 10:30:38 · 200 阅读 · 0 评论 -
关于C++的String用法(新手向)
文章目录1.string常见的定义与初始化方法2.string对象的读写3.string对象的操作4.string对象的常用方法原文链接:https://cnblogs.com/cjlaaa/p/3236727.html如若侵权联系QQ删除。1.string常见的定义与初始化方法//本文所有示例默认都需要引入<string>头文件,下同。#include <string>//string的默认构造函数,定义的s1为空。string s1;//建立一个变量名为s2转载 2020-12-15 11:29:06 · 213 阅读 · 0 评论 -
最大子序列问题四种解题方法
版权声明:本文为优快云博主「YelloJesse」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.youkuaiyun.com/YelloJesse/article/details/82312659tags:最大子序列categories: 算法常用技巧文章目录题目输入格式输出格式输入样例输出样例三重循环(控制子序列长度)代码结果(PTA数据)二重循环(只控制左起点和右终点)代码结果(PTA数据)在线处理(一重循环)代码解释.转载 2020-12-15 11:28:52 · 256 阅读 · 1 评论 -
C++ 读取带空格字符串
最近在写天梯赛题目的时候,被一道题隐性的空格给坑到了。天梯赛模拟赛L1-6 检查密码,少了一个点没过。当时用的cin去读取string字符串,没想到密码里会出现空格。 1.cin和scanfscanf是C中最常用的输入语句,当遇到空格或者回车键即停止cin是C++中最常用的输入语句,当遇到空格或者回车键即停止当输入Hello World时输入Hello后就停止输入了 2.gets可以无限读取,以回车结束读取,C语言中的函数,在C++中运行会产生bug。并且在部分编译器或oj中会出原创 2020-11-17 19:41:30 · 1074 阅读 · 0 评论