zoukankan      html  css  js  c++  java
  • BZOJ4143 [AMPPZ2014]The Lawyer

    Description

    Byteasar要制订m天的会议计划,一共有n场会议,第i场会议开始于第d[i]天的第a[i]秒,结束于第d[i]天的第b[i]秒。
    对于每一天,请找出这一天的两场会议i,j,使得它们不冲突,即不存在一个数k同时满足a[i]<=k<=b[i]以及a[j]<=k<=b[j]。
     

    Input

    第一行包含两个正整数n,m(2<=n<=500000,1<=m<=20),表示会议的场数和天数。
    接下来n行,每行包含三个正整数a[i],b[i],d[i](1<=a[i]<b[i]<=80000000,1<=d[i]<=m),描述一场会议。
     

    Output

    输出m行。第i行输出第i天的答案,如果无解,输出NIE,否则输出TAK,然后输出这一天参加的两场会议的编号,
    如有多组解,输出任意一组。
     

    Sample Input

    6 3
    3 5 1
    2 4 2
    1 8 1
    6 7 3
    3 5 2
    7 12 1

    Sample Output

    TAK 1 6
    NIE
    NIE

     

    这真的是BZOJ上的题?
    用邻接边将每天的会议串起来,因为任意一个方案即可,扫一遍取左端点的最大值,右端点的最小值,判判即可。

    #include<cstdio>
    #include<cctype>
    #include<queue>
    #include<cstring>
    #include<algorithm>
    #define rep(i,s,t) for(int i=s;i<=t;i++)
    #define ren for(int i=first[x];i!=-1;i=next[i])
    using namespace std;
    inline int read() {
        int x=0,f=1;char c=getchar();
        for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;
        for(;isdigit(c);c=getchar()) x=x*10+c-'0';
        return x*f;
    }
    const int maxn=500010;
    struct Conference {int s,t;}A[maxn];
    int first[21],next[maxn],e,num[maxn];
    void Add(int x,int v) {
        num[++e]=v;next[e]=first[x];first[x]=e;
    }
    int n,m;
    int main() {
        n=read();m=read();
        rep(i,1,n) A[i].s=read(),A[i].t=read(),Add(read(),i);
        rep(i,1,m) {
            int a=num[first[i]],b=a,cnt=0;
            for(int j=first[i];j;j=next[j]) {
                if(A[num[j]].s>A[a].s) a=num[j];
                if(A[num[j]].t<A[b].t) b=num[j];
                cnt++;
            }
            if(cnt<2||A[a].s<=A[b].t) puts("NIE");
            else printf("TAK %d %d
    ",a,b);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    SpringBoot是如何动起来的
    Windows 10 安装 Docker for Windows
    Spring Boot2.0 设置拦截器
    修改博客园的css样式
    Spring-Aop
    Java自学-泛型 集合中的泛型
    Java自学-集合框架 聚合操作
    Java自学-集合框架 Comparator和Comparable
    Java自学-集合框架 hashCode原理
    Java自学-集合框架 HashSet、LinkedHashSet、TreeSet之间的区别
  • 原文地址:https://www.cnblogs.com/wzj-is-a-juruo/p/4621989.html
Copyright © 2011-2022 走看看