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

    4143: [AMPPZ2014]The Lawyer

    Time Limit: 10 Sec  Memory Limit: 256 MBSec  Special Judge
    Submit: 462  Solved: 257
    [Submit][Status][Discuss]

    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
     
    题解
    记录下每天最早的结束时间和最晚的开始时间,没了
     1 /**************************************************************
     2     Problem: 4143
     3     User: 1090900715
     4     Language: Pascal
     5     Result: Accepted
     6     Time:6388 ms
     7     Memory:15852 kb
     8 ****************************************************************/
     9  
    10 program j01;
    11 var n,m,a,b,d:int64;
    12     i:longint;
    13     ma,mb,ida,idb:array[0..500086]of int64;
    14 begin
    15   readln(n,m);
    16   for i:=1 to m do
    17   begin
    18     ma[i]:=0;mb[i]:=maxlongint*maxlongint;
    19   end;
    20   for i:=1 to n do
    21   begin
    22     readln(a,b,d);
    23     if a>=ma[d] then
    24     begin
    25       ida[d]:=i;
    26       ma[d]:=a;
    27     end;
    28     if b<=mb[d] then
    29     begin
    30       idb[d]:=i;
    31       mb[d]:=b;
    32     end;
    33   end;
    34   for i:=1 to m do
    35     if ma[i]<=mb[i] then writeln('NIE')
    36     else writeln('TAK ',idb[i],' ',ida[i]);
    37 end.

    4143: [AMPPZ2014]The Lawyer

    Time Limit: 10 Sec  Memory Limit: 256 MBSec  Special Judge
    Submit: 462  Solved: 257
    [Submit][Status][Discuss]

    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
  • 相关阅读:
    c基础
    一维数组,字符数组
    循环结构
    分支结构
    结构体
    Python简介和入门
    Python基础(一)
    Markdown 基础学习
    PyCharm 专业版安装
    Python基础(二)
  • 原文地址:https://www.cnblogs.com/oldjang/p/6189303.html
Copyright © 2011-2022 走看看