codevs1027 姓名与id

2024-08-26 14:08
文章标签 id 姓名 codevs1027

本文主要是介绍codevs1027 姓名与id,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

求最大匹配后,判断每个人是否可以有别的匹配,沿原匹配走出回路则有。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<map>
#include<set>
using namespace std;
int n;
int line[30][30];
int b[30],g[30];
bool used[30];
map<string,int>name;
string na[30];
map<string,int>id;
string di[30];
set<int>se;
set<int>leave;
bool vis[30];
struct Node
{string name,id;bool operator<(const Node& u)const{return name<u.name;}
};
Node p[30];
int e=0;bool find(int x);
bool check(int x);
int main()
{memset(b,0,sizeof(b));memset(g,0,sizeof(g));string str;char ch[2];scanf("%d",&n);for(int i=0;i<n;i++){cin>>str;id[str]=i+1;di[i+1]=str;leave.insert(i+1);}int o=1;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)line[i][j]=1;}while(~scanf("%s",ch)){if(ch[0]=='Q')break;cin>>str;if(ch[0]=='E'){if(name[str]==0){name[str]=o++;na[o-1]=str;}se.insert(name[str]);leave.erase(name[str]);}else if(ch[0]=='L'){leave.insert(name[str]);se.erase(name[str]);}else{int k=id[str];for(set<int>::iterator it=leave.begin();it!=leave.end();it++){line[*it][k]=0;}}}for(int i=1;i<=n;i++){memset(used,0,sizeof(used));find(i);}for(int i=1;i<=n;i++){memset(vis,0,sizeof(vis));memset(used,0,sizeof(used));if(check(i)){p[e].name=na[i];p[e++].id="???";}else{p[e].name=na[i];p[e].id=di[b[i]];e++;}}sort(p,p+e);for(int i=0;i<e;i++)cout<<p[i].name<<":"<<p[i].id<<endl;return 0;
}bool find(int x)
{for(int i=1;i<=n;i++){if(line[x][i]==1&&used[i]==0){used[i]=1;if(g[i]==0||find(g[i])){b[x]=i;g[i]=x;return true;}}}return false;
}
//判断x能不能有别的匹配
bool check(int x)
{if(vis[x]==1)//走出回路return true;vis[x]=1;for(int i=1;i<=n;i++){if(used[i]==0&&line[x][i]&&g[i]!=x){//不是原匹配used[i]=1;if(g[i]==0||check(g[i]))return true;}}return false;
}


这篇关于codevs1027 姓名与id的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1108775

相关文章

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

mysql数据库重置表主键id的实现

《mysql数据库重置表主键id的实现》在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,本文主要介绍了mysql数据库重置表主键id的实现,具有一定的参考价值,感兴趣的可以了... 目录关键语法演示案例在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,当我们

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.

4-4.Andorid Camera 之简化编码模板(获取摄像头 ID、选择最优预览尺寸)

一、Camera 简化思路 在 Camera 的开发中,其实我们通常只关注打开相机、图像预览和关闭相机,其他的步骤我们不应该花费太多的精力 为此,应该提供一个工具类,它有处理相机的一些基本工具方法,包括获取摄像头 ID、选择最优预览尺寸以及打印相机参数信息 二、Camera 工具类 CameraIdResult.java public class CameraIdResult {

集群环境下为雪花算法生成全局唯一机器ID策略

雪花算法是生成数据id非常好的一种方式,机器id是雪花算法不可分割的一部分。但是对于集群应用,让不同的机器自动产生不同的机器id传统做法就是针对每一个机器进行单独配置,但这样做不利于集群水平扩展,且操作过程非常复杂,所以每一个机器在集群环境下是一个头疼的问题。现在借助spring+redis,给出一种策略,支持随意水平扩展,肥肠好用。 大致策略分为4步: 1.对机器ip进行hash,对某一个(大于

在实现回显功能模块的时候,把ID设置成全局变量了

在hsapprove.jsp中: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><script type="text/javascript">function edittodayhs(hsid){//alert(hsid);//

PL/SQL工具创建Oracle数据库表,实现id字段的自动递增

通过PL/SQL工具,创建Oracle数据库表,如何实现字段ID自动递增; Oracle的自增需要依靠序列和触发器共同实现 比如:先创建一个表 create table test (id int primary key, name varchar2(10)); 创建一个序列 create sequence test_seq increment by 1 start with 1  min

分布式项目中使用雪花算法提前获取对象主键ID

hello,大家好,我是灰小猿! 在做分布式项目开发进行数据表结构设计时,有时候为了提高查询性能,在进行数据库表设计时,会使用自增ID来代替UUID作为数据的主键ID,但是这样就会有一个问题,数据的自增ID应该如何获取到下一个ID并且插入到库中呢? 如果你使用的是mybatisPlus,可以使用自带的自增注解加在id字段上即可,这样在数据入库时就可以自动给数据赋值自增的主键ID, 但是对于不

《长得太长也是错?——后端 Long 型 ID 精度丢失的“奇妙”修复之旅》

引言 在前后端分离的时代,我们的生活充满了无数的机遇与挑战——包括那些突然冒出来的让人抓狂的 Bug。今天我们要聊的,就是一个让无数开发者哭笑不得的经典问题:后端 Long 类型 ID 过长导致前端精度丢失。说到这个问题,那可真是“万恶之源”啊,谁让 JavaScript 只能安全地处理 Number.MAX_SAFE_INTEGER(也就是 9007199254740991)以内的数值呢?