水题...

排序搞出每天的会议有哪些, 然后再按照会议的开始时间和结束时间排序, 最晚开始的和最早结束的会议不是同一场而且最晚开始的时间>最早结束的会议就有可能方案

----------------------------------------------------------------------------

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#define rep(i, n) for(int i = 0; i < n; i++)
#define clr(x, c) memset(x, c, sizeof(x))
using namespace std;
const int maxn = 500009, maxm = 29;
int L[maxn], R[maxn], n, m, _L[maxm], _R[maxn];// [_L[i], _R[i])
struct mtg {
int l, r, day, pos;
inline void read(int p) {
scanf("%d%d%d", &l, &r, &day);
pos = ++p;
}
bool operator < (const mtg&t) const {
return day < t.day;
}
} M[maxn];
bool cmpL(const int i, const int j) {
return M[i].l > M[j].l;
}
bool cmpR(const int i, const int j) {
return M[i].r < M[j].r;
}
int main() {
freopen("test.in", "r", stdin);
cin >> n >> m;
rep(i, n) M[i].read(i);
sort(M, M + n);
clr(_L, -1);
rep(i, n) {
mtg*t = M + i;
if(_L[t->day] == -1) _L[t->day] = i;
_R[t->day] = i + 1;
L[i] = R[i] = i;
}
for(int i = 1; i <= m; ++i ) {
sort(L + _L[i], L + _R[i], cmpL);
sort(R + _L[i], R + _R[i], cmpR);
if(R[_L[i]] != L[_L[i]] && M[R[_L[i]]].r < M[L[_L[i]]].l)
   printf("TAK %d %d\n", M[L[_L[i]]].pos, M[R[_L[i]]].pos);
else
   puts("NIE");
}
return 0;
}

----------------------------------------------------------------------------

4143: [AMPPZ2014]The Lawyer

Time Limit: 10 Sec  Memory Limit: 256 MBSec  Special Judge
Submit: 163  Solved: 123
[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

HINT

Source

鸣谢Claris上传

转载于:https://www.cnblogs.com/JSZX11556/p/4658501.html

BZOJ 4143: [AMPPZ2014]The Lawyer( sort )相关推荐

  1. bzoj4143: [AMPPZ2014]The Lawyer

    4143: [AMPPZ2014]The Lawyer Time Limit: 10 Sec  Memory Limit: 256 MBSec  Special Judge Submit: 462   ...

  2. BZOJ 4143 The Lawyer

    这道题看起来很吓人,但事实上看懂后会发现,其根本没有任何技术含量,做这道题其实要考虑的就是每天最早结束的一场的结束时间以及最晚开始的一场的开始时间,如果结束时间早于开始时间,那么OK就这两场,否则输出 ...

  3. BZOJ.4144.[AMPPZ2014]Petrol(Kruskal重构树)

    BZOJ 看别人代码的时候发现哪一步都很眼熟,突然想起来,就在四个月前我好像看过还给别人讲过?mmp=v= 果然不写写就是容易忘.写了好歹忘了的时候还能复习呢(虽然和看别人的好像也没多少差别?). 首 ...

  4. BZOJ 4152: [AMPPZ2014]The Captain(最短路)

    Time Limit: 20 Sec  Memory Limit: 256 MB Submit: 1550  Solved: 619 [Submit][Status][Discuss] Descrip ...

  5. Bzoj 4147: [AMPPZ2014]Euclidean Nim(博弈)

    4147: [AMPPZ2014]Euclidean Nim Time Limit: 1 Sec Memory Limit: 256 MB Description Euclid和Pythagoras在 ...

  6. BZOJ4143 [AMPPZ2014]The Lawyer

    Description Byteasar要制订m天的会议计划,一共有n场会议,第i场会议开始于第d[i]天的第a[i]秒,结束于第d[i]天的第b[i]秒. 对于每一天,请找出这一天的两场会议i,j, ...

  7. BZOJ 1552/1506 [Cerc2007]robotic sort

    AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=1552 [分析] 这题哇!又有翻转操作...每次要输出第几个?是吧... 所以又要用Spla ...

  8. 【bzoj4143】[AMPPZ2014]The Lawyer

    这是noip–难度吧..... 把第i天的所有左端点排序,然后upper_bound右端点就行了. 唔.......... #include <bits/stdc++.h> using n ...

  9. 一句话题解(20170801~20170125)

    8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...

最新文章

  1. lettuce--Advanced Redis client
  2. optee HSM的实现
  3. php中绘画控制包括什么,PhpStorm中绘画UML
  4. 《软件工程》实验报告——软件设计
  5. AutoMapper之投影
  6. dwf怎么合成一个_将ActionForm拼合成一条插入和更新语句
  7. 前端学习(2820):全局文件tabber字段
  8. php 5.6 mcrypt,php 5.6.36 安装mcrypt
  9. MaxCompute 图计算用户手册(上)
  10. GoldenDict和主流英语词典产品
  11. Cesium-Fullscreen全屏显示
  12. SHT20温湿度传感器
  13. python创建ppt_ppt自动化创建工具——python-pptx
  14. 基于BP神经网络的英文字母识别
  15. 视频编码之I,P,B帧
  16. 如何群发邮件,5秒帮你搞定
  17. python urllib库获取淘宝主图
  18. 如何搭建一套有价值的团队知识管理体系?
  19. Cadence Allegro PCB各层含义
  20. 【数据分发服务DDS】软件定义汽车【四】-行业现状

热门文章

  1. node在regedit配置哪个位置_Spring Boot 2.x基础教程:Spring Data JPA的多数据源配置
  2. 单片机STM8S测量电压电路_单片机设计的胶带输送机智能模糊检测系统,准确性高,胶带寿命长...
  3. 彻底搞懂阻塞、非阻塞、同步、异步
  4. 设计模式004:抽象工厂模式
  5. Python机器学习:逻辑回归003逻辑回归的损失函数的梯度
  6. java 滚动显示信息_滚动显示文本的Java程序
  7. java jpanel 叠加_java – 如何在JPanel上叠加,调整大小和居中组件?
  8. 导出oracle数据c#代码,C# 程序导入导出oracle数据库
  9. 曾辉机器人_武汉一高校大学生研发深度学习机器人 会打太极、跳舞
  10. ArcGIS中栅格数据的金字塔详解