HLG 2025

article/2025/8/16 7:02:11

 

确定大小
Time Limit: 1000 MSMemory Limit: 32768 K
Total Submit: 50(15 users)Total Accepted: 12(11 users)Rating: Special Judge: No
Description
现在有N个字母,(N <= 26),我们称之为A、B、C、D......。这次他们之间想确定大小关系。
但是现在只有一些残缺不全的关系,比如A > Z,然后没了......

现在给出N个字母,(前N个大写字母),然后给出M个关系,每个关系只有大于和小于两种。

最后判断那些是可以确定他应有的大小位置的。

(没有给出的关系,均属于不可确定)

Input
多组测试数据:每组测试数据:
第一行两个整数N,M。
接下来M行,每行一个关系,形式如:A>B A<B
(M < 30)
Output
按照ABCD...的顺序,输出可以确定的势力和他的排名。
如果都不可以确定,则输出-1。
Sample Input
3 2
A>B
B>C
3 3
A>B
B>C
C>A
Sample Output
A 1
B 2
C 3
-1

Source

 本题要求输出可以确定的人的排名2,首先需要建两个图,正向建一个反向建一个。

由于是有向图,对两个图中的每一个点进行bfs,记录以他为起始点所能扩展的点的数量

我的程序中用head和tail数组进行存储的。对于每个点,如何head值和tail值加起来的和为n-1

那么这个点的名次就是可以确定的了,

他的名次其实就是tail的值+1

还有一个问题就是结构体edge大小的问题
,我刚开始开的maxn,结果wa了,他的大小应该为2*maxn

#include<stdio.h>
#include<iostream>
#include<queue>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxn=50;
int head[maxn],tail[maxn];
int  vis[maxn];
struct Edge{int to;int next;
}edge1[maxn*4],edge2[maxn*4];
int head1[maxn];
int head2[maxn];
int tot1,tot2;
int n,q;
void addedge(int u,int v){edge1[tot1].to=v;edge1[tot1].next=head1[u];head1[u]=tot1++;edge2[tot2].to=u;edge2[tot2].next=head2[v];head2[v]=tot2++;
}
int head_num,tail_num;
void  head_bfs(int u){for(int i=1;i<=n;i++)vis[i]=0;vis[u]=1;queue<int>q;q.push(u);int v;while(!q.empty()){v=q.front();q.pop();for(int i=head1[v];i!=-1;i=edge1[i].next){if(!vis[edge1[i].to]){vis[edge1[i].to]=1;q.push(edge1[i].to);head_num++;}}}
}
void  tail_bfs(int u){for(int i=1;i<=n;i++)vis[i]=0;vis[u]=1;queue<int>q;q.push(u);int v;while(!q.empty()){v=q.front();q.pop();for(int i=head2[v];i!=-1;i=edge2[i].next){if(!vis[edge2[i].to]){vis[edge2[i].to]=1;q.push(edge2[i].to);tail_num++;}}}
}
void init(){tot1=0;tot2=0;memset(head1,-1,sizeof(head1));memset(head2,-1,sizeof(head2));
}
int main(){while(scanf("%d%d",&n,&q)!=EOF){init();char u,v,temp;getchar();int u1,v1;for(int i=1;i<=q;i++){scanf("%c%c%c",&u,&temp,&v);getchar();u1=u-'A'+1;v1=v-'A'+1;if(temp=='>')addedge(u1,v1);elseaddedge(v1,u1);}int cnt;for(int i=1;i<=n;i++){head_num=0;head_bfs(i);head[i]=head_num;tail_num=0;tail_bfs(i);tail[i]=tail_num;}bool flag=false;char c='A';for(int i=1;i<=n;i++){if(head[i]+tail[i]==n-1){printf("%c %d\n",c+i-1,tail[i]+1);flag=true;}}if(!flag)printf("-1\n");}return 0;
}

 

转载于:https://www.cnblogs.com/13224ACMer/p/4867580.html


http://chatgpt.dhexx.cn/article/lEpp94L9.shtml

相关文章

SDR屏幕放HDR(HLG)视频画面泛灰

假设场景线性光E&#xff08;RGB&#xff09;1. SDR&#xff1a;数据位宽为10bit。灰度值2^10 * E1023; HDR&#xff1a;HDR根据OETF&#xff08;光电转换&#xff09;将相对场景线性光映射到非线性信号值 E 0.5&#xff1b; 灰度值2^10*0.5512&#xff1b; 所以本来需要显…

HDR相关标准-HLG/HDR10/HDR10+/DOLBY VISION

目录 主要参考信息 动态元数据及使用 相关标准文件 主要参考信息 杜比视界HDR参数_qq26983255的博客-CSDN博客_pq和hlghttps://blog.csdn.net/qq26983255/article/details/119830337?spm1001.2014.3001.5502 HDR到底是什么&#xff1f;_相见不如怀念-CSDN博客一&#xf…

PQ和HLG标准及其转换

目录 PQ标准的电光转换函数PQ_EOTF PQ标准的光电转换函数PQ_OETF HLG标准的电光转换函数HLG_EOTF HLG标准的光电转换函数 HLG_OETF HLG标准转PQ标准HLG2PQ PQ标准转HLG标准PQ2HLG PQ标准的电光转换函数PQ_EOTF PQ标准的光电转换函数PQ_OETF HLG标准的电光转换函数HLG_EOTF…

OpenGLSL中处理HDR.ToneMapping(HLG)

紧跟前提文章&#xff0c;没有HDR.ToneMapping知识基础的同学请先阅读之前的文章&#xff1a; HDR in Android 专栏 这篇文章主要是介绍在GLSL中处理HLG&#xff08;hybrid-log-gamma 混合对数伽马曲线&#xff09;的HDR tonemap SDR的渲染流程。 先看看Wiki有关HLG的概述&am…

HDR中HLG与PQ曲线的互转

HDR视频中由于电光转换曲线的不同&#xff0c;技术标准也大致分为了杜比视界、HDR10、HDR10、HLG等&#xff0c;目前常用的主要是以PQ曲线的HDR10和HLG。这两者之间的区别在HDR视频编码参数中进行过详细的说明。一般的HLG适用于广电&#xff08;根据用户设备的峰值亮度动态的调…

使用DataList吧

这是个具有明显煽动性的标题&#xff0c;没错&#xff0c;在这里就是提议大家使用DataList。在MSDN中文站有一篇关于repeater&#xff0c;datalist和datagrid的性能测试的文章&#xff0c;我也把这篇文章转到了我的站的“转载嘿嘿 希望你接受我的教训 一定早做打算 精华”里&am…

html5-datalist标签-定义选项列表

datalist使用 datalist使用需与input关联起来&#xff0c;input定义list属性&#xff0c;同时datalist定义id属性&#xff0c;两者的值必须相同。 实例代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><m…

常用数据集合—List

1、List、Map、Set、Queue、Array 2、数据结构&#xff1a;数组、链表 3、实现List方法的类Ctrl T&#xff08;设置的是Eclipse快捷键&#xff09;或右键查找 4、这里就简单看下最常用的ArrayList 5、构造方法一目了然 6、添加数据&#xff0c;一条条添加或者添加集合 良好…

DataList的数据绑定

8.4.1 DataList的数据绑定 DataList控件中通过自定义模板来设置数据的显示样式&#xff0c;它支持如下模板类型&#xff1a; ItemTemplate&#xff1a;包含一些 HTML元素和控件&#xff0c;将为数据源中的每一行呈现一次这些HTML元素和控件。 AlternatingItemTemplate&#xf…

datalist标签

学习笔记&#xff0c;仅供参考&#xff0c;有错必纠 参考自&#xff1a;w3school 关于datalist标签 <datalist> 标签定义选项列表&#xff0c;应该与 <input>标签配合使用该&#xff0c;它定义 input 可能的值&#xff1b; <datalist> 及其选项不会被显示出…

datalist 元素

效果图&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>datalist 元素</title> </head> <body><form action"#" method"post">请输入用户…

<datalist>标签

<datalist>标签是HTML5新增的元素&#xff0c;用于input的标签可选值。 用法&#xff1a;input标签的list属性指定自定义的datalist可选值&#xff0c;datalist的id于list值相同即可完成绑定。 可选值: <input type"text" list"myDatalist">…

数据列表DataList模板之实例

1&#xff0c;数据列表DataList与重复列表Repeator很类似&#xff0c;但是DataList应用更广泛&#xff0c;因为他可以选择和修改数据项的内容。 DataList的数据显示和布局与Repeator控件一样都是通过“模板”控制的。 &#xff08;注&#xff1a;模板至少要定义一个“数据项模…

DataList详细用法

DataList控件与Repeater控件一样由模板驱动,与Repeater控件不同的是: DataList控件默认输出是一个HTML表格.DataList在输出时已经在相应的模板上套上了表格标签,而Repeater则是模板是什么样,输出就是什么样. 1. DataList显示数据 例1:使用DataList显示数据 Code <as…

DataList 用法详解

<% Page Language"C#" AutoEventWireup"true" CodeBehind"DataList.aspx.cs" Inherits"FileUpload自动上传文件.DataList" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w…

datalist标签使用

jsp使用datalist标签写可查询可输入下拉框样式 jsp使用datalist标签写可查询可输入下拉框样式。需求用法 jsp使用datalist标签写可查询可输入下拉框样式。 需求 jsp页面实现可选择,可查询,可输入的下拉选择框, 一段废话 本来想用select看看有什么属性可以实现,但基本上接触的…

DataList内容详解

DataList是另一种显示数据控件&#xff0c;它与GridView不同的是&#xff0c;它全部使用模板进行设计&#xff0c;并且DataList的模板是对整行设置&#xff0c;而不是像GridView那样只对某一列进行模板设计。 正是由于它使用模板进行设计&#xff0c;所以它的灵活性比GridView更…

DataList控件详细用法(一)

使用DataList控件 本章内容&#xff1a; 1、理解事件冒泡 2、使用模板 3、在DataList中显示数据 4、在DataList中创建多列 5、捕获DataList控件中产生的事件 6、选择DataList中的项 7、使用DataList控件中的DataKeys集合 8、编辑DataList中的项 本章介绍在ASP.NET框架中功能…

(13)<datalist> 标签

一、<datalist>标签的作用 <datalist> 标签规定了<input> 元素可能的选项列表。<datalist>元素包含了一组<option>元素&#xff0c;这些元素表示预定义可选值&#xff0c;在<input>元素输入过程中&#xff0c;会自动响应<option>元…