A1016 | 磨人的大模拟
这题写得头晕……明天我再评价
#include <stdio.h>
#include <memory.h>
#include <math.h>
#include <string>
#include <vector>
#include <set>
#include <stack>
#include <queue>
#include <algorithm>
#include <map> #define I scanf
#define OL puts
#define O printf
#define F(a,b,c) for(a=b;a<c;a++)
#define FF(a,b) for(a=0;a<b;a++)
#define FG(a,b) for(a=b-1;a>=0;a--)
#define LEN 1010
#define MAX 0x06FFFFFF
#define V vector<int> using namespace std; set<string> printTitle; typedef struct Record{
string name;
int month,dd,hh,mm;
int isOn;
Record(){}
Record(const Record& o){
name=o.name;month=o.month;dd=o.dd;hh=o.hh;mm=o.mm;isOn=o.isOn;
}
}Record; Record info[LEN];
int rate[];
int one_day_bill=; void init_one_day_bill(){
int i;
FF(i,){
one_day_bill+=*rate[i];
}
} bool cmp(Record a,Record b){
/*
if(a.name<b.name) return true;
else if(a.mouth<b.mouth) return true;
else if(a.dd<b.dd) return true;
else if(a.hh<b.hh) return true;
else if(a.mm<b.mm) return true;
return false;*/
if(a.name!=b.name) return a.name<b.name;
else if(a.month!=b.month) return a.month<b.month;
else if(a.dd!=b.dd) return a.dd<b.dd;
else if(a.hh!=b.hh) return a.hh<b.hh;
else return a.mm<b.mm;
} void diff(Record a,Record b,int& minute,int& money){
// minute=b.mm-a.mm+(b.hh-a.hh)*60+(b.dd-a.dd)*24*60;
// int i;
// money=0;
// if(a.dd!=b.dd)
// money+=(b.dd-a.dd)*one_day_bill;
// if(a.hh==b.hh) money=minute*rate[a.hh];
// else{
// for(i=a.hh;i<=b.hh;i++){
// if(i==a.hh) money+=(60-a.mm)*rate[i];
// else if(i==b.hh) money+=(b.mm)*rate[i];
// else money+=(60)*rate[i];
// }
// }
Record tmp=a;
minute=;money=;
while(tmp.dd<b.dd || tmp.hh< b.hh || tmp.mm < b.mm){
minute++;
money+=rate[tmp.hh];
tmp.mm++;
if(tmp.mm>=){
tmp.mm=;
tmp.hh++;
}
if(tmp.hh>=){
tmp.hh=;
tmp.dd++;
}
}
} int main(){
freopen("d:/input/A1016.txt","r",stdin);
int n,i;
FF(i,){
scanf("%d",&rate[i]);
}
init_one_day_bill();
scanf("%d",&n);
FF(i,n){
char buffer[];
I("%s",buffer);
I("%d:%d:%d:%d",&info[i].month,&info[i].dd,&info[i].hh,&info[i].mm);
info[i].name=buffer;
I("%s",buffer);
if(string(buffer)=="on-line") info[i].isOn=;
else info[i].isOn=;
}
sort(info,info+n,cmp); int on=,off,next;
while(on<n){
int needPrint=;
next=on;
while(next<n && info[next].name==info[on].name){
if(needPrint== && info[next].isOn){
needPrint=;
}else if(needPrint== && info[next].isOn==){
needPrint=;
}
next++;
}
// printf("%d\n",needPrint);
if(needPrint<){
on=next;
continue;
}
int allMoney=;
O("%s %02d\n",info[on].name.c_str(),info[on].month);
while(on<next){
while(on<next- && !(info[on].isOn&&info[on+].isOn==)) on++;
off=on+;
if(off==next){
on=next;
break;
}
Record a=info[on],b=info[off];
int minute;
int money;
diff(a,b,minute,money);
allMoney+=money;
O("%02d:%02d:%02d %02d:%02d:%02d %d $%.2lf\n",a.dd,a.hh,a.mm,b.dd,b.hh,b.mm,minute,money/.);
on=off+;
}
O("Total amount: $%.2lf\n",allMoney/.);
}
return ;
}
A1016 | 磨人的大模拟的更多相关文章
- Bzoj1972: [Sdoi2010]猪国杀 题解(大模拟+耐心+细心)
猪国杀 - 可读版本 https://mubu.com/doc/2707815814591da4 题目可真长,读题都要一个小时. 这道题很多人都说不可做,耗时间,代码量大,于是,本着不做死就不会死的精 ...
- HDU 5920 Ugly Problem 高精度减法大模拟 ---2016CCPC长春区域现场赛
题目链接 题意:给定一个很大的数,把他们分为数个回文数的和,分的个数不超过50个,输出个数并输出每个数,special judge. 题解:现场赛的时候很快想出来了思路,把这个数从中间分为两部分,当位 ...
- AC日记——神奇的幻方 洛谷 P2615(大模拟)
题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...
- ACdream 1188 Read Phone Number (字符串大模拟)
Read Phone Number Time Limit:1000MS Memory Limit:64000KB 64bit IO Format:%lld & %llu Sub ...
- 磨人的Fragment的转换
磨人的Fragment的转换 本次任务是 程序运行之后将第一个Fragment加载出来 然后点击"SHOW NEXT PAGE"切换到第二个Fragment 当再次点击按钮时下方出 ...
- 2016ACM-ICPC网络赛北京赛区 1001 (trie树牌大模拟)
[题目传送门] 1383 : The Book List 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 The history of Peking University ...
- (大模拟紫题) Luogu P1953 易语言
原题链接:P1953 易语言 (我最近怎么总在做大模拟大搜索题) 分别处理两种情况. 如果只有一个1或0 直接设一个cnt为这个值,每次输入一个新名字之后把数字替换成cnt,最后cnt++即可. 注意 ...
- NOIP2017 时间复杂度 大模拟
再写一道大模拟题. 由于是限时写的,相当于考场代码,乱的一批. 题目链接:P3952 时间复杂度 先记几个教训: 字符串形式的数字比较大小老老实实写函数,字典序都搞错几次了 栈空的时候不但pop()会 ...
- [CSP-S模拟测试]:引子(大模拟)
题目描述 网上冲浪时,$Slavko$被冲到了水箱里,水箱由上而下竖直平面.示意图如下: 数字$i$所在的矩形代表一个编号为$i$的水箱.1号水箱为水箱中枢,有水管连出.除了$1$号水箱外,其他水箱上 ...
随机推荐
- Java Objective-C AOP
Java Use an AOP library or byte-code engineering (BCEL, cglib, asm, etc) to create a sub-class on th ...
- 简约而不简单的Django2.2 新手图文教程
欢迎大家访问我的个人网站<刘江的博客和教程>www.liujiangblog.com 主要分享Python 及Django教程以及相关的博客! 版权所有,转载需注明来源! 2019年7 ...
- 对比度增强(二):直方图正规划与伽马变换 cv.normal()函数使用及原理
直方图正规化: 图像为I,宽为W,高为H,I(r,c)代表I的第r行第c列的灰度值:输出图像记为O,为使得输出图像的灰度值在[Omin,Omax]范围里,可用如下公式: ...
- Texture(ASDK)、ComponentKit、LayoutKit、YogaKit
YogaKit 最轻量,改动量最小,目的最纯粹,同时也最类似于使用 frame ,需要自己造一波在 UITableView 中使用的轮子(各类 frame 结果缓存方案).同类的备选方案是 FlexB ...
- HTML列表简单介绍
1.无序列表 使用标签:<ul>,<li> 属性:disc,circle,square 2.有序列表 使用标签:<ol>,<li> 属性:A,a,I,i ...
- 87.CSS Flex 弹性盒模型布局教程(共用的css在48篇文章gird)
CSS Flex 弹性盒模型布局教程 Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. flex布局就是给任何一个容器添加 dis ...
- 26、router.beforeEach路由拦截
为了防止用户未登录直接修改路径来访问页面,解决办法: 在main.js文件中加入以下代码: // 路由拦截 router.beforeEach((to, from, next) => { if ...
- EXCHANGE上冒充任意用户--Exchange Server权限提升漏洞(CVE-2018-8581)分析
0x00 前言 这是我们2018年Top 5趣案系列中的第三个案例.这些漏洞都有一些因素使它们从今年发布的大约1,400个报告中脱颖而出.今天我们将分析一个Exchange漏洞,它允许任何经过身份验证 ...
- MongoDB用户和密码登录
一.MongoDB中内置角色 角色 介绍 read 提供读取所有非系统的集合(数据库) readWrite 提供读写所有非系统的集合(数据库)和读取所有角色的所有权限 dbAdmin 提供执行管理任务 ...
- MAC安装配置maven环境变量
1.下载maven包: 下载链接: