archwing任务流程_机器的武器任务流程

archwing任务流程_机器的武器任务流程有两台机器 A,B 以及 K 个任务。机器 A 有 N 种不同的模式(模式 0∼N−1),机器 B 有 M 种不同的模式(模式 0∼M−1)。两台机器最开始都处于模式 0。每个任务既可以在 A 上执行,也可以在 B 上执行。对于每个任务 i,给定两个整数 a[i] 和 b[i],表示如果该任务在 A 上执行,需要设置模式为 a[i],如果在 B 上执行,需要模式为 b[i]。任务可以以任意顺序被执行,但每台机器转换一次模式就要重启一次。求怎样分配任务并合理安排顺序,能使机器重启次数最少。输入格

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

有两台机器 A,B 以及 K 个任务。

机器 A 有 N 种不同的模式(模式 0∼N−1),机器 B 有 M 种不同的模式(模式 0∼M−1)。

两台机器最开始都处于模式 0。

每个任务既可以在 A 上执行,也可以在 B 上执行。

对于每个任务 i,给定两个整数 a[i] 和 b[i],表示如果该任务在 A 上执行,需要设置模式为 a[i],如果在 B 上执行,需要模式为 b[i]。

任务可以以任意顺序被执行,但每台机器转换一次模式就要重启一次。

求怎样分配任务并合理安排顺序,能使机器重启次数最少。

输入格式
输入包含多组测试数据。

每组数据第一行包含三个整数 N,M,K。

接下来 K 行,每行三个整数 i,a[i] 和 b[i],i 为任务编号,从 0 开始。

当输入一行为 0 时,表示输入终止。

输出格式
每组数据输出一个整数,表示所需的机器最少重启次数,每个结果占一行。

数据范围
N,M<100,K<1000
0≤a[i]<N
0≤b[i]<M

输入样例:
5 5 10
0 1 1
1 1 2
2 1 3
3 1 4
4 2 1
5 2 2
6 2 3
7 2 4
8 3 3
9 4 3
0
输出样例:
3
#include<bits/stdc++.h>
using namespace std;
const int N = 1e2 + 10;
const int M = 2e3 + 10;
struct Edge{ 
   
    int v,next;
}edge[M];
int head[N],cnt;
void add(int u,int v){ 
   
    edge[cnt].v = v;
    edge[cnt].next = head[u];
    head[u] = cnt ++;
}
int match[N],vis[N];
int res = 0;
bool Find(int x){ 
   
    for(int i = head[x];~i;i = edge[i].next){ 
   
        int v = edge[i].v;
        if(match[v] == x ||  vis[v])continue;
        vis[v] = true;
        if(match[v] == 0 || Find(match[v])){ 
   
            match[v] = x;
            return true;
        }
    }
    return false;
}
int main(){ 
   
    int n,m,k;
    int x,y,id;
    while(cin>>n,n){ 
   
        cin>>m>>k;
        memset(match,0,sizeof match);
        memset(head,-1,sizeof head);
        cnt = 0;
        for(int i = 0;i < k;i ++){ 
   
            cin>>id>>x>>y;
            if(!x || !y)continue;
            add(x,y);
        }
        res = 0;
        for(int i = 1;i < n;i ++){ 
   
            memset(vis,0,sizeof vis);
            if(Find(i))res ++;
        }
        cout<<res<<endl;
    }
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169105.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Ant安装及环境配置「建议收藏」

    Ant安装及环境配置「建议收藏」1什么是AntApacheAnt是一个基于Java的生成工具。生成工具在软件开发中用来将源代码和其他输入文件转换为可执行文件的形式(也有可能转换为可安装的产品映像形式)。随着应用程序的生成过程变得更加复杂,确保在每次生成期间都使用精确相同的生成步骤,同时实现尽可能多的自动化,以便及时产生一致的生成版本2、下载、安装、环境变量配置ant下载地址https://download…

    2022年7月24日
    2
  • AnalyticDB for MySQL 3.0 技术架构解析

    AnalyticDB for MySQL 3.0 技术架构解析企业数据需求不断变化,近年来变化趋势日益明显,从数据的3V特性看:体积,速度和变化;BigData强调数据量,PB级以上,是静态数据。而FastData在数据量的基础上,意味着速度和和变化,意味着客户可以更加实时化、更加快速地进行数据处理。在Forrester最近的一项研究中,超过75%的…

    2022年9月17日
    0
  • 超详细pycharm安装教程

    超详细pycharm安装教程超详细pycharm安装教程第一步:双击运行pycharm安装程序更改安装路径第二步:全都不用勾选第三步:点击install第四步:出现如下界面表示正在安装第五步:勾选RunPycharm然后点击Finish第六步:第七步:点击右下角Next…第八步:点击右下角StartUsingPyCharm第九步:点击Evaluate试用第十步:点击Evaluate第十一步:点击+(加号)CreateNewProject第十二步:点击location

    2022年8月25日
    5
  • snmp trap报文格式_linux接收snmptrap

    snmp trap报文格式_linux接收snmptrap转载地址:https://blog.csdn.net/eric_sunah/article/details/19557683SNMP的报文格式SNMP代理和管理站通过SNMP协议中的标准消息进行通信,每个消息都是一个单独的数据报。SNMP使用UDP(用户数据报协议)作为第四层协议(传输协议),进行无连接操作。SNMP消息报文包含两个部分:SNMP报头和协议数据单元PDU。在实际网络传输环境下,S…

    2022年8月21日
    4
  • hexdump什么意思_生成coredump文件

    hexdump什么意思_生成coredump文件博客原文hexdump可以自定义显示格式,不过要理解其中formatunit以及一些概念才能灵活使用.在hexdump中使用formatstring的方式如下:$hexdump-e’&amp;lt;formatstring&amp;gt;’&amp;lt;filename&amp;gt;formatunitformatstring由formatunit组成,而formatunit由如下部分…

    2022年9月21日
    0
  • Android开发规范「建议收藏」

    1.java代码中不出现中文,最多注释中可以出现中文2.局部变量命名、静态成员变量命名只能包含字母,名字中每个单词首字母都为大写(第一个单词首字母除外),其他都为小写3.常量命名只能包含字母和_,字母全部大写,单词之间用_隔开4.layout中的id命名命名模式为:view缩写_模块名称_view的逻辑名称view的缩写详情如下LayoutView:lvRela

    2022年3月9日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号