改完了,以后开数组都开个最大的,不用int a[k]或是malloc,会出现段错误,原因不明。或者dev c++ 好像会出错

这题改了3天...

 #include<stdio.h>
//#include<iostream>
#include<stdlib.h>//malloc?
#include<iomanip>//setprecision(1) 保留一位小数
#define ERROR 0
#define MAX 10000
//using namespace std;
//定义元素类型customer
struct customer{int time_arrive;//以秒计 同下 int time_done;//int time_processing;//int time_remain;//余下时间,开始=processing
};int cmp ( const void *a , const void *b )
{return (*(struct customer *)a).time_arrive >(*(struct customer *)b).time_arrive?1:-1;
}bool winava(struct customer* win[],int k){for(int i=0;i<k;i++){if(win[i]==NULL)return true;}return false;
}int MyMin(struct customer* win[],int k){//当窗口都没有人时返回最大值 int min=60*61;while(k--){if(win[k]!=NULL&&min>win[k]->time_remain)min=win[k]->time_remain;}return min;
}bool clear(struct customer* win[],int k){for(int i=0;i<k;i++)if(win[i]!=NULL)return 0;return 1;
}
int main(){double ave;int n,k,axis=28800,h,m,s,process,order=0;//n:cus,k:windows order记录以处理的客户 0开始 scanf("%d%d",&n,&k);struct customer cus[100010];for(int i=0;i<n;i++){scanf("%d:%d:%d",&h,&m,&s);scanf("%d",&process);if(60*60*h+m*60+s>61200){//晚于17点 n--;i--;continue;}cus[i].time_arrive=60*60*h+m*60+s;//以秒计时 cus[i].time_remain=cus[i].time_processing=process*60;cus[i].time_done=0;}qsort(cus,n,sizeof(struct customer),cmp);//按到达时间排序 struct customer* win[10000];for(int i=0;i<k;i++)win[i]=NULL;while(!(order==n&&clear(win,k))){//order==n时表示队列空 int min=MyMin(win,k);if(order!=n&&(cus[order].time_arrive-axis<min)&&winava(win,k)){//队首到达-axis<min(窗口)&&窗口有空 order==n时表示队列空  出队 if(axis<cus[order].time_arrive){//for(int i=0;i<k;i++){if(win[i])win[i]->time_remain-=(cus[order].time_arrive-axis);}axis=cus[order].time_arrive;}for(int i=0;i<k;i++){if(win[i]==NULL){win[i]=&cus[order];break;}}order++;} else{//处理一个 axis+=min;for(int i=0;i<k;i++){if(win[i]!=NULL&&min==win[i]->time_remain){win[i]->time_done=axis;//cout<<win[i]->time_done/60/60<<":"<<win[i]->time_done/60%60<<endl;win[i]=NULL;}else if(win[i]!=NULL){win[i]->time_remain-=min;} }}}int sum=0;for(int i=0;i<n;i++){sum+=cus[i].time_done-cus[i].time_arrive-cus[i].time_processing;}ave=1.0*sum/60/n;printf("%0.1f",ave);//return 0;
}

  

转载于:https://www.cnblogs.com/lsj2020/p/5833999.html

PAT1017 和强迫症做斗争相关推荐

  1. 和kswapd0挖矿病毒做斗争的一天

    近期 通过 top 检查服务器状态,发现一个 kswapd0 进程占用cup 超高,负载接近100% 这种情况很是不科学啊,cup达到100%,基本上可以断定是被病毒入侵了 之前自己安装过es 服务, ...

  2. 做个环保主义的程序员

    十多年前刚走入社会工作的时候,那时的中国软件开发根本没有什么版本管理,也没有什么编程规范,软件开发相比起今天来说非常地混乱,那时仅凭自己的一些学习总结了一些C语言编程中的好的小笔记,后来,这些笔记写成 ...

  3. 如何用轻量协作工具做bug管理

    对于一个团队来说,工作效率的高低很大程度上取决于团队的管理. 而作为一名刚接触测试职位的新人来说,如何把一堆堆杂乱不堪的bug管理得井井有条,无疑是最重要的. 我之前一直觉得测试是一份很个人化的工作, ...

  4. 做开源 18 年,他想把中国开源带向世界 | 人物志

    作者 | 八宝粥 出品 | CSDN(ID:CSDNnews) 我们希望把中国的开源项目.基金会带向世界,也把世界的新鲜.成熟的基金会的理念和管理方法带回中国.    --LF AI&DATA ...

  5. 腾讯网易已称王,今日头条有什么勇气来做游戏?

    游戏直播这个吸引了大量游戏玩家的领域,最近被今日头条给盯上了. 当头腾大战开始在实质业务上比拼,游戏业务也成为了头腾大战的重点战场.对游戏业务一直野心勃勃的今日头条,在头腾大战期间做游戏直播,无疑是打 ...

  6. 头腾大战再升级 字节跳动做游戏的胜算有多少?

    游戏直播这个吸引了大量游戏玩家的领域,最近被字节跳动给盯上了. 当头腾大战开始在实质业务上比拼,游戏业务也成为头腾大战的重点战场.对游戏业务一直野心勃勃的字节跳动,在头腾大战期间做游戏直播,无疑是打算 ...

  7. 王江民故事:38岁开始学计算机 与病毒作斗争

    技董事长.著名反病毒专家王江民先生,于2010年4月4日在北京京西信翔鱼池钓鱼时心脏病突发,抢救无效逝世,享年59岁. 王江民先生被誉为中关村最富有传奇色彩的知识英雄.中国软件业界中的奇才.国际上赫赫 ...

  8. 正确思维,和非理性自我斗争

    思维改变生活 1. 一切都是数据. 2. 世界并不是完美的,大脑也不完美,大脑的谬误,大脑看问题的前提也许是错误的. 3. 思维的缺陷,心理的弱点.正确思维! 4. 难以抗拒的非理性诱惑.       ...

  9. 优达twitter 清理_优达资源 | 12个数据可视化工具,人人都能做出超炫图表

    我们诠释数据的方式和数据本身之间存在着巨大的鸿沟.尤其是当我们唯一的选择是盯着表格中一列列不知所云的数字时.这可能是最无聊的一种格式了. 没有哪个网页开发者会喜欢电子表格.好消息是,现在我们有了许多更 ...

最新文章

  1. 如何建立JSP操作用以提高数据库访问效率
  2. php异常处理技术,顶级异常处理器
  3. Google新WorldSense预告片:独立VR
  4. 浅谈SpringMVC执行过程
  5. 在事务外自动保存托管JPA实体
  6. linux升级了npm怎么还原,linux下升级npm以及node
  7. 如何在win10中安装ArcGIS10.2
  8. 我的docker随笔9:docker在centos上的安装
  9. 这几天可能是长时间关注电脑,眼睛没有得到休息,所以就早上起来眼睛有点通...
  10. 软件poc测试方案,华为fusioncloud桌面云解决方案5.3poc测试方案v1.0
  11. 邮箱服务申请数字证书
  12. 哇嘎显示等待无服务器,vagaa 哇嘎搜索不了资源怎么破?vagaa 哇嘎无法搜索的原因分析和解决方法介绍...
  13. Linux中LANG,LC_ALL,local详解
  14. 一种人脸识别活体检测方法
  15. putty连接服务器显示连接超时,putty连接云服务器超时连接
  16. 21条黄金法则,全面提升你的领导力
  17. 基于LAB颜色空间的彩色图像分割
  18. AWS 云产品和云计算基础知识详解
  19. 【无标题】.Net Core 6.0 WebApi 远程部署到Server2016
  20. C#支付宝支付接口H5版(手机网页支付)

热门文章

  1. 线程访问临界区的问题 实例,需解决
  2. 【LeetCode】55.跳跃游戏
  3. OpenCVSharp_保存浮点型Mat数据
  4. 通过网页查看服务器算法,服务器使用国密(SM2/SM3/SM4)证书,通过浏览器访问
  5. springboot整合mysql5.7_springboot整合mybatis访问mysql,数据库
  6. java map key是否存在_java中如何判断map集合中是否存在key
  7. flowmap怎么做_Photoshop生成的流动贴图(flowmap)
  8. sqlanyshere转mysql_【SQL】Oracle和Mysql的分页、重复数据查询(limit、rownum、rowid)
  9. C++知识点41——运算符的重载概念与分数类实现(下)
  10. 4.通过Ubuntu指令生成GIF图片