异或树【C语言】

解题思路

复制代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_N 100005
#define MAX_M 1001
#define INF 0x3f3f3f3f
int a[MAX_M][5];
char s[MAX_N][10];
int main(){
    int n,m;
    scanf("%d %d",&n,&m);
    for(int i=1;i<=n;i++){
        scanf("%s",s[i]);
    }
    for(int i=1;i<=m;i++){
        for(int j=0;j<5;j++){
            a[i][j]=-1;
        }
    }
    int min_len=INF;
    int L=0,R=0;
    for(int r=1;r<=n;r++){
        char* str=s[r];
        int j=str[0]-'A';
        int i=atoi(&str[1]);
        a[i][j]=r;
        int flag=1;
        int min_pos=INF;
        for(int k=0;k<5;k++){
            if(a[i][k]==-1){
                flag=0;
                break;
            }
            if(a[i][k]<min_pos){
                min_pos=a[i][k];
            }
        }
        if(flag){
            int len=r-min_pos+1;
            if(len<min_len||(len==min_len&&min_pos<L)){
                min_len=len;
                L=min_pos;
                R=r;
            }
        }
    }
    printf("%d %d\n",L,R);
    return 0;
}
相关推荐
Dlrb12118 小时前
C语言-指针三
c语言·算法·指针·const·命令行参数
kkeeper~8 小时前
0基础C语言积跬步之深入理解指针(5下)
c语言·开发语言
三品吉他手会点灯10 小时前
C语言学习笔记 - 40.数据类型 - scanf函数的编程规范与非法输入处理
c语言·开发语言·笔记·学习
♛识尔如昼♛13 小时前
C 进阶(9) - 信号
c语言·信号
qeen8717 小时前
【算法笔记】各种常见排序算法详细解析(下)
c语言·数据结构·c++·笔记·学习·算法·排序算法
Legendary_00819 小时前
解析 PD Sink 与 LDR6500U:Type-C 取电的核心密码
c语言·开发语言
basketball61620 小时前
C++ 强制类型转换:从 C 风格到 C++ 四大金刚
java·c语言·c++
AI科技星20 小时前
全域数学公理:基于32维超复数与易经卦爻的宇宙大一统理论(整理版)
c语言·开发语言·线性代数·量子计算·agi
LuminousCPP21 小时前
数据结构 - 线性表第二篇:动态顺序表进阶接口实现
c语言·数据结构·笔记·顺序表·线性表
AI科技星21 小时前
全域粒子质量几何曲率统一公式体系(通俗易懂版)
c语言·开发语言·网络·量子计算·agi