同样的思路,使用队列和结构体会超时。

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
const int N = 10005;int node_l[N], node_r[N];
int id_l[N], id_r[N];
int ans[N];
int n_l, n_r;int main()
{int c;cin >> c;int n, t, m;int i, j, time;string str;while (c--){cin >> n >> t >> m;n_l = n_r = 0;for (i = 1; i <= m; i++){cin >> time >> str;if (str[0] == 'l'){node_l[++n_l] = time;id_l[n_l] = i;}else{node_r[++n_r] = time;id_r[n_r] = i;}}int now_fx = 1, now_time = 0;int l = 1, r = 1;while (l <= n_l || r <= n_r){if (l <= n_l && node_l[l] < node_r[r] || r > n_r){if (now_fx != 1)now_time = max(now_time + t, node_l[l] + t);elsenow_time = max(now_time, node_l[l]);if (now_fx != 1){for (i = 1; i <= n && r <= n_r; i++){if (node_r[r] <= now_time - t){ans[id_r[r++]] = now_time;}elsebreak;}}for (i = 1; i <= n && l <= n_l; i++){if (node_l[l] <= now_time){ans[id_l[l++]] = now_time + t;}elsebreak;}now_fx = 2;now_time += t;}else{if (now_fx != 2)now_time = max(now_time + t, node_r[r] + t);elsenow_time = max(now_time, node_r[r]);if (now_fx != 2){for (i = 1; i <= n && l <= n_l; i++){if (node_l[l] <= now_time - t){ans[id_l[l++]] = now_time;}elsebreak;}}for (i = 1; i <= n && r <= n_r; i++){if (node_r[r] <= now_time){ans[id_r[r++]] = now_time + t;}elsebreak;}now_fx = 1;now_time += t;}}for (i = 1; i <= m; i++)cout << ans[i] << endl;if (c > 0)cout << endl;}return 0;
}

杭电OJ 1046(C++)相关推荐

  1. 杭电OJ分类题目(2)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(2) HDU Water~~~ HDU 100 ...

  2. 【ACM】杭电OJ 2037

    题目链接:杭电OJ 2037 先把b[i]进行排序,然后,b[i]与a[i+1]进行比较. #include <iostream> #include <cstdio> #inc ...

  3. 【ACM】杭电OJ 2020(排序)

    题目链接:杭电OJ 2020 排序可以有冒泡排序,选择排序,或者直接调用函数. 下面是选择排序: #include <stdio.h> #include <math.h> in ...

  4. 【ACM】杭电OJ 2018

    题目链接:杭电OJ 2018 从n>4开始,每一年的牛的数量=前一年的牛的数量+三年前的牛的数量 问:为什么是三年前? 答:假设三年前有一头小牛出生,出生的那一年即为第一年,到了第四年,即三年后 ...

  5. 【ACM】杭电OJ 1005

     题目链接:杭电OJ 1005 超时代码如下(而且开辟的数组空间大小不够): #include <stdio.h> int m[100000]; int f(int n,int a,int ...

  6. 【ACM】杭电OJ 1004

     题目链接:杭电OJ 1004 运行环境:Dev-C++ 5.11 思路: 先把先把num数组全部赋值为1:第一个颜色单独输入,从第二个开始,需要与前面的进行比较,如果前面有相同的颜色,则在目前的nu ...

  7. 【ACM】杭电OJ 2012。

    题目链接:杭电OJ 2012 思路很简单,但是有一种高效算法显示编译错误,不知道为什么 运行环境:VS2017 AC代码: #include <stdio.h> #include < ...

  8. 【ACM】杭电OJ 1003。

    运行环境VS2017  题目链接:杭电OJ 1003 主要思想是: 用d[i]来存放前i项中最大的和,得到end,然后再倒推,得起始的位置begin 然而在程序42行的疑问,大家可以讨论一下吗???? ...

  9. 【ACM】杭电OJ 1241(深度优先搜索小结)

    题目链接:杭电OJ 1241 深度优先搜索问题 深度优先搜索是搜索的手段之一.它从某个状态开始,不断地转移状态直到无法转移,然后回退到前一步的状态,继续转移到其他状态,如此不断重复,直至找到最终的解. ...

  10. 【ACM】杭电OJ 1096

    题目链接:杭电OJ 1096  只要注意输出格式就好,其他没有问题! #include <stdio.h> int main () {int a,N,n,sum;scanf("% ...

最新文章

  1. 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
  2. Machine Schedule为什么UVA过了POJ过不了
  3. mysql noinstall 5.5_安装配置MYSQL5.5
  4. POJ 3678 Katu Puzzle
  5. INITRANS和MAXTRANS参数的作用
  6. labelme新版本的使用须知
  7. 安卓java模拟器怎么用_安卓java模拟器(安卓手机如何玩JAVA游戏以及JAVA软件的方法)...
  8. wow服务器维护通告,新一轮大服务器实装公告:4月2日凌晨维护
  9. 快过年了,该买回家的票了,自动抢票之 12306 抢票篇
  10. java poi导出下载excel报表或下载到指定路径
  11. 《华尔街》观后笔记7——阳光交易
  12. 渗透测试入门(域名、DNS)— 理论知识
  13. 解决IDEA中maven创建web项目时新建无jsp选择项
  14. rainbow和论坛的集成
  15. MinIO 文件服务器简单搭建
  16. 模糊数学学习笔记 1:模糊集
  17. image-conversion 图片压缩,vue
  18. 3D医学图像CT dcm格式转换为png
  19. 华为OD机试 - 相对开音节 | 备考思路,刷题要点,答疑 【新解法】
  20. php禁止视频自动播放,分享新浪视频禁止自动播放的方法

热门文章

  1. IPD流程在华为15年发展历程…
  2. 运动控制加减速算法(一)
  3. 从头开始聊P问题、NP问题与NPC问题
  4. FastDFS 原理介绍
  5. 破解密码——利用Windows PE操作系统破解Windows PIN
  6. ResNet网络结构详解及代码复现
  7. 操作系统-io设备基本概念和分类
  8. cad计算机绘图入门,【菜鸟宝典】AutoCAD制图入门教学!
  9. php 中英文互换,php做项目进行中英文的切换,如何快速实现
  10. 响应式2022英文企业官网源码,感觉挺有创意的