杭电OJ 1046(C++)
同样的思路,使用队列和结构体会超时。
#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++)相关推荐
- 杭电OJ分类题目(2)
原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(2) HDU Water~~~ HDU 100 ...
- 【ACM】杭电OJ 2037
题目链接:杭电OJ 2037 先把b[i]进行排序,然后,b[i]与a[i+1]进行比较. #include <iostream> #include <cstdio> #inc ...
- 【ACM】杭电OJ 2020(排序)
题目链接:杭电OJ 2020 排序可以有冒泡排序,选择排序,或者直接调用函数. 下面是选择排序: #include <stdio.h> #include <math.h> in ...
- 【ACM】杭电OJ 2018
题目链接:杭电OJ 2018 从n>4开始,每一年的牛的数量=前一年的牛的数量+三年前的牛的数量 问:为什么是三年前? 答:假设三年前有一头小牛出生,出生的那一年即为第一年,到了第四年,即三年后 ...
- 【ACM】杭电OJ 1005
题目链接:杭电OJ 1005 超时代码如下(而且开辟的数组空间大小不够): #include <stdio.h> int m[100000]; int f(int n,int a,int ...
- 【ACM】杭电OJ 1004
题目链接:杭电OJ 1004 运行环境:Dev-C++ 5.11 思路: 先把先把num数组全部赋值为1:第一个颜色单独输入,从第二个开始,需要与前面的进行比较,如果前面有相同的颜色,则在目前的nu ...
- 【ACM】杭电OJ 2012。
题目链接:杭电OJ 2012 思路很简单,但是有一种高效算法显示编译错误,不知道为什么 运行环境:VS2017 AC代码: #include <stdio.h> #include < ...
- 【ACM】杭电OJ 1003。
运行环境VS2017 题目链接:杭电OJ 1003 主要思想是: 用d[i]来存放前i项中最大的和,得到end,然后再倒推,得起始的位置begin 然而在程序42行的疑问,大家可以讨论一下吗???? ...
- 【ACM】杭电OJ 1241(深度优先搜索小结)
题目链接:杭电OJ 1241 深度优先搜索问题 深度优先搜索是搜索的手段之一.它从某个状态开始,不断地转移状态直到无法转移,然后回退到前一步的状态,继续转移到其他状态,如此不断重复,直至找到最终的解. ...
- 【ACM】杭电OJ 1096
题目链接:杭电OJ 1096 只要注意输出格式就好,其他没有问题! #include <stdio.h> int main () {int a,N,n,sum;scanf("% ...
最新文章
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- Machine Schedule为什么UVA过了POJ过不了
- mysql noinstall 5.5_安装配置MYSQL5.5
- POJ 3678 Katu Puzzle
- INITRANS和MAXTRANS参数的作用
- labelme新版本的使用须知
- 安卓java模拟器怎么用_安卓java模拟器(安卓手机如何玩JAVA游戏以及JAVA软件的方法)...
- wow服务器维护通告,新一轮大服务器实装公告:4月2日凌晨维护
- 快过年了,该买回家的票了,自动抢票之 12306 抢票篇
- java poi导出下载excel报表或下载到指定路径
- 《华尔街》观后笔记7——阳光交易
- 渗透测试入门(域名、DNS)— 理论知识
- 解决IDEA中maven创建web项目时新建无jsp选择项
- rainbow和论坛的集成
- MinIO 文件服务器简单搭建
- 模糊数学学习笔记 1:模糊集
- image-conversion 图片压缩,vue
- 3D医学图像CT dcm格式转换为png
- 华为OD机试 - 相对开音节 | 备考思路,刷题要点,答疑 【新解法】
- php禁止视频自动播放,分享新浪视频禁止自动播放的方法