异或树【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;
}
相关推荐
2601_954526759 小时前
【工业传感与算法实战】温漂补偿与零点抗漂破局:基于二阶多项式拟合的 C/C++ 边缘校准算法,深度拆解“压力变送器什么牌子好”的技术硬指标
c语言·c++·算法
qq_448011169 小时前
C语言中的变量和函数的定义与声明
android·c语言·开发语言
aaaameliaaa12 小时前
指针之总结
c语言·笔记·算法
agathakuan13 小时前
Wireshark 解密並導出TLS 1.2 / TLS 1.3 明文的方法(可控制 Client 端)
c语言·wireshark·ssl·openwrt
caimouse13 小时前
protoc-gen-c 支持 proto3 `optional` 关键字修改记录
c语言·学习
noipp13 小时前
推荐题目:洛谷 P6231 [JSOI2013] 公交系统
c语言·数据结构·c++·算法·游戏·洛谷·luogu
c2385613 小时前
C/C++每日一练6
c语言·c++·算法
wdfk_prog13 小时前
嵌入式面试真题第 13 题:单硬件 Timer 下的高精度多路软件定时器架构设计
c语言·开发语言·面试·职场和发展·嵌入式
时间的拾荒人14 小时前
MySQL C语言连接 - 从入门到实战
android·c语言·mysql
code_pgf17 小时前
C/C++ 中 `typedef` 关键字详解
c语言·c++