https://leetcode-cn.com/problems/k-highest-ranked-items-within-a-price-range/
//learn
//tuple
//auto [steps, i, j]
//默认sort从前到后 从小到大 nb!
//emplace & emplace_back
const int d[4][2] = {
{
-1, 0}, {
0, -1}, {
0, 1}, {
1, 0}};
class Solution {
public:
vector<vector<int>> highestRankedKItems(vector<vector<int>>& grid, vector<int>& pricing, vector<int>& start, int k) {
int n = grid.size(), m = grid[0].size();
int lo = pricing[0], hi = pricing[1];
int r = start[0], c = start[1];
vector<tuple<int, int, int, int>> ans;//steps, price, i, j
queue<tuple<int, int, int>> q; //step, startx, starty
vector<vector<bool>> vis(n, vector<bool>(m));
//first
q.emplace(0, r, c);
vis[r][c] = true;
//bfs:用bfs是因为每次只扩大一个距离,所以可以用vis标记 之后不查 因为之后查的step肯定更大
while (!q.empty()) {
auto [steps, i, j] = q.front();
if (grid[i][j] >= lo && grid[i][j] <= hi)
ans.emplace_back(steps, grid[i][j], i, j);
q.pop();
for (int t = 0; t < 4; ++t) {
int ni = i + d[t][0], nj = j + d[t][1];
if (ni < 0 || ni >= n || nj < 0 || nj >= m || vis[ni][nj] || grid[ni][nj] == 0)
continue;
q.emplace(steps + 1, ni, nj);
vis[ni][nj] = true;
}
}
sort(ans.begin(), ans.end()); //默认sort从前到后 从小到大 nb!
vector<vector<int>> ret;
for (int i = 0; i < min(k, (int)ans.size()); ++i)
ret.push_back(vector<int>{
get<2>(ans[i]), get<3>(ans[i])});
return ret;
}
};
5986
https://leetcode-cn.com/problems/minimum-cost-to-set-cooking-time/
不需要上来就想细节怎么做
先想模拟的大块
/*
耐心读题 耐心模拟
*/
class Solution {
public:
string normal0(int targetSeconds){
string str;
int second = targetSeconds % 60;
int fen = targetSeconds / 60;
if(fen>99) return "0000";
if(fen<10){
str = "0" + to_string(fen);
}else{
str = to_string(fen);
}
if(second<10){
str += "0" + to_string(second);
}else{
str += to_string(second);
}
return str;
}
//+60
string normal1(int targetSeconds){
string str;
int second = targetSeconds % 60 + 60;
if(second>99) return "0000";
int fen = targetSeconds / 60 - 1;
if(fen<10){
str = "0" + to_string(fen);
}else{
str = to_string(fen);
}
if(second<10){
str += "0" + to_string(second);
}else{
str += to_string(second);
}
return str;
}
int minCostSetTime(int startAt, int moveCost, int pushCost, int targetSeconds) {
string normal = normal0(targetSeconds);
string n1 = normal;
// if(n1[0]!='0'||n1[1]!='0'){
// n1 = normal1(targetSeconds);
// }
n1 = normal1(targetSeconds);
cout<<normal<<" "<<n1<<endl;
int move = 0;
int push = 0;
int cur = startAt;
int begin = 0;
int res = INT_MAX;
//cal normal
if(normal!="0000"){
while(begin!=4){
if(normal[begin]=='0'&&push==0){
begin++;
continue;
}
if((normal[begin]-'0')!=cur){
move++;
}
cur = normal[begin]-'0';
push++;
begin++;
}
if(moveCost * move + pushCost * push != 0){
res = moveCost * move + pushCost * push;
}
cout<<move<<" "<<push<<" "<<res<<endl;
}
move = 0;
push = 0;
begin = 0;
cur = startAt;
//cal n1
if(n1!="0000"){
while(begin!=4){
if(n1[begin]=='0'&&push==0){
begin++;
continue;
}
if((n1[begin]-'0')!=cur){
move++;
}
cur = n1[begin]-'0';
push++;
begin++;
}
if(moveCost * move + pushCost * push != 0){
res = min(res,moveCost * move + pushCost * push);
}
cout<<move<<" "<<push<<" "<<res<<endl;
}
return res;
}
};
补题
https://leetcode-cn.com/problems/minimum-difference-in-sums-after-removal-of-elements/
超时想想二分
https://leetcode-cn.com/problems/minimum-time-to-complete-trips/solution/6010-chao-shi-shi-xiang-xiang-er-fen-by-3q7is/
二分模版
while l < r:
m = (l + r) >> 1
if check(m):
l = m + 1
else:
r = m
对于二分查找,一般可用以下模板,注意区别。另外可用类似 m = l + (r - l) / 2的方式解决溢出的问题。
二进制枚举
x >> y //x右移y位
x << y //x左移y位
//贪心失败
//状压二进制枚举 / 01背包
//https://leetcode-cn.com/problems/maximum-points-in-an-archery-competition/solution/by-ctysss-6r70/
/*
转自-wannabeaguard
以前听到状态压缩,听到二进制就后退三步,做了几道类似的题貌似有一点点上道了。其实就是一种暴力美学,尤其在n<=20这种数量级,枚举所有的可能性也就是10^6这个数量级。
对于这道题来说,要枚举的就是bob可以在哪些区域赢,每个区域都有输赢两种可能,所以所有的可能方案有2^12=4096种,这个数量级就直接暴力憋犹豫了。
遍历[0,4096),每个数字表示bob的战况
比如0,二进制是"000000000000",表示bob在所有区域都输了
比如1,二进制是"000000000001",表示bob在区域1赢了
比如5,二进制是"000000000101",表示bob在区域1和区域3赢了
bob在每个赢的区域至少要比alice多射出一支箭,如果总射箭数目<=numArrows,那么就是合法的方案之一
返回最高得分的方案就可以啦
*/
class Solution {
public:
vector<int> maximumBobPoints(int numArrows, vector<int>& aliceArrows) {
int n = aliceArrows.size();
int maxScore = 0;
vector<int> ans(n);
/* 二进制枚举 */
for (int i = 0; i < (1 << n); i++) {
// 代表一种bob的胜场情况 最大值是111111111(12个)
// 所以边界为 1000000(12个0)于是将1左移12位
int usedArrows = 0;
int curScore = 0;
vector<int> bobArrows(n);
for (int j = 0; j < n; j++) {
//这种胜场情况的每一个区域的情况
if (((i >> j) & 1) == 1) {
usedArrows += aliceArrows[j] + 1; /* 使用的箭数 */
curScore += j; /* 得分 */
bobArrows[j] = aliceArrows[j] + 1; /* 每一轮射中数 */
}
}
/* 使用的总箭数有剩余, 且有更大值 */
if (usedArrows <= numArrows && curScore > maxScore) {
maxScore = curScore;
ans = bobArrows;
ans[0] += numArrows - usedArrows;
}
}
return ans;
}
};
https://leetcode-cn.com/problems/maximum-trailing-zeros-in-a-cornered-path/solution/6027-by-flytowns-73nh/
打开IIS服务器,选择应用程序池,设置中,有一个打开32位程序,选择FALSE,如果开启,在64位下就会出错。一般关闭转载于:https://www.cnblogs.com/wility/p/4305610.html...
王者荣耀v1.20.1.37 安卓最新官方版类型:角色扮演大小:471M语言:中文 评分:7.7标签:立即下载王者荣耀8月25日英雄调整内容汇总一览,王者荣耀体验服8月25日进行维护更新,一大波英雄技能都有很大的调整,宫本武藏又又又被削了,那么王者荣耀8月25日英雄调整有哪些,西西带来8月25日英雄调整内容汇总,希望对大家有所帮助。王者荣耀8月25日英雄调整内容汇总一。英雄调整1.花木兰花木兰在上...
MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式。 由MySQL支持的列类型列在下面。下列代码字母用于描述中: M 指出最大的显示尺寸。最大的合法的显示尺寸是 ...
谷歌搜索:inurl:pro_list.asp?bookid=关键字 inurl:..?bookid=196默认数据库下载:db\hualiang#.mdb7789dianying默认后台: /manage/login.asp拿shell方法:iis解析漏洞:漏洞页面:Up_BookPic.asp?formname=myform&editname=samll_pic_up_bookpicpro.asp漏洞
Trigger分类TriggerMultiTriggerDataTriggerMultiDataTriggerEventTriggerTrigger<Grid> <Grid.Resources> <Style x:Key="ButtonStyle" TargetType="Button"> <Setter Property="Foreground" Value="DarkOrange"></Setter> <S_wpf rowheader 的trigger
以下方法可以过期后继续使用smartgit 30后需要输入序列号解决办法 ,找到路径: %APPDATA%\syntevo\SmartGit\然后删除: preferences.yml 再重新打开smartgit首先关闭首先关闭SmartGit,windows+R:输入 %APPDATA%\syntevo\SmartGit\ 点击确定,或直接输入地址在文件夹栏输入,找..._smartgit 19 for mac
c++,vc6.0 报错 unreferenced local variable原因,有的东西没有用到,如果真的没有用的话可以直接删掉。
分享一下前段时间自己第三面的面试经历吧,虽然现在入职的不是 BAT,但也算是细分领域里的准独角兽公司了,希望可以对你有所帮助哈。面试官:一面、二面他们对你的评价很高啊。我看你写着精通 S...
其实就是一个 inset 就解决了,主要是用的太少,不太熟悉这个属性。知识点:box-shadow。_css 内阴影
the silver searcher安装brew install the_silver_searcher搜索包含字符串的文件列表ag 'adsa'ag 'abc' ./搜索指定类型文件内包含字符串的文件列表ag --php 'abc' ./ag -G '.+\.php' 'abc' ./搜索文件名ag -g "order.blade"...
就那个方便就_斑马线数据集
关于表单提交的时候非空校验问题