首页 > 其他分享 >力扣1553 2024.5.13

力扣1553 2024.5.13

时间:2024-05-13 09:42:51浏览次数:25  
标签:1553 return int res 13 dfs 力扣 now

原题网址:此处为链接

个人难度评价:1700

分析:
虽然不知道为什么贪心不对,但总之贪心不对。数据如此大也难以DP,那么只有搜索了。显然有一眼可得的搜索记忆化:记忆当只剩下k个果时还需要几天。
值得一提的是,本代码实际上可能并不是一个正解代码,其可能无法在整数域上保证所有答案正确,但在1e9范围内已经可以得到正确答案。
原因为本代码迭代时,针对选择三:吃一个果并没有做出特殊优化。但即使在一定步数后你会把大部分情况都记忆下来使每一次-1的复杂度降低,你也无法让操作过大(起码不能超过1e4)。但把操作限制在1e3内确实可以得到正确答案。理想情况下最多其实30步左右就应该可以把果吃完(每次吃一半甚至吃三分之二),但操作限制在100无法通过。

源码:

// 1553
#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;

class Solution {
public:
    unordered_map<int, int> p;
    int dfs(int h, int now){
        if (now == 0){
            return h;
        }
        if (p.find(now) != p.end())
            return p[now]+h;
        if (h >= 1000)
            return INF;
        int res = INF;
        if (now % 2 == 0){
            res = min(res, dfs(h+1, now/2));
        }
        if (now % 3 == 0){
            res = min(res, dfs(h+1, now/3));
        }
        res = min(res, dfs(h+1, now-1));
        p[now] = res-h;
        return res;
    }

    int minDays(int n) {
        int ans = dfs(0, n);
        return ans;
    }
};

标签:1553,return,int,res,13,dfs,力扣,now
From: https://www.cnblogs.com/TrainerMarvin/p/18188643

相关文章

  • python教程13-异常处理
    异常处理流程:流程示例: 抛出异常自定义异常 ......
  • Intel平台磁盘随机性能遥遥领先!i7-13700KF VS. 锐龙7 7800X3D对比评测
    一、前言:被大部分玩家忽视的SSD随机性能对于磁盘性能,大家可能会比较在意最高顺序读取速度,这也是厂商宣传的重点,不过相信稍微游戏一些DIY常识的玩家应该都知道,SSD随机性能才是影响实际体验的更关键因素。比如现在的PCIe5.0SSD,顺序读取速度已经可以媲美当年的DDR3内存,然而再强的......
  • Python 潮流周刊#50:我最喜欢的 Python 3.13 新特性!
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。本期分享了12篇文章,11个开源项目,2则音视频,赠书5本《黑客与画家(10万册纪......
  • 非常完整的开源无刷电机驱动项目+仅1300行代码的C语言异步网络库+简单到傻瓜都会用的
    1、VESC-非常完整的开源无刷电机驱动项目ESC是ElectricSpeedController的缩写,也就是电子调速控制器,简称电调;项目作者是BenjaminVedder,所以叫VESC,就是本杰明电调。这个项目主要分为几个部分,VESC固件,物料清单,VESC硬件,VESC工具软件,是一个非常完整的软硬件项目,并且配套的软......
  • m1_day13
    课程内容:Object类的核心方法集合框架集合之ArrayList集合Object类的核心方法:Object是Java中的鼻祖类所有类的直接父类/间接父类toString():制定一个对象打印显示的内容任何一个引用数据类型都默认继承Object类获得toString()方法在Object类中toString()......
  • P1352 没有上司的舞会
    链接:https://www.luogu.com.cn/problem/P1352树形dp板子,感觉很巧妙,利用01表示是否取代码:#include<iostream>#include<vector>#include<algorithm>#include<math.h>#include<sstream>#include<string>#include<string.h>#include<iom......
  • vue3 vite项目H5页面 ios13进入页面出现白屏问题
    项目中碰见IOS系统进入页面出现白屏问题,记录一下问题排查过程一、页面可能报错进入页面是白屏,页面的 vconsole 也没有显示,首先想到的是页面是不是有什么报错,然后查看了别的机型,都没有问题,定位到只有IOS13有问题,想着会不会是什么语法在IOS13不兼容(这个问题之前出现过一个......
  • CF1385F Removing Leaves 题解
    看到题,感觉像树形DP,遂设计DP式子。\(dp_u\)表示以\(u\)为根的子树内最多能删多少次(不删\(u\))。那么每次子节点到父节点增加的贡献就是\(\lfloor\frac{子树大小为1的子节点个数}{k}\rfloor\)。得出式子\(dp_u=\sum_{v\inson_u}dp_v+(\sum_{v\inson_u}[dp_v\times......
  • 力扣-232. 用栈实现队列
    1.题目信息2.题解2.1双栈的使用(用栈实现队列)思路我们一开始可能会想到对于每次入栈操作——由于我们可能希望他是加在队尾(栈底)而不是队头(栈首),所以我们就进行一次首尾互换,将instack中的数据倒腾到outstack,由于栈先进后出的特性,所以这时候原来的栈底在头部,我们直接将元素pus......
  • 力扣刷题笔记-21 合并两个有序链表
    其实不回答就是答案双指针classSolution{publicListNodemergeTwoLists(ListNodelist1,ListNodelist2){ListNodedummy=newListNode(-1);ListNodep=dummy;ListNodep1=list1,p2=list2;while(p1!=null&&p2!=nu......