Hihocoder #1631 : Cats and Fish 模拟
来源:互联网 发布:淘宝女装销售排行榜 编辑:程序博客网 时间:2024/05/10 21:27
题意
现有n个鱼 m个猫 每条猫有吃一条鱼所要花去的时间
问最终x分钟后会有多少只完整的鱼 和不完整的鱼
分析
很像操作系统的资源调度的问题
这种卡时间点的问题向来都要好好把
每个步骤所发生的时间给他具体化
我们看每只猫吃一条鱼花去ci分钟 而他是在这一分钟开始的时刻开始吃的
放到时间轴里就是 0-1-2-3-4-… 、
定义时间点表示在ti分钟之后
所有猫在0时刻开始的时间点申请吃鱼
然后在第ci分钟处吃完 假如这只猫吃一条鱼花3分钟 那么他应该在2,3交界的位置把完成吃完这条鱼
如果把时间轴用循环模拟 应该在循环变量为2的时候完成吃完 那么当第3分钟开始时 也就是3分钟以后
开始申请吃下一条鱼
那么所有的过程模拟下来就是
从开始吃 鱼–不完整的鱼的数量++
吃完的时候 不完整的鱼–
过了下一整点 再开始吃 鱼– 不完整鱼数量++
那么关于如何模拟吃和完成吃的过程
申请吃可以用个堆 优先选择吃的快的
完成吃就可以放到一个完成吃的队列里搞搞
code
#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ int m,n,x; while(~scanf("%d%d%d",&n,&m,&x)) { int y=0; priority_queue<int,vector<int>,greater<int> >eat[3002]; vector<int>fis[3003]; for(int i=1;i<=m;i++){ int t; scanf("%d",&t); eat[0].push(t); } for(int t=0;t!=x;t++){ //当前分钟 吃的过程 while(!eat[t].empty()){ int to = eat[t].top();//得到此刻申请资源的猫 以及他的速度 eat[t].pop(); if(n>0){ n--,y++;//吃了 把余++ if(to==1)fis[t].push_back(to);//设定完成时间 else fis[t+to-1].push_back(to);//这里不是+to时间 而是在+to和上一分钟的交界处完成 我们把他分给上一分钟 } } //当前分钟 吃完成的过程 fis为当前分钟末尾处理 for(int i=0;i<fis[t].size();i++){ int f = fis[t][i];//当前的鱼吃完了 y--;//吃完了后要接着吃 不过是下一分钟开始的时候吃 eat[t+1].push(f); } //一个i代表 一个完整的分钟 } printf("%d %d\n",n,y); } return 0;}
阅读全文
0 0
- Hihocoder #1631 : Cats and Fish 模拟
- hihocoder 1631 Cats and Fish
- Cats and Fish HihoCoder
- Cats and Fish(模拟)
- #1631 : Cats and Fish
- Cats and Fish 2017ACM-ICPC北京赛区/hihoCoder 1631
- 2017Beijing icpc E Cats and Fish HihoCoder
- icpc-beijing-cats and fish
- ACM-ICPC北京赛区2017网络同步赛 题目5 : Cats and Fish【模拟】
- 【HIHOCODER】The Cats' Feeding Spots
- rain cats and dogs
- hihoCoder #1227 : The Cats' Feeding Spots
- hihoCoder 1227 The Cats' Feeding Spots(水)
- hihoCoder 1227 The Cats' Feeding Spots
- hihocoder #1227 : The Cats' Feeding Spots(枚举)
- fish and water
- Codeforces547D Mike and Fish
- spoj 1418 The Cats and the Mouse
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(4-2)-- 深度卷积模型
- Redis的使用场景
- Lua课前准备
- 车贷行业成金融公司新战场,在三四线城市崛起
- tensorflow RNN初探(30)---《深度学习》
- Hihocoder #1631 : Cats and Fish 模拟
- 政府网站被黑客入侵,假证轻易“转正”
- 仙人掌商贸再次参加一带一路中国百强品牌世界行
- 利用JAVA实现判断某一年是否为闰年
- 如何将EXCEL表导入MYSQL
- YOLO中参数和函数说明
- vuejs使用vux出错Module build failed: Error: Cannot find module 'less'
- cmd乱码
- 1:LinearLayout