leetcode-157周赛-5215黄金矿工】的更多相关文章

题目描述: 方法一:dfs class Solution: def getMaximumGold(self, grid: List[List[int]]) -> int: maxx = 0 R, C = len(grid), len(grid[0]) def dfs(r, c, visited, count): nonlocal maxx count += grid[r][c] maxx = max(maxx, count) visited.add((r, c)) for nr, nc in […
题目: 5215. 黄金矿工 你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为 m * n 的网格 grid 进行了标注.每个单元格中的整数就表示这一单元格中的黄金数量:如果该单元格是空的,那么就是 0. 为了使收益最大化,矿工需要按以下规则来开采黄金: 每当矿工进入一个单元,就会收集该单元格中的所有黄金. 矿工每次可以从当前位置向上下左右四个方向走. 每个单元格只能被开采(进入)一次. 不得开采(进入)黄金数目为 0 的单元格. 矿工可以从网格中 任意一个 有黄金的单元…
传送门 Description 黄金矿工是一个经典的小游戏,它可以锻炼人的反应能力.该游戏中,可以通过“挖矿”获得积分并不断升级.玩家可以在线玩flash版黄金矿工,也可以下载后玩单机版黄金矿工.目前,黄金矿工小游戏有多个版本,例如黄金矿工双人版,黄金矿工单人版等. Jimmy是一位黄金矿工,他所在的金矿是一个n*n的矩形区域(俯视),区域内有黄金.石头和TNT,由一个 n*n的矩阵描述.黄金的价值对应矩阵中的正值,石头的价值对应矩阵中的负值,TNT由0表示.换句话说,挖到黄金赚钱,石头亏损,如…
题目描述 小A最近迷上了在上课时玩<黄金矿工>这款游戏.为了避免被老师发现,他必须小心翼翼,因此他总是输.在输掉自己所有的金币后,他向你求助.每个黄金可以看做一个点(没有体积).现在给出你N个黄金的坐标,挖到它们所需要的时间以及它们的价值.有些黄金在同一条直线上,这时候你必须按顺序挖.你可以瞬间把钩子转到任意角度.请你帮助小A算出在时间T内他最多可以得到多少价值的金子. 输入输出格式 输入格式: 第一行,两个整数N和T,表示黄金的个数和总时间.接下来N行,每行四个整数x,y,t,v分别表示黄金…
题目描述: 给定一个二维网络,给定任意起点与终点.每一步可以往4个方向走.要找出黄金最多的一条线路. 很明显的是要“一条路走到黑,一直下去直到某个条件停止”. 运用dfs(深度优先搜索)求解. 因为起点任意,所以从每个点开始搜,接着每个点又搜相邻点.反复如此. 递归的终止条件: 1:越界. 2:搜到已经走过的点也终止. 3:遇到黄金数量为0的点. 用一个形参变量sum存储每条线路的当前黄金数量. 每一次更新返回值res的值. 搜一个点先将其标记,再搜其4个方向相邻点,搜完相邻点后取消原标记. 解…
记$dep_{x}$为1到$x$的边权和,当$x$上的矿工挖了$y$上的黄金时($y$在$x$子树内),显然$\sum_{e}c_{e}=dep_{y}-dep_{x}$ 由此,对于$u$上权值为$v$的矿工(或黄金),不妨修改其权值为$v-dep_{x}$(或$v+dep_{x}$) 此时,矿工挖黄金的收益即两者的权值和(同时黄金要在矿工子树内),因此我们仅关心于挖了黄金的矿工和被挖的黄金,而不关心具体谁挖了谁 根据Hall定理,当选择了若干个黄金和矿工后,判断是否合法仅需要保证: 1.选择的…
The API: int read4(char *buf) reads 4 characters at a time from a file.The return value is the actual number of characters read. For example, it returns 3 if there is only 3 characters left in the file.By using the read4 API, implement the function i…
The API: int read4(char *buf) reads 4 characters at a time from a file. The return value is the actual number of characters read. For example, it returns 3 if there is only 3 characters left in the file. By using the read4 API, implement the function…
Problem: The API: int read4(char *buf) reads 4 characters at a time from a file. The return value is the actual number of characters read. For example, it returns 3 if there is only 3 characters left in the file. By using the read4 API, implement the…
甚至都不是树形背包= = 把每条线抠出来,这一条线就是个链的依赖关系,随便背包一下 // luogu-judger-enable-o2 #include<bits/stdc++.h> #define il inline #define vd void typedef long long ll; il int gi(){ int x=0,f=1; char ch=getchar(); while(!isdigit(ch)){ if(ch=='-')f=-1; ch=getchar(); } wh…
一个坐标可以从 -infinity 延伸到 +infinity 的 无限大的 棋盘上,你的 骑士 驻扎在坐标为 [0, 0] 的方格里. 骑士的走法和中国象棋中的马相似,走 “日” 字:即先向左(或右)走 1 格,再向上(或下)走 2 格:或先向左(或右)走 2 格,再向上(或下)走 1 格. 每次移动,他都可以按八个方向之一前进. 现在,骑士需要前去征服坐标为 [x, y] 的部落,请你为他规划路线. 最后返回所需的最小移动次数即可.本题确保答案是一定存在的. 示例 : 输入:x = , y…
给你一个矩阵 mat,其中每一行的元素都已经按 递增 顺序排好了.请你帮忙找出在所有这些行中 最小的公共元素. 如果矩阵中没有这样的公共元素,就请返回 -1. 示例: 输入:mat = [[,,,,],[,,,,],[,,,,],[,,,,]] 输出: 解法: 暴力解法  就是使用哈希记录每行 然后比较 代码 class Solution { public: unordered_map<]; int smallestCommonElement(vector<vector<int>&…
题目链接 给你一个整数数组 arr 和一个整数值 target . 请你在 arr 中找 两个互不重叠的子数组 且它们的和都等于 target .可能会有多种方案,请你返回满足要求的两个子数组长度和的 最小值 . 请返回满足要求的最小长度和,如果无法找到这样的两个子数组,请返回 -1 . 一个map用来保存从0-index i 的前缀和以及索引 ------mp[前缀和] = 索引 一个dp用来保存不大于目前索引i的最小长度的子数组长度, 如果不存在, 则为maxn 用一个sum做累加, 同时对…
1604. 警告一小时内使用相同员工卡大于等于三次的人 题目链接 题意 给定两个字符串数组keyName和keyTime,分别表示名字为keytime[i]的人,在某一天内使用员工卡的时间(格式为24小时制,"HH:MM").你要找出一小时内使用员工卡大于等于3的人,名字按字典序升序排列.注意,"23:51"-"00:10"不被视为一小时内,因为系统记录的是某一天内的使用情况 分析 给每个人创建一个数组,记录所有的打卡时间,然后将每个人名字字符串…
1589. 所有排列中的最大和 #差分 #贪心 题目链接 题意 给定整数数组nums,以及查询数组requests,其中requests[i] = [starti, endi] .第i个查询求 nums[starti] + nums[starti + 1] + ... + nums[endi - 1] + nums[endi] 的结果 . 你可以任意排列 nums 中的数字,请你返回所有查询结果之和的最大值,请将答案对 109 + 7 取余 后返回. 分析 我们先离线获得需要查询的区间,并统计该…
5492. 分割字符串的方案数 #组合公式 #乘法原理 #区间分割 题目链接 题意 给定01二进制串\(s\),可将\(s\)分割为三个非空 字符串\(s_1,s_2,s_3\),即(\(s_1+s_2+s_3=s\)).现要你求出分割\(s\)的方案数,保证\(s_1,s_2,s_3\)中字符1的数目相同(对\(1e9+7\)取模),他们的长度不一定相等 分析 举个例子,01100011000101串,可以知道三个子串必须包含2个'1',我们观察到左子串的界限,可以如下划分:011|00011…
5480. 可以到达所有点的最少点数目 #贪心 题目链接 题意 给定有向无环图,编号从0到n-1,一个边集数组edges(表示从某个顶点到另一顶点的有向边),现要找到最小的顶点集合,使得从这些点出发,能够到达图中所有顶点. 样例 输出为[0, 2, 3].从这三个顶点出发即能访问所有顶点. 分析 实际上,只需要将所有入度为0的顶点加入解集即可.因为:1.入度为0的顶点若不加入解集,则除了它以外,没有其他顶点能够沿途访问到它.2.入度不为0的顶点一定能被某个顶点沿途访问到,为了保证解集尽可能小,那…
1540 K次操作转变字符串 #计数 题目链接 题意 给定两字符串\(s\)和\(t\),要求你在\(k\)次操作以内将字符串\(s\)转变为\(t\),其中第\(i\)次操作时,可选择如下操作: 选择字符串\(s\)中满足 \(1 \leq j \leq s.length\) 且之前未被选过的任意下标 \(j\)(下标从1开始),并将此位置的字符恰好切换 \(i\) 次.切换 1 次字符即用字母表中该字母的下一个字母替换它(字母表环状接起来,所以$'z'切换后会变成 \('a'\)). 请记住…
5629. 重新格式化电话号码 模拟 注意一些细节,最后位置是否取值. class Solution { public: string reformatNumber(string number) { string s; for (auto c: number) if (c != ' ' && c != '-') s += c; string res; for (int i = 0; i < s.size();) { if ((int)s.size() - i > 4) res…
题意: 给你一个数组 arr ,该数组表示一个从 1 到 n 的数字排列.有一个长度为 n 的二进制字符串,该字符串上的所有位最初都设置为 0 . 在从 1 到 n 的每个步骤 i 中(假设二进制字符串和 arr 都是从 1 开始索引的情况下),二进制字符串上位于位置 arr[i] 的位将会设为 1 . 给你一个整数 m ,请你找出二进制字符串上存在长度为 m 的一组 1 的最后步骤.一组 1 是一个连续的.由 1 组成的子串,且左右两边不再有可以延伸的 1 . 返回存在长度 恰好 为 m 的…
今天参加了leetcode的周赛,算法比赛,要求速度比较快.有思路就立马启动,不会纠结是否有更好的方法或代码可读性.只要在算法复杂度数量级内,基本上是怎么实现快速就怎么来了. 比赛时先看的第二题,一看题就有了思路,直接用的广度优先搜索,写完提交正确.再一看有人都做了3道题了,应该是职业选手了,要多像他们看齐. 之后看第一题,发现直接用贪心就能做,写了个双重循环,一次过掉. 第三题求最优连续子数组和,想到是动态规划.然后在处理代码细节上花了很长时间,中间提交还错了一次,在十一点半左右提交通过. 再…
这算是我第一次正式参加 LeetCode 的周赛吧.通过两道题.意料之中(通过上次模拟可以看出来).总的来说,脑袋还是不太灵光.想的有点慢.全球第一名 0:10:19 就全部通过...感觉我的智商被狠狠的摁在地上摩擦了. 参考:huntersjm 5175. 构建回文串检测 我第一次提交的直接 TLE.然后就没有然后了. TLE 代码的思路(可以不看): 定义一个 int 型的 notParesNum 保存字母个数为奇数的字母的数量. 每次检测,将 [left, right] 字串取出,统计里面…
a:excellent几乎一次ac或只有点小bug很快解决:半年后再重刷: b:经过艰难的debug和磕磕绊绊或者看了小提示才刷出来: c:经过艰难的debug没做出来,看答案刷的: 艾宾浩斯遗忘曲线数列:1,2,4,7,15,31 当天做的题目为0,将标注1 2 4 7 的题目做一遍,每天 1(new)+4(review) leetcodexxxx xxxxxx 12)leetcode30 串联所有单词的子串(hard,)c0 11) leetcode25 K 个一组翻转链表(hard,链表)…
Creator开源游戏.插件.教程.视频汇总 来源 http://forum.cocos.com/t/creator/44782 王哲首席客服   17-03-17    4   史上最全,没有之一. 文中的内容,大量参考了Natnas的集合贴.谁睡觉叫整理的资源汇总这两个帖子.但是南塔斯的帖子在去年年底就停更了,谁睡觉叫还不太熟练用markdown,而且里面缺少了官方的视频和教程链接.所以我自己就花了一早上,把官方发布的.社区发布的各种学习资料汇总整理了一下,形成这个集合帖.如果你发现自己的好…
DFS 深度优先搜索 主要有两种实现方法:栈和递归 什么是DFS?说白了就是一直遍历元素的方式而已,我们可以把它看成是一条小蛇,在每个分叉路口随意选择一条路线走,直到撞到南墙,才会调头返回到上一个分叉路口,走另外一条路,有时候运气很好,撞到了目标点,那么这个算法就结束了. 模板: 参数1 DFS(参数2) {     if(返回条件成立) return 参数 :     DFS(进行下一步的搜索遍历) : 回朔: } 1)if 语句: 作用就是告诉小蛇:是否撞到南墙啦?撞到就返回啦,或者,是否到…
本人收藏了几个有意思的Flash,在此与大家分享下 1.黄金矿工中文版.swf 2.中国象棋.swf 3.运动的老鼠.swf 4.时钟.swf 5. 2048.swf 6.小猫逃跑.swf…
B - Gold miner Time Limit:2000MS      Memory Limit:32768KB     Description Homelesser likes playing Gold miners in class. He has to pay much attention to the teacher to avoid being noticed. So he always lose the game. After losing many times, he want…
可学习的demo: 7个实战项目 flappybird(飞扬小鸟).popstar(消灭星星).fruitninja(水果忍者).2048(数度消除). moonwarriors(月亮战神).fruitattack(水果粉碎传奇).testsjavascript(样例手冊), 代码所有开源,可在本博客里面寻找或者github下载. 即将撰写的计划项目 Doodle Jump (涂鸦跳跃) Ski Safari(滑雪大冒险) 黄金矿工(Gold Miner)等等... . . 前言 笔者学java…
比赛前三天才得到省赛的非正式参赛名额,总有点哭笑不得,笑的是是我的终究是我的,跑不掉…… 哭的是现在就剩三天了,虽然最近也一直在参加训练赛,但一直是断断续续的,对自己现在的水平并没有太大的信心…… 虽然没有了我翻译无敌的江苏学霸,但临时而又不临时的两个队友还是挺给力的~ 第一次和教主和杨丰瑞组队,虽然平时关系很好,但比赛风格还不是很了解,不过熟悉就好,两个队友性格都挺好的,很好接触,这就够了~ 下午着急忙慌地去买了本字典,本来想去借的,后来一想,别人的字典太大拿着不方便,再说有也不能总借啊,还是…
[C#] 使用 C# 编写自己区块链的挖矿算法 文章原文来自:Code your own blockchain mining algorithm in Go! ,原始文章通过 Go 语言来实现的,这里仍然是承接上一篇文章,来使用 C# + .Net Core 实现我们的挖矿算法. 强烈建议阅读前先阅读这篇文章 什么是加密货币挖掘? 一个加密货币的价值体现在它的稀缺性上,如果任何人都可以任意构造一个比特币,那么比特币就毫无价值,所以比特币的区块链会让参与者完成一项"工作",根据这个工作的…