Day4-T2
原题目
某大厦共有 N 层,现在知道共有 K 个请求要上下电梯;下面告诉你每个请求乘电梯的出发层次和结 束层次。请你求出整个电梯的运行过程。假设电梯一开始停在第一层,运行 K 个请求最后回到第一层。
例如有个 9 个层次的电梯,共接收到 5 个请求。
1 5(表示要求从 1 层到 5 层)
4 2
2 8
6 9
5 1
那么电梯的运行路线为:1-2-5-6-8-9-5-4-2-1
第一行为 N 和 K; 后面每行两个整数 x y 表示 K 个请求,每个请求保证合理.且肯定有请求从第一层出发,也肯定有请求 回到第一层结束。但不一定能够达到最高层,数据保证解的唯一性。
电梯的运行过程,要求从第一层开始,最后回到第一层,每两个数据之间用"-"间隔,行首和行末不要 有多余的"-"("-"为减号)。
S1:
Input:
Output:
1---------1
Describe:
code:
#include<bits/stdc++.h>
#define INF 214748364
#define eps 1e-9
#define rep1(a,b) for(register int i=(a);i<=(b);i++)
#define rep2(a,b) for(register int j=(a);j<=(b);j++)
using namespace std;
int n,k,ii=1,tot,maxx=-1;
int tp[1000111],f[1000101];
struct BDF{
int l,r;
bool wy;
}a[1001001];
inline bool cmp(BDF a,BDF b){
if(a.wy!=b.wy)return a.wy>b.wy;
else if(!a.wy)return a.l>b.l;
else return a.l<b.l;
}
inline int read(){
int ret=0,f=1;char ch=getchar();
while (ch<'0'||ch>'9') {if (ch=='-') f=-f;ch=getchar();}
while (ch>='0'&&ch<='9') ret=ret*10+ch-'0',ch=getchar();
return ret*f;
}
inline double read2(){
double X=0,Y=1.0;int w=0;char ch=0;
while(!isdigit(ch)){w|=ch=='-';ch=getchar();}
while(isdigit(ch))X=X*10+(ch^48),ch=getchar();
ch=getchar();
while(isdigit(ch)) X+=(Y/=10)*(ch^48),ch=getchar();
return w?-X:X;
}
inline void write(int x){
if(x<0){putchar('-');write(-x);return;}
if(x/10) write(x/10);
putchar(x%10+'0');
}
int main(){
freopen("lift.in","r",stdin);
freopen("lift.in","w",stdout);
n=read(),k=read();
for(int i=1;i<=k;i++) //分类成上行和下行讨论
{
a[i].l=read();
a[i].r=read();
if(a[i].l<a[i].r)a[i].wy=1;
else a[i].wy=0;
}
sort(a+1,a+k+1,cmp);
// for(int i=1;i<=n;i++)
// cout<<a[i].l<<' '<<a[i].r<<' ';
while(a[ii].wy&&ii<=k){ //上行桶排
tp[a[ii].l]++;
tp[a[ii].r]++;
maxx=max(maxx,a[ii].r); //存储上行终点
ii++;
}
for(int i=1;i<=100000;i++) //导入数组
if(tp[i])f[++tot]=i;
ii=k; memset(tp,0,sizeof(tp)); while(!a[ii].wy&&ii>=1){ //下行桶排
tp[a[ii].l]++;
tp[a[ii].r]++;
if(a[ii].l>maxx)maxx=-1; //数据有锅,不加这句话AC,但理论上应该特判 (若上行终点不是下行起点且比下行起点低,如果下行也有上行终点相同楼层也要输出,但数据不特判)
ii--;
}
for(int i=100000;i>=1;i--) //导入数组
if(tp[i]&&i!=maxx)f[++tot]=i; //特判
for(int i=1;i<=tot-1;i++)
cout<<f[i]<<"-";
cout<<f[tot];return 0;
return 0;
}
Day4-T2的更多相关文章
- FJ省队集训DAY4 T2
XXX #include<cstdio> #include<iostream> #include<cmath> #include<cstring> #i ...
- Qbxt 模拟赛 Day4 T2 gcd(矩阵乘法快速幂)
/* 矩阵乘法+快速幂. 一开始迷之题意.. 这个gcd有个规律. a b b c=a*x+b(x为常数). 然后要使b+c最小的话. 那x就等于1咯. 那么问题转化为求 a b b a+b 就是斐波 ...
- Day4:T1小技巧(类似于指针操作)T2搜索+小细节
Day4:其中有很多小技巧get T1 一直没有听到过像这样的小技巧的略专业名词,有点类似于指针操作,之前有碰到过很多这样的题目 每次都是以不同的形式出现,但是感觉思想还是有点接近的吧(就比如某天有一 ...
- 佳木斯集训Day4
Day4的出题人好毒瘤啊!!! T1我打表过的,正解现在也不会 #include <bits/stdc++.h> #define MAXN 10050 #define ll long lo ...
- 2022寒假集训day4
day4(day5补完的) 继续刷搜索方面的题, 初步了解了序列. T1 迷宫问题 题目描述设有一个 n*n 方格的迷宫,入口和出口分别在左上角和右上角.迷宫格子中分别放 0 和 1 ,0 表示可通, ...
- 北京培训记day4
智商题QAQ-- T1:求>=n的最小素数,n<=10^18 暴力枚举n-n+100,miller-rabin筛法 T2:给定一个01矩阵,每次选择一个1并将(x,y)到(1,1)颜色反转 ...
- [Noip2016]蚯蚓 D2 T2 队列
[Noip2016]蚯蚓 D2 T2 Description 本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3.蛐蛐国最近蚯蚓成灾了!隔壁跳 蚤国的跳蚤也拿蚯 ...
- T2 Func<in T1,out T2>(T1 arg)
委托调用方法的4种方式. using System; using System.Collections.Generic; namespace ConsoleApplication1 { delegat ...
- Hotelling T2检验和多元方差分析
1.1 Hotelling T2检验 Hotelling T2检验是一种常用多变量检验方法,是单变量检验的自然推广,常用于两组均向量的比较. 设两个含量分析为n,m的样本来自具有公共协方差阵的q维正态 ...
- 【2016-10-13】【坚持学习】【Day4】【virtual 虚函数】
定义一个基类,有一个虚函数 定义三个子类,分别继承,重写,New,这个虚函数 abstract class Test { public virtual void Prinf() { Console ...
随机推荐
- CPD
CPD,Cost per day的缩写,意思是按天收费,是一种广告合作方式.在实际的广告合作中根据行业不同还包括Cost per Download的缩写含义,意思是依据实际下载量收费.
- underscore.js -2009年发布的js库
2009 Underscore.js 0.1.0发布 Underscore一个JavaScript实用库,提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象.它是这个问题的 ...
- Kubernetes 的一些重要概念
Cluster Cluseter 是计算.存储和网络资源的集合,Kubernetes 利用这些资源运行各种基于容器的应用. Master Master 是 Cluster 的大脑, 它的主要责任是调度 ...
- jeDate日期控件精确到秒
案例下载 链接: https://pan.baidu.com/s/1m7eEW6K6Bt1t-0OjVY_Wxw 密码: xmei <script type="text/javascr ...
- Js为Dom元素绑定事件须知
为异步加载的Dom 元素绑定事件必须在加载完成之后绑定: $('body').load('LearnClickBinding.ashx');$('a').click(function () { ale ...
- 搜索控制器UISearchController的使用
说明:本文主要是将系统UISearchController控件声明文件中的属性.方法.代理等介绍下,后续再联合[搜索栏UISearchBar]这篇文章一起更新更实用的信息. 1.初始化 // 如果设置 ...
- sklearn中调用集成学习算法
1.集成学习是指对于同一个基础数据集使用不同的机器学习算法进行训练,最后结合不同的算法给出的意见进行决策,这个方法兼顾了许多算法的"意见",比较全面,因此在机器学习领域也使用地非常 ...
- webpack打包文件中的@符号表示什么意思
在看使用webpack打包的项目代码时,经常会看到在路径中引用@符号 import one from '@/views/one.vue' 那这里的@符号到底表示什么意思呢? 这其实利用了webpack ...
- PLSQL设置显示的字符集及设置
一.关于PLSQL无法正确显示中文 刚才下载安装了PLSQL Developer 9.0.0.1601 汉化绿色版,执行SQL查询语句,发现显示的数据中只要有中文都会以?表示.经过网上查询得知这是客户 ...
- Mybatis+Spring的整合练习
一.建立数据库.建表 二.新建maven项目 三.添加依赖 <dependencies> <dependency> <groupId>junit</group ...