异或树【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;
}
相关推荐
WWJA王文举14 小时前
I²C通信完整流程详解:START、地址、ACK、数据、Repeated START和STOP一次讲透
c语言·开发语言
qq_4480111615 小时前
C语言中的动态内存分配
c语言·开发语言·php
动词ing16 小时前
【学习笔记】C语言(数组指针与指针数组+字符数组+函数+参数传递+字符串作为形参+递归函数+指针函数+回调函数+结构体嵌套+内存动态分配函数)
c语言·笔记·学习
小雨笙笙18 小时前
C语言:变量三属性——存储类型
c语言·开发语言
Navigator_Z19 小时前
LeetCode //C - 1192. Critical Connections in a Network
c语言·算法·leetcode
布莱克60519 小时前
理解 C/C++ 中的 void* 指针
c语言·c++
(initial)19 小时前
C-05. Kernel Fusion 代价边界:少写回 vs 寄存器压力与 occupancy
c语言·开发语言·cuda
不正经学生1 天前
C语言字符串函数进阶:安全版函数 + 错误处理 + 子串查找
c语言·开发语言·c++·算法·面试
不正经学生1 天前
C语言大小端字节序:内存里字节的排列顺序
c语言·开发语言·arm开发·c++·算法·c#
动词ing1 天前
【C语言】命名规范
c语言·开发语言