转跳到内容

yhz012

【会员】精英会员
  • 内容数

    2,754
  • 加入

  • 最后访问

  • 赢得天数

    2

yhz012 发表的所有内容

  1. 以防万一我确认下,战斗中嗑药不算回合的吧?
  2. 来了来了,让我看看,给我点时间先刷个牙 那你很勇哦.jpg 首先一些最基本的计算可以得到: 不吃药情况下:怪物回合数 T = floor(L / D) 因此受到的伤害是 T * L 每喝一瓶大力就相当于少一次怪物出手的机会 所以感觉已经能贪心了? 艹不对,我傻了,可能因为取整情况有影响……不过贪就完了应该没问题 不对,我是真的傻了,每一瓶一定只减少1次怪物回合(除非到0),所以直接贪应该就可以了?
  3. 扫了下 30 是1 横向(x + y)^2 = z 其他的等我肝完作业再说
  4. 实际上就是这样,最坏还是O(n^2),不过常数项来说还是比暴力重做要好多了
  5. 是图论问题 对问题数学建模 暴力的不能更暴力的方法 一些优化方法的想法 更有趣的一些情况
  6. 我觉得可能是因为某种意义上太数学了? (但是算法这东西我觉得如果不拆成比较数学的部分反倒会比较难……,因为会进一步涉及到数学建模了(笑,就是不知道这样能不能增加讨论度……?
  7. 其实咱觉得本质上只是在玩统计学玩剩下的东西(小声 还是汇编这边更大佬
  8. 等下我突然感觉好像有点不太对,因为测试样例第二个是可以一个栈排序的,但是原题不能。应该还需要处理下 我傻了,没问题,因为C的顺序是从底到顶,然后需要最后排序出来一个降序的就可以了 我是学machine learning的,汇编本科接触过一些不过我很菜
  9. 栈 感觉后面直接参考第五期的一个栈的情况应该就可以了?
  10. 关键点是从A拿到B之后就没法放回A了只能移到C了 实际上可以把操作逆过来当做现在有摆好给定顺序的C,然后只能从C移到B,从B移到A,问能不能通过这个操作完成降序排序 感觉可以规约到第五期只有一个stack的情况了?
  11. 艹,感觉又到了我的本职工作了,某种意义上和扫雷或者数独差不多吧,准确来说离数独更近,扫雷比这个还会涉及到一些置信度问题以及一些局部的SAT问题快速求解 因为反正只有24个词,我先根据长度sort一下应该不亏 另外我姑且假设不存在连续的2个词排在一起,所以根据长度已经可以剪枝掉很大一部分情况了。而且算一下格子和字符串长度能不能对上,对不上根本不用试了,直接QAQ就好了 接下来就先从可选情况最少的开始试就好了吧,这是最基本的heuristic 可选情况举例来说 现在有3个5字母,1个6字母,2个7字母 那应该先试1个6字母的,然后再试7字母的,最后是5字母的 另外我还有一个会有用的heuristic来tie-break 对于相同的可能情况,比如2个4字母的,1个3字母的,优先选用和其他格子交叉多的,比如3字母的和另外2个交叉,而6字母的只和1个交叉,那么先填3字母的,接着再填6字母的 加入4字母的交叉分别是1个和2个,7字母的交叉分别是3个和1个,那优先把3个交叉的7字母空格丢进来,然后再试2交叉的4字母 (说白了就是优先选用可能性最少,且对其他限制最多的来试 填入之后,根据交叉,就可以搜索指定长度字符串内指定位置带指定字母这样的字符串了,如果没有,直接剪枝然后backtrack 如果剪枝剪秃了,那就QAQ吧,不然会得到搜索结果的
  12. 我傻了,我一直在算怎么最小化距离,忘了实际上距离不影响了
  13. 看最后一个样例是可以左右横跳的桌子? 第二个样例显然就是最坏情况的样例要n-1次领导夹菜我转桌吧
  14. 霍夫曼编码 啊不对,霍夫曼只保证了不是前缀……
  15. 不过感觉这问题本质整数规划……还是NPC的问题,加速估计也加速不了多少 我在想先线性规划拿到区域之后去逐个整数点判断或许能好一点……
  16. 所以我可以理解为aa就是x,bb是y,cc是z,和abc本身一点关系没有是吧 那最暴力的方法就是3个for(逃(
  17. 等下咱没看懂题…… aa是什么意思?比如a是10,那么aa是1010的意思吗?
  18. 啊……咱的想法是没分配的直接就不保留信息了,所以空区域的长度是取决于后面一个分配的区域的基址的,当然如果后面没有分配的区域了,就直接用2^32带走就好了
  19. 其实实际上我们需要的操作只有 find(x),找到元素x findPrev(x),找到离x最近且不大于x的元素 findNext(x),找到离x最近且不小于x的元素 add(x),加入元素x并保持有序 delete(x),删除元素x并保持有序 这样mallo B L实际上就是findPrev(B) 然后检查B是否在范围内,findNext(B) 然后检查B+L是否在范围内,如果都安全,就add(B) access p 实际上就是findPrev(p) 然后检查p是否在范围内 free p 实际上就是find(p),然后安全的话就delelte(p) list 遍历一遍就好了 剩下的无非就是尽可能让这些操作效率更高就好了
  20. 是咱最不擅长的操作系统 最坏情况下做成有序链表然后暴力查找是能做的……不过感觉这个效率会比较低 做成平衡树结构似乎会好一点吧……?
  21. 泰兰德从一开始什么都知道,所以是无限层(x
  22. 我看过剧透,最后都是女人唱歌男人死.jpg,所以肯定会追上(
  23. 团长如果翻障碍更慢的话,…… ……………… 我知道你的意思了,可能是团长虽然跑得快,但是翻越障碍慢………… 所以先判速度和翻越时间 如果团长速度慢,但是翻越时间短,那就从c点往回a点判,应该也有可以加速的操作 如果团长速度快,而且翻越时间短,那别问了,团长肯定逃掉了 如果团长速度快,但是翻越时间长,那就从a点开始往c点判,这部分应该还是有一些可以加速的操作的 如果团长速度慢,而且翻越时间长,直接看最后能不能上车就可以了 两个需要逐点判断的加速可以这样做 首先能求出来团长到车之间的障碍数m,当然追兵到团长之间的障碍数也就直接n-m就好了 首先假定团长到车之间都没障碍,能求到团长时间和追兵时间分别列为time1和time2 如果团长速度慢,但是翻越时间短,这种情况下,如果time1已经小于time2了,那肯定跑了 否则能拿到时间差timeDiff,timeDiff / (t2 - t1)就是团长为了逃掉所需要的障碍数,和m比较一下,如果m大,那就逃掉了,否则女人唱歌.jpg 同理,对于团长速度快,但是翻越时间长,这种情况下,如果time1 已经大于time2了,那就女人唱歌.jpg 否则能拿到时间差timeDiff, timeDiff / (t1 - t2)是团长逃掉所能最大容纳的障碍数,和m比较一下,如果m小,那就逃掉了,否则女人唱歌.jpg 总共用的时间O(n)就可以了(这里我假设给的障碍是无序的,不然可以用二分查找拉到O(log n)的水平) 所以实际上其实可以写到一起 import numpy as np m = np.sum(np.asarray(Block) > a) dist1 = c - a dist2 = c - b time1 = dist1 / s1 time2 = dist2 / s2 + t2 * (n - m) timeDiff = time1 - time2 tDiff = t1 - t2 if timeDiff < 0 and tDiff < 0: return True elif timeDiff > 0 and tDiff > 0: return False elif tDiff == 0: return (timeDiff > 0) num = np.abs(timeDiff / tDiff) if num > m: return (timeDiff < 0) else: return (timeDiff > 0)
  24. 意识到了问题,可能出现先追上了结果因为后面的障碍又逃掉了的情况 不过这样的话首先判断障碍时间,如果障碍时间团长比追击者慢,那上面的方法肯定不影响了 如果障碍时间团长更快的话,最暴力的方法就是从c点往前到a点,每个障碍判断一次,只要有被追上的情况就女人唱歌了.jpg
  25. 样例里面团长跑步速度5米每秒,不要停下来啊
×
×
  • 新建...

重要消息

为使您更好地使用该站点,请仔细阅读以下内容: 使用条款