1985 Problem A 任务调度
发布日期:2021-07-01 03:06:36
浏览次数:2
分类:技术文章
本文共 1573 字,大约阅读时间需要 5 分钟。
问题 A: 任务调度
时间限制: 1 Sec 内存限制: 32 MB 提交: 40 解决: 27题目描述
读入任务调度序列,输出n个任务适合的一种调度方式。输入
输入包含多组测试数据。每组第一行输入一个整数n(n<100000),表示有n个任务。
接下来n行,每行第一个表示前序任务,括号中的任务为若干个后序任务,表示只有在前序任务完成的情况下,后序任务才能开始。若后序为NULL则表示无后继任务。
输出
输出调度方式,输出如果有多种适合的调度方式,请输出字典序最小的一种。样例输入
4 Task0(Task1,Task2) Task1(Task3) Task2(NULL) Task3(NULL) 样例输出 Task0 Task1 Task2 Task3经验总结
本题的注意点题目已经给的很清晰了,关键是要理清思路,善于使用STL,往往能事半功倍。正确代码
#include#include #include #include #include using namespace std;struct Task{ string name; int level; friend bool operator <(const Task &t1,const Task &t2) { if(t1.level!=t2.level) return t1.level>t2.level; else return t1.name>t2.name; }};void dispose(string str,priority_queue &task,unordered_map &list){ string first; int pos; int firstlevel; pos=str.find('('); first=str.substr(0,pos); str.erase(0,pos+1); if(list.count(first)==0) { Task newtask; newtask.name=first; newtask.level=0; task.push(newtask); firstlevel=list[first]=0; } else { firstlevel=list[first]; } while(str.empty()==false) { string last; pos=str.find(','); if(pos==string::npos) { pos=str.find(')'); last=str.substr(0,pos); str.clear(); } else { last=str.substr(0,pos); str.erase(0,pos+1); } if(last!="NULL") { Task newtask; newtask.name=last; newtask.level=firstlevel+1; list[last]=newtask.level; task.push(newtask); } }}int main(){ int n; while(~scanf("%d",&n)) { priority_queue task; unordered_map list; string temp; for(int i=0;i >temp; dispose(temp,task,list); } while(task.empty()==false) { cout<
转载地址:https://meteorrain.blog.csdn.net/article/details/81008048 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月15日 14时58分13秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
python装饰器学习总结
2019-05-02
新手小心:c语言的强符号和弱符号
2019-05-02
并发编程学习总结
2019-05-02
python开发总结四
2019-05-02
我在Facebook学到的10个经验
2019-05-02
2012,做一个现实的理想主义者
2019-05-02
c语言知识点补遗
2019-05-02
给学计算机的表弟几点建议
2019-05-02
最近技术点整理
2019-05-02
使用swig为python添加c扩展总结
2019-05-02
禅道程序员的10条原则
2019-05-02
python开发总结五
2019-05-02
简单的搭建一个高并发低时延系统
2019-05-02
APUE学习笔记-文件IO
2019-05-02
JDBC
2019-05-02
JDBC
2019-05-02
CMS
2019-05-02
JSP数据交互(一)
2019-05-02
JSP数据交互(二)
2019-05-02
6月9号 数据交互
2019-05-02