首页 > 其他分享 >D. Determine Winning Islands in Race

D. Determine Winning Islands in Race

时间:2024-08-23 10:30:05浏览次数:4  
标签:vector dist int al Winning Race Determine push Islands

https://codeforces.com/contest/1998/problem/D

思路:求出到达每个点的最短路径,然后从每个点i考虑跳跃到点j(i->j有边),i+1默认为必胜态,则必败态为j - 从1~j的步数。
如果必败态所在的位置>必胜态,则更新差分数组,最后求和即可。

总结:一开始只考虑了从1~j的步数只能是1步1步走的,没考虑到可以跳跃移动的情况。

void solve(){
    int n, m;
    cin >> n >> m;

    vector<vector<int>> al(n + 1);
    for (int i = 1; i < n; ++i) {
        al[i].push_back(i + 1);
    }
    for (int i = 1; i <= m; ++i) {
        int u, v;
        cin >> u >> v;
        al[u].push_back(v);
    }

    queue<int> q;
    q.push(1);
    vector<int> dist(n + 1, 0x3f3f3f3f);
    dist[1] = 0;
    while (!q.empty()) {
        int u = q.front();
        q.pop();
        for (const auto& v : al[u]) {
            if (checkMin(dist[v], dist[u] + 1)) 
                q.push(v);
        }
    }

    vector<int> ans(n + 1);
    for (int i = 1; i <= n; ++i) {
        for (const auto& v : al[i]) {
            int l = i + 1;
            int r = v - dist[i] - 1;
            if (l < r) {
                ans[l] ++;
                ans[r] --;
            }
        }
    }

    for (int i = 1; i < n; ++i) {
        ans[i] += ans[i - 1];
        cout << (ans[i] == 0);
    }
    cout << '\n';
}

标签:vector,dist,int,al,Winning,Race,Determine,push,Islands
From: https://www.cnblogs.com/yxcblogs/p/18375447

相关文章

  • Win11系统提示找不到nettraceex.dll文件的解决办法
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个nettraceex.dll文件(挑选合适的版本文件)把......
  • 题解:P10844 [EGOI2024] Infinite Race / 无限赛跑
    题解:P10844[EGOI2024]InfiniteRace/无限赛跑有n个人在环形跑道上跑步,和q次超越别人或被别人超越,别人要么在Anika前面,要么在后面怎么说呢,建议降红由于只有重复超过一个人才肯定是跑过一圈的,所以一个数组就行了,每超过一次就打上标记,不然去掉标记。#include<bits/stdc......
  • H7-TOOL新版固件2.26发布,增加20多款新系列芯片脱机烧录支持,CAN UDS解析,升级CAN助手,串
    H7-TOOL详细介绍(含操作手册):http://www.armbbs.cn/forum.php?mod=viewthread&tid=89934【PC软件】V2.261.PC软件取消自动检查版本,替换为手动按钮检查更新2.CAN助手  -支持时钟选择(20M40M80M),CANFD支持最高8M波特率(需支持8M的canPHY芯片)  -增加“J1939通用解......
  • 【ARM CoreLink 系列 5.5 -- CI-700 Debug trace and PMU 】
    文章目录DebugtraceandPMUCI-700Debugtrace系统概述DTCDomainDTCDomain约束条件DTMdeviceportsDebugtraceandPMU本篇文章主要是介绍CI-700中实现的DebugTrace(DT)andPerformanceMonitoringUnit(PMU).CI-700Debugtrace系统......
  • ftrace的trace_options
    ftrace中的trace_options选项用于控制追踪数据的收集和显示方式。你可以通过/sys/kernel/debug/tracing/trace_options文件来设置这些选项。每个选项代表了不同的追踪行为或输出格式。以下是一些常见的trace_options选项及其含义:overwrite:含义:当启用此选项时,如果缓冲......
  • Linux 利用 ftrace 分析内核调用
    目录一、概述二、ftrace的使用1、常用信息2、指定ftrace跟踪器3、设置要跟踪的函数4、ftrace的开关5、function跟踪程序6、function_graph跟踪程序7、函数过滤器8、跟踪事件三、trace-cmd的使用1、常见命令2、常用选项2.1列出可用的追踪器2.2跟踪特定进程的函......
  • 【技术分享】解决CANoe软件Trace窗口筛选栏空白问题
    引言在汽车电子开发领域,Vector公司提供的CANoe、CANape和CANalyzer软件是我们不可或缺的工具。然而,近期一些用户在更新了Windows系统后,遇到了Trace窗口筛选栏变白的问题。本文将分享一个实用的解决方案,帮助您快速恢复软件功能。问题描述7月11日,Windows系统推送了新的更新。......
  • 【思科模拟器Packet Tracer的一些操作】你见过这样PacketTracer吗
    你见过这样PacketTracer吗?机柜抓包模拟城域网各位网工朋友应该都用过思科模拟器吧PacketTracer是思科系统开发的一款网络模拟器,用于模拟计算机网络中的设备和网络环境。它可以帮助网络工程师或学生在没有真实设备的情况下学习和实验各种网络配置和协议。Pac......
  • 使用ftrace查找Kernel启动阶段的延时原因
    查找Kernel启动阶段的延时原因1.确保内核配置了如下选项CONFIG_FTRACE:"Tracers"CONFIG_FUNCTION_TRACER:"KernelFunctionTracer"CONFIG_FUNCTION_GRAPH_TRACER:"KernelFunctionGraphTracer"2.配置functiongraphtrace到commandlinetracing_thresh=200f......
  • 基于N32L40x CmBacktrace mdk5平台下的移植测试
    首先感谢大神提供的开源库CmBacktrace开源地址:https://github.com/armink/CmBacktrace/releases/latesthttps://gitee.com/Armink/CmBacktraceCmBacktrace是什么CmBacktrace一款针对ARMCortex-M系列MCU的错误代码自动追踪、定位,错误原因自动分析的开源库CmBac......