Knight Tournament CodeForces

来源:互联网 发布:朱元璋书法 知乎 编辑:程序博客网 时间:2024/05/16 05:22

点击打开链接

模拟链表 next[i]表示第i个元素左边(右边亦可)第一个需要改变的元素

亦可用并查集

#include <stdio.h>int f[300010],next[300010];int min(int u,int v);int main(){    int n,m,i,j,x,y,z,t;    while(scanf("%d%d",&n,&m)!=EOF)    {        for(i=1;i<=n;i++)        {            f[i]=0;            next[i]=i+1;        }        while(m--)        {            scanf("%d%d%d",&x,&y,&z);            for(i=x;i<=y;i=t)            {                if(f[i]==0&&i!=z) f[i]=z;                t=next[i];                if(i<z)                {                    next[i]=z;                }                else                {                    next[i]=next[y];                }            }        }        for(i=1;i<n;i++)        {            printf("%d ",f[i]);        }        printf("%d\n",f[i]);    }    return 0;}int min(int u,int v){    if(u<v) return u;    else return v;}