RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-217230

Dmitry Chebakov's questions

Martin Hope
Dmitry Chebakov
Asked: 2020-06-04 07:20:41 +0000 UTC

用线段覆盖一组点的问题(或背包问题)

  • 10

前端开发者的Yandex.Blitz竞赛最近结束了,我想分析一个问题。(我再次重申,比赛已经结束)。在我看来,这个问题介于背包问题和用线段覆盖一组点之间。这是它的完整措辞:

有一个 devops Petya。在工作中,他需要在接下来的 100 天内在某些日子值班。彼佳乘地铁上班。订阅票被引入地铁,从第一次乘坐之日起的一定天数内有效。门票的持续时间越长,每天的费用就越低。我们需要帮助 Petya 省钱,并在考虑到他的值班时间的情况下,提前三个月计算出他需要购买哪些票,以使他们的总成本尽可能低。彼佳也不喜欢随身携带很多票,如果有几种最低成本相同的票,那么彼佳需要一张票少的。如果有多个这样的选项(最低成本和门票数量相同),那么其中任何一个都适合 Petya。getCheapestTickets(days, tickets),它将 Petya 的值班表 ( days) 和可能的订阅票选项 ( tickets) 作为输入,并作为输出给出 Petya 需要购买的票列表(以票选项输入数组中的索引的形式)。Petya 的值班时间表以排序后的数字数组形式给出(从 1 到 100 包括在内),每个数字表示值班日的序号:

// Петя должен дежурить на второй, пятый, десятый и сорок пятый день относительно текущей даты  
[2, 5, 10, 45]

每个订阅票由以下接口描述:

interface Ticket {  
    // количество дней, в течение которых билет действует со дня первой поездки по нему,  
    // включая этот день (от 1 до 100 включительно)  
    duration: number;  
    // стоимость билета (от 1 до 100 включительно)  
    cost: number;  
}

门票选择数量不超过10个,并保证所有门票价格不同,门票有效期越多,一日成本越低。

输入格式

days:
[1, 2, 4, 6, 7, 8, 9, 10, 20]
tickets:

[  
    { cost: 3, duration: 1 },  
    { cost: 10, duration: 7 },  
    { cost: 20, duration: 30 }  
]

输出格式

[0, 0, 1, 0]

我的问题是我的解决方案没有及时通过。首先,我尝试通过递归遍历整个决策树(JavaScript)来解决这个问题:

const getCheapestTickets = (days, tickets) => {
  // Вспомогательная функция для обхода всех вариантов билетов.
  // l указывает на текущий день из массива days.
  const wrapper = (l) => {
    let min = null;

    // Обходим все билеты.
    for (let i = 0; i < tickets.length; i += 1) {
      const ticket = tickets[i];
      let j = l;

      // Считаем количество дней, которые покрывает данный билет.
      const skip = days[l] + ticket.duration;
      while (skip > days[j]) {
        j += 1;
      }

      let curr;
      if (j < days.length) {
        // Рекурсивно ищем решение для оставшихся дней.
        curr = wrapper(j);
        curr.sum += ticket.cost;
      } else {
        curr = { sum: ticket.cost, includes: [] };
      }

      const currIncludes = [i, ...curr.includes];
      curr = { ...curr, includes: currIncludes };

      if (min === null) {
        min = curr;
      } else if (
        (curr.sum === min.sum && curr.includes.length < min.includes.length)
        || curr.sum < min.sum) {
        min = curr;
      }
    }

    return min;
  };

  return wrapper(0, 0).includes;
};

在这里,我不明白如何丢弃决策分支。我看不出如何将其简化为经典的背包问题,通过矩阵寻求解决方案。接下来,我尝试编写相同的解决方案,但没有递归,也绕过所有可能的变化,但在树的帮助下。也没有及时过去。请帮助制定更优化的算法。解决方案是单线程的,这一点很重要。

алгоритм
  • 2 个回答
  • 10 Views
Martin Hope
Dmitry Chebakov
Asked: 2020-12-26 06:17:10 +0000 UTC

写入包含 Unicode 字符的 json 文件

  • 2

序列化(并写入文件)包含unicode字符的字典的正确方法是человекочитаемым什么?

假设我们有以下代码(python3):

import json
person = {'name': 'Дима'}
person_json = open('person.json', 'w')
json.dump(person, person_json)
person_json.close()

其执行结果是一个文件,内容如下: {"name": "\u0414\u0438\u043c\u0430"}

而问题,其实是如何写入json文件来获取以下内容:{"name": "Дима"}.

它的解决方案也很有趣python2,如果它对python3. 谢谢!

python
  • 3 个回答
  • 10 Views
Martin Hope
Dmitry Chebakov
Asked: 2020-03-13 02:12:00 +0000 UTC

单个进程可以拥有的最小线程数是多少?

  • 2

我提前为一个可能愚蠢的问题道歉。我读到了 linux 中一个进程的最大线程数,不禁产生了一个问题,一个进程可以拥有的最小线程数是多少?一个进程可以有零线程吗?

linux
  • 1 个回答
  • 10 Views
Martin Hope
Dmitry Chebakov
Asked: 2020-12-17 02:42:49 +0000 UTC

DOM构建完成后调用函数

  • 1

当 DOM 准备好时,调用某些函数的正确方法是什么?假设我需要调用 main 函数,它什么都不做。这三个选项哪个更正确?

  1. document.addEventListener('DOMContentLoaded', main);
  2. document.addEventListener('DOMContentLoaded', main());
  3. document.addEventListener('DOMContentLoaded', function () { main(); });

chrome 的所有三种变体都能正常消化。

javascript
  • 1 个回答
  • 10 Views
Martin Hope
Dmitry Chebakov
Asked: 2020-12-11 22:10:25 +0000 UTC

指针值不变

  • 3
void f(int *b) {
b = new int;
*b = 2;
}

int main() {

int *a = NULL;
f(a);

if (a == NULL) {
    std::cout << "mde";
}

return 0;
}

你能解释一下为什么在这段代码中变量a仍然存在NULL吗?毕竟,指针是指向内存区域的地址。最初,它不指向任何地方。然后我将地址转移到这个内存区域,我已经在那里写了一些东西并且它没有改变。请解释为什么?

c++
  • 2 个回答
  • 10 Views
Martin Hope
Dmitry Chebakov
Asked: 2020-11-10 01:03:20 +0000 UTC

括号和引号不会自动关闭

  • 2

开始使用pugin Webstorm,发现括号和引号没有自动关闭。非常不舒服。例如,当我输入通常的html "or(或{时,它们都会自动关闭。由于.pug某种原因,这不会发生在文件中。请告诉我,如何解决这个问题?这是错误还是功能?

jade
  • 1 个回答
  • 10 Views
Martin Hope
Dmitry Chebakov
Asked: 2020-10-10 05:47:01 +0000 UTC

为什么java中的包习惯以域名命名?

  • 26

这应该完全像这样完成的事实到处都写着。但为什么人们同意这样称呼它呢?也许这有一些不明显的便利?

java
  • 3 个回答
  • 10 Views
Martin Hope
Dmitry Chebakov
Asked: 2020-09-13 03:32:05 +0000 UTC

不是从索引创建的数组

  • 3

你好!你能解释一下为什么这段代码不起作用吗? var arr = new Array(10).map(function (t, iter) { return iter }); console.log(arr);

从逻辑上讲,你应该得到一个 array [0,1,2,3,4,5,6,7,8,9],但不是它,而是 10 个元素undefined

javascript
  • 2 个回答
  • 10 Views
Martin Hope
Dmitry Chebakov
Asked: 2020-05-21 08:23:19 +0000 UTC

在 django admin 中将自定义按钮添加到对象编辑页面

  • 0

事实上,标题就是问题的重点。我有一个函数,它接受一个当前正在编辑的模型对象并对它做一些事情。如何使在 django admin 中编辑模型对象时有一个按钮来调用此函数?

python
  • 1 个回答
  • 10 Views
Martin Hope
Dmitry Chebakov
Asked: 2020-05-15 10:18:27 +0000 UTC

移动引导网格

  • 1

有 3 个<div>:

<div class="col-md-2 col-xs-12">блок 1</div>
<div class="col-md-8 col-xs-12">блок 2</div>
<div class="col-md-2 col-xs-12">блок 3</div>

请告诉我如何使当屏幕宽度变为 时xs,块 3 上升,即结果是这样的:

<div class="col-md-2 col-xs-12">блок 3</div>
<div class="col-md-2 col-xs-12">блок 1</div>
<div class="col-md-8 col-xs-12">блок 2</div>
html
  • 1 个回答
  • 10 Views
Martin Hope
Dmitry Chebakov
Asked: 2020-08-18 19:01:43 +0000 UTC

函数中的静态变量

  • 2

编码:

double call_by_name(const char *name, int arg) {
    static const char *names[] = {"sin", "cos", "tan", NULL};
    static double (*fp[])(double) = {sin, cos, tan};

    for (int i = 0; names[i] != NULL; i++)
        if (strcmp(names[i], name) == 0)
            return ((*fp[i])(arg));

    return 0;
}

为什么数组在这里*names[]并且*fp[]有关键字static?为什么在这种情况下需要它?

c++
  • 1 个回答
  • 10 Views
Martin Hope
Dmitry Chebakov
Asked: 2020-08-10 16:58:40 +0000 UTC

脚本隐藏显示块在 IE 中不起作用

  • 0

HTML:

<form class = "headerOfsearch" name="search" method="post" action="search.php" >
    <select name="taskOption" id="d1" onchange="searchfordate();">
        <option value="first">Обозначение</option>
        <option value="second">Дата проверки</option>
        <option value="third">Номер акта</option>
        <option value="fourth">Врем. промежуток</option>
    </select>

<input type="search" name="query" placeholder="Поиск"> <button type="submit">Найти</button>

    <section style="display:none;" id="new_form">
        <input type="date" name="bday">
        -
        <input type="date" name="lday">
    </section>

</form>

js

 <script async="" type="text/javascript" src="http://yandex.st/jquery/2.0.3/jquery.js"></script>
<script>
    function searchfordate()
    {
         if(d1.selectedIndex == 3){
            $('#new_form').show();
         }
         else{
         $('#new_form').hide();
         }
    }

</script>

按照计划,当您从菜单中选择“时间间隔”时,会弹出一行输入日期的信息。在 chrome 中它工作正常,但在 IE11 中它根本不起作用。该怎么办?我是新手,请帮忙

javascript
  • 2 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5