V2EX 首页   注册   登录

vegito2002

  •   V2EX 第 239370 号会员,加入于 2017-07-09 13:20:09 +08:00
    根据 vegito2002 的设置,主题列表只有在你登录之后才可查看
    vegito2002 最近回复了
    14 天前
    回复了 F2Sky 创建的主题 问与答 印象笔记也学着耍流氓吗?
    要么忍, 要么滚
    我滚了
    我用的 Transcend JetDrive Lite, 感觉还挺不错的, 但是速度肯定是没有办法跟原生 ssd 比的, PD 的虚拟机丢在本地上和丢在 transcend 上面速度差异明显.

    只要买对应自己电脑的型号, 露出部分其实很少, 貌似最近他们刚刚推出 2017model 的.
    我现在直接拿着之前卖给 13air(2015)的给现在的 15pro(2015)用, 有至少三毫米露在外面, 不过我也懒得管了.
    15 天前
    回复了 chunrong918 创建的主题 程序员 如果有多个约束条件,动态规划怎么做
    DP 的优越性本来就是在 subproblem 之间的 overlapping 比较多的时候才更容易提升。 如果 constraint 过多, 那么对于 subproblem 的定义相应的也就会越来越细化, 发生 overlapping 的可能性也就格外小, 这时候 DP 就未必有那么大的优越性了。 通用型的 constraint-based 语言类似 prolog, 最后实际上的做法就是 backtrack 来做, 多少 constraint 都可以做, 但是不保证时间。 当然如果要自己实现, 可以加上剪枝, 尤其是可以维护一个全局最大值, 来剪掉无法改变当前最大值的分枝。
    重新尝试一下图片能不能贴成功

    ![]( https://i.loli.net/2017/10/07/59d81483b367e.png)
    上面第三段第一句话有一个地方打错了的:

    所以最后问题简化下来就是, 先选两个相邻 **pair**, 找到对角线(注意, 虽然有两条对角线, 但是只有一种选择方法能够得到 10, 另一个得到的是 8), 这个有 3 中选法;
    我个人认为这个题目推理其实并不难想, 以下推理过程虽然话比较多, 不过纯粹是为了表达的严谨, 事实上整个问题思路非常简单.

    考虑这四个 pair:
    [0]: 1 8
    [1]: 2 7
    [2]: 3 6
    [3]: 4 5
    我们命名为 pair[0] ~ pair[3]
    比较简单的一个事实就是, 而我们要选择的是三个 digit, digit[0] ~ digit[2], 对应个位到百位;
    digit[1], digit[2]都是比较简单的, 只要找到两个相加等于 9 的就行了, 事实上, 这两个 digit 上面的位置, 只要在上面 pair[0]..[3]当中选择一个就行了;
    但是 digit[0]呢? 事实上, digit[0]我们需要两个 pair, 而且要两个相邻的 pair, 这是因为每一个 pair 的和是 9, 而 digit[0]需要做到的和是 10. 所以 digit[0]最后实际上要找到的就是一个 pair[i], 然后一个 pair[i+1], 然后用 pair[i][0] and pair[i-1][1]组成的一个 pair 就行了; 所以我们最后要找到两个相邻的 pair, 然后取这两个 pair 的类似于一个对角线的就行了; 注意, 当 digit[0]选择了两个 pair 之后, 这两个 pair 就无法再参与到其他 digit 的组合当中了: 这是因为剩下的 pair[i][1]只能和 pair[i][0]组合得到 9, 而 pair[i-1][0]只能和 pair[i-1][1]组合得到 9, 但是这两个姘头都已经被作为对角线拿到 digit[0]的制造当中去了;

    所以最后问题简化下来就是, 先选两个相邻 digit, 找到对角线(注意, 虽然有两条对角线, 但是只有一种选择方法能够得到 10, 另一个得到的是 8), 这个有 3 中选法;
    剩下的两个 pair, 就是参与到 digit[1] and digit[2]的制造当中, 因为是二对二, 所以没有选择问题了, 但是有一个排序问题, 因为你不知道谁给 digit[1], 谁给 digit[2], 所以这里有一个 2!.
    然后 digit[1]和 digit[2]分别得到自己的 pair 之后, 内部还要排序, 所以是 2! * 2!.
    这里有一个问题, digit[0]内部是否需要继续排序? 答案是不需要, 因为 digit[1] and digit[2]都已经排序过了, 你如果 digit[0]还重新排序, 或者说交换顺序, 最后得到的就肯定有重复;
    所以最后得到的答案就是 3 * 2! * (2! * 2!);
    注意最后两个 2!的含义跟第一个 2!的含义的区别, 一个是 digit 之间排序, 一个是 digit 内部排序导致的;

    我不认为这个问题很弱智, 我感觉了 LeetCode 里面若干题目涉及到的数学其实也就差不多这个水平.
    17 天前
    回复了 Technetiumer 创建的主题 问与答 你们都用哪些任务管理工具?
    便条贴桌上. 所有的 APP 记了之后根本懒得去查, 只有意外的让自己看到感觉才有效果; 个人这样;
    18 天前
    回复了 zjp 创建的主题 天黑以后 20171004 午夜俱乐部
    熬夜赶完 OS 的 due, 床上滚了两个小时昏头昏脑爬起来继续赶早班的课.
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   843 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 24ms · UTC 17:18 · PVG 01:18 · LAX 10:18 · JFK 13:18
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1