1 条题解

  • 0
    @ 2025-8-24 22:25:14

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar pokefunc
    就这样吧 / https://www.pokefunc.xyz

    搬运于2025-08-24 22:25:14,当前版本为作者最后更新于2023-11-08 16:17:48,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    P6928 [ICPC2016 WF] What Really Happened on Mars?

    题面太长了就不放了。

    题目的最大难点在于如何处理阻塞关系,因为看起来阻塞由当前优先级定义,但当前优先级又由阻塞定义。

    考虑阻塞的条件,也就是访问一个已经被锁定的资源或者访问一个被拥有且最高优先级大于这个进程的当前优先级。那么我们从正在执行的基础优先级最高的进程开始考虑,如果它的下一条指令是锁定某个资源,且满足上述的阻塞条件,那么我们就可以找出阻塞当前进程的进程,根据题目要求更新当前优先级,然后将当前进程标记为被阻塞。

    剩下的就没什么特别大的难度了,实现难度严格低于今年 CSP-S T3,注意细节。建议对于这种大模拟题分模块写,这样各个模块之间相互独立调试更有条理。

    code,非常丑但是应该可读。

    此题建议评蓝/紫。

    • 1

    信息

    ID
    6076
    时间
    1000ms
    内存
    1024MiB
    难度
    6
    标签
    递交数
    0
    已通过
    0
    上传者