• 2024-07-047.4
    1005.K次取反后最大化的数组和题意描述:[!NOTE]给你一个整数数组nums和一个整数k,按以下方法修改该数组:选择某个下标i并将nums[i]替换为-nums[i]。重复这个过程恰好k次。可以多次选择同一个下标i。以这种方式修改数组后,返回数组可能的最大和。示例1:输入
  • 2024-07-037.3
    题目分类大纲如下:算法公开课《代码随想录》算法视频公开课(opensnewwindow):贪心算法理论基础!(opensnewwindow),相信结合视频再看本篇题解,更有助于大家对本题的理解。什么是贪心贪心的本质是选择每一阶段的局部最优,从而达到全局最优。这么说有点抽象,来举一个例子:例如
  • 2024-07-022024.7.2 集训
    ###数位DP1.记录:1.是否顶上限;2.是否当前填了的都是前导$0$;3.当前位是否是从左往右数第一位。(2和3是两种做法,2是在Query里只调用一次DFS,3是在Query里枚举第一个非$0$位调用多次DFS)。2.记忆化的数组可以不用记所有内容。3.注意DFS返回时要返回res,而不是记
  • 2024-07-01ABC 360
    submissionsA,B直接暴力。C我们发现在多余\(1\)个东西的箱子一定会有多的一部分被移走,我们贪心地移走花费少的。D发现必须是面对面的蚂蚁才能相遇。并且距离小于等于\(2T\)。直接二分即可。E这一场最有思维量的题。我们记录一个目前的期望位置\(x\),每一次操作有\(fra
  • 2024-07-01贪心经典例题:均分纸牌
    希望粉丝破50. 贪心实际上就是把眼前的利益最大化,如果你要做出这道题你一定要找出贪心原则。贪心原则https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=%E8%B4%AA%E5%BF%83%E5%8E%9F%E5%88%99&fenlei=256&rsv_pq=0xb087efe300ab5a2d&rsv_t=78216%2Bh
  • 2024-06-23贪心推公式——AcWing 125. 耍杂技的牛
    贪心推公式定义贪心算法是一种在每一步选择中都采取在当前状态下最优的选择,希望通过局部的最优选择来得到全局最优解的算法策略。运用情况问题具有最优子结构,即一个问题的最优解包含其子问题的最优解。可以通过局部最优决策逐步推导到全局最优。问题的选择策略相对明确且易
  • 2024-06-23最小生成树
    最小生成树最小生成树也是一种常见的有权无向图问题,为了解决此问题,引出了本章的两个算法。​ 本章将包括:目录最小生成树一.基本概念1.什么是最小生成树?2.\(MST\)算法的思路二.\(kruskal\)算法1.算法思路2.代码详解3.算法总结三.\(Prim\)算法1.算法思想2.代码详解3.算法
  • 2024-06-22【离散数学·算法】(复习)
    一、1.算法的属性:1.输入。2.输出。3.正确性。4.有穷性(有限步数)。5.有效性(有限时间内正确执行每个步骤)。6.泛化性。2.指定算法:可用语言or伪代码来描述二、三类问题1.搜索问题:(1)线性搜索:从头到尾一个一个检查。(2) 二分搜索:(假设排列是按递增顺序的)(找到:返回位置;
  • 2024-06-20【算法与设计】期末总结
    文章目录第一章概述算法与程序时间复杂性求上界第二章递归与分治双递归函数——Ackerman函数分治策略大整数乘法两位×两位四位x四位三位x三位两位x六位第三章动态规划矩阵连乘基本要素最优子结构子问题重叠备忘录第四章贪心算法活动安排问题基本要素贪心选
  • 2024-06-18蓝桥杯课程-贪心算法讲解
    1.区间调度问题问题描述在有限的区间范围内,选择完成最多的任务组合解决策略我们可以思考的策略有:1.最早开始时间(begin)2.最早结束时间(end)3.用时最少(end-begin)1.我们这里首先定方向:从区间最左端向右开始选择。2.我们很容易想到的策略是选择用时最少的情况,但是试想如果
  • 2024-06-18小于n的最大数 - 贪心算法及证明 - 附python实现
    一、问题描述?    给定一个整数n,并从1~9中给定若干个可以使用的数字,根据上述两个条件,得到每一位都为给定可使用数字的、最大的小于整数n的数。    例如,给定可以使用的数字为{2,3,8}三个数:    给定n=3589,输出3388;给定n=8234,输出8233;…… 二、解
  • 2024-06-16算法精粹:经典计算机科学问题的 Python 实现 (David Kopec)
    书:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqso书籍简介:介绍了本书的作者、出版背景以及主要目的,即帮助读者深入理解算法原理,并通过Python实现解决计算机科学中的经典问题。Python语言基础:简要介绍了Python语言的特点和优势,为后续使用Python实现算法打下基础
  • 2024-06-10trick
    trick:\(x\)与各位数之和模\(9\)同余(CF10D)st表和线段树可以存gcd(CF10D)注意函数增减性(CF1632D)dp时若下标太大,可以调换下标和存储的数值(CF1974E)贪心不成立时,可以用反悔贪心(CF1974G)乘法总是比加法更优(CF1872G)注意点:题目部分:数组范围注意不要开错(记得修改缺省源)。
  • 2024-06-09反悔贪心学习笔记
    算法:反悔贪心,顾名思义就是贪心的时候反悔。意思是:如果这一步的贪心不是全局最优解,就退回去一步,换一种贪心策略。一般分为反悔自动机和反悔堆。反悔自动机基本的思路是:每次选择直观上最接近全局最优解的贪心策略,若发现最优解不对,就想办法自动支持反悔策略。反悔堆则
  • 2024-06-04强化学习(一) 基本概念和赌博机问题
    文章目录什么是强化学习强化学习的两个基本特征强化学习的其它特征强化学习不同于有监督学习强化学习不同于无监督学习强化学习不同于进化方法强化学习的独特挑战强化学习典例强化学习的要素强化学习的适用范围强化学习学术主线解决强化学习问题的一般框架赌博机两个影
  • 2024-06-03【反悔贪心】算法讲解
    目录cf865D 环形喂猪建筑抢修                cf865D思路:我们贪心的原则是尽可能的多卖,而且尽可能的卖的多。整体的贪心思路就是能卖就卖,卖完后放入堆中(以便反悔),先不考虑能卖多少,因为堆是按照价格从小到大排序,把最优的选择放在最前面。在遍历到
  • 2024-06-01洛谷1090 合并果子 【贪心】
    [NOIP2004提高组]合并果子/[USACO06NOV]FenceRepairG题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出
  • 2024-05-30C语言贪心算法——解硬币
    题目:有1元,5元,10元,100元,500元的硬币各从c1枚,c5枚,c10枚,c50枚,c100枚,c500枚,现在要用这些硬币支付A元,最少需要多少枚硬币输入:第一行有六个数字,分别代表从小到大6种面值的硬币的个数:第二行为A案例:输入:321302620输出:6#include<stdio.h>intmain(){ intnumber[6]
  • 2024-05-26「贪心算法」摆动序列
    力扣原题链接,点击跳转。如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。简单来说,摆动序列的特点是:后一个数交替地比前一个数大或者小。给你一个数组,请
  • 2024-05-25简单的贪心(一)
    礼物 查看测评数据信息国庆马上要到了。小明喜欢的礼物有n种分别是:公仔、电子手表、漫画书等。每种礼物有一件,每种礼物价钱都不一样。小明手头上有m元。小明最多可以买多少件礼物?输入格式第一行,两个整数:nm 1<=n<=100,1<=m<=100000。第二行,n个空格分开的整数(
  • 2024-05-23《分数背包问题》快速求解(贪心法)
    目录前言一、贪心策略二、具体步骤实例如下:三、代码实现伪代码:C++代码:     总结前言分数背包问题:在分数背包问题中,物品可以被分割成更小的部分,可以部分装入背包,而不是只能选择整个物品装入或不装入背包。一、贪心策略贪心法在解决分数背包问题时
  • 2024-05-235.10T2
    给定一个01串,Alice和Bob轮流选择一个"01"子序列进行删除,Alice想要尽可能多,Bob想要尽可能少。求进行多少轮(要求整轮)。Alice一定会删相邻的,Bob一定会删首尾。正常做只能贪心,发现贪不动。然后最优化问题,有单调性,不妨考虑二分为\(k\)。判断根据贪心思想发现只需要保留前
  • 2024-05-23【CodeChef】Change A to B(贪心)
    题目大意:每次操作可以使\(a\)变成\(a+1\)或\(a\cdotk\),问将\(a\)变成\(b\)最少需要几次操作。将题目等价转化为,将\(b\)变成\(a\)最少需要几次以下操作:操作1:将\(b\)变成\(b-1\)。操作2:如果\(b\)能被\(k\)整除,将b变成\(\frac{b}{k}\)。考虑贪心,当能够使用操作2时优先使用操作
  • 2024-05-22反悔贪心
    1.介绍贪心:即考虑局部最优解达到全局最优解的目的,但有时局部最优解并不会达到全局最优解,此时有两种思考方向,dp和反悔贪心dp:能全局计算答案,根据拓扑学的DAG实现状态转移达到最优(这里不过多介绍)反悔贪心:根据之前的决策进行反悔操作,主要用反悔堆实现去除性价比最低的决策,达到
  • 2024-05-22力扣2589 5.16
    原题网址:此处为链接个人难度评价:1700分析:原本的想法是按开始时间排序后遍历,然后贪心的把下一段的和这一段的放一起,发现不够放了就把不够的算出来截为新的一段。最后发现其实有后效性。正解的贪心是:按结束时间排序后(当然是升序),贪心的把本段的都放最后。每次放的时候先检查本区