PTA 7-6(队列) 银行排队问题之单队列多窗口加VIP服务(30 分) 30分代码
来源:互联网 发布:nginx 查看模块 编辑:程序博客网 时间:2024/03/29 10:27
VIP 题目 很恶心的
强烈建议手动模拟 锻炼思维
#include<bits/stdc++.h>using namespace std;const int maxn = 1000 + 7, INF = 0x7f7f7f7f;int n, k, vip;int b[11] = {0};int cnt[11] = {0};struct node { int t, p, vi; int len;} a[maxn];bool vis[11][60*maxn] = {false};bool viss[maxn] = {false};void init() { scanf("%d", &n); for(int i = 0; i < n; ++i) { //scanf("%d %d %d", &a[i].t, &a[i].p, &a[i].vi); scanf("%d %d %d", &a[i].t, &a[i].p, &a[i].vi); //cout << a[i].t << ' ' << a[i].p << " " << a[i].vi << endl; if(a[i].p > 60) a[i].p = 60; } scanf("%d %d", &k, &vip); vip++;}void solve() { for(int i = 0; ; ++i ) { int ff = 1; for(int j = 0; j < n; ++j) { if(!viss[j]) ff = 0; } if(ff) break; if(!vis[vip][i]) { for(int j = 0; j < n; ++j) { if(!viss[j] && a[j].vi) { if(a[j].t <= i) { //cout << j << " ++++=====" << endl; viss[j] = true; a[j].len = i - a[j].t; for(int y = 0; y < a[j].p; ++y) vis[vip][i+y] = true; b[vip] = i + a[j].p; cnt[vip]++; break; } else break; } } } //cout << " === " << endl; for(int j = 1; j <= k; ++j) { if(!vis[j][i]) { for(int y = 0; y < n; ++y) { if(!viss[y]) {//cout << j << " " << y << " +++==="; if(a[y].t <= i) { viss[y] = true; a[y].len = i - a[y].t; for(int yy = 0; yy < a[y].p; ++yy) vis[j][i+yy] = true; b[j] = i + a[y].p; cnt[j]++; //cur = y+1; break; } else { //cur = y; break; } } } } } /*for(int c = 1; c <= k; ++c) cout << b[c] << " "; cout << endl << endl;*/ } //cout << " +++++++++" << endl; double ans1 = 0; int ans2 = 0, ans3 = 0; for(int i = 1; i <= k; ++i) { //cout << b[i] << " = " << endl; ans3 = max(ans3, b[i]); } int sum = 0; for(int i = 0; i < n; ++i) { //cout << a[i].len << " + " << endl;; ans2 = max(ans2, a[i].len); sum += a[i].len; } ans1 = (sum*1.0 / n*1.0); printf("%.1lf %d %d\n", ans1, ans2, ans3); for(int i = 1; i <= k; ++i) printf("%d%c", cnt[i], (i == k ? '\n' : ' '));}int main() { init(); solve(); return 0;}
阅读全文
1 0
- PTA 7-6(队列) 银行排队问题之单队列多窗口加VIP服务(30 分) 30分代码 大模拟
- PTA 7-6(队列) 银行排队问题之单队列多窗口加VIP服务(30 分) 30分代码
- 银行排队问题之单队列多窗口加VIP服务(30 分)
- 4 银行排队问题之单队列多窗口加VIP服务 (30分)----模拟
- PTA 7-6 银行排队问题之单队列多窗口加VIP服务
- PTA 7-4(队列) 银行排队问题之单窗口“夹塞”版(30 分) 30分代码
- PTA 7-1 银行排队问题之单队列多窗口服务(25 分)25分代码 (小模拟)
- PintiA 银行排队问题之单队列多窗口服务(25 分)栈与队列
- PTA 7-5 银行排队问题之单队列多窗口服务
- 天梯赛 银行排队问题之单队列多窗口服务 (25分)
- 银行排队问题之单队列多窗口服务
- 银行排队问题之单窗口“夹塞”版(30 分)
- 数据结构课设 银行排队问题之单队列多窗口服务
- 5-41 银行排队问题之单队列多窗口服务<模拟>
- 习题8.1 银行排队问题之单队列多窗口服务
- 5-48 银行排队问题之单窗口“夹塞”版 (30分)
- 5-48 银行排队问题之单窗口“夹塞”版 (30分)
- PTA 7-7(排序) Windows消息队列(25 分) 25分代码 优先队列
- 多条目加载
- 使用json时报错:nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
- IOS学习笔记——iOS组件之UIScrollView详解(各个方法)
- JVM调优总结(5):典型配置
- 关于Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案
- PTA 7-6(队列) 银行排队问题之单队列多窗口加VIP服务(30 分) 30分代码
- JVM调优总结(6):新一代的垃圾回收算法
- 国庆清北刷题冲刺班 Day5 上午
- 不带头节点的单链表及其基本操作(Java实现)
- Gauge中文文档(10)—故障处理
- IIS与IIC
- imageLoader框架
- Java基础集合类(二):LinkedList详解
- 不爱说话?社交无能?或许你可以试试这种说话术