【u235】背单词
Time Limit: 1 second
Memory Limit: 128 MB
【问题描述】
英语四级考试临近了,小Y却发现他已经把以前学的单词几乎忘光了。好在现在离考试还有一段时间,小Y决定从现在开始夜以继日地背单词。也就是说小Y废寝忘食,一天二十四小时地背单词。 今天的日期(时间)是YYYY年mm月dd日hh时min分,考试的时间是YYYY’年mm’月dd’日hh’时min’分。这之间的所有时间小Y都用来背单词了,那么考试之前他最多能背多少个单词呢? 时间紧张,小Y只管数量不管质量。当然有的单词长一些,有的单词短一些。长的单词难背一些,短的单词好背一些。根据小Y的经验,他能一眼看出背某一个单词需要的时间,以分钟记。 现在给你一个字典,请你挑出最多的单词使小Y能在考试前背出来。
【输入格式】
第一行一个整数N,表示字典中的单词数,N<=5000。 接下来N行,每行一个整数表示背这个单词需要用的时间,以分钟记,小于等于10000。(这个单词本身是什么并不重要,不是吗?当前小Y已经认识的单词数为0个)。 接下来两行依次是当前时问和考试时间。时间给出的格式是:yyyy-mm-dd-hh:min.例如:2007-06-23-02:00,采用24小时制,每天从00:00-23:59,年份从0000到9999。
【输出格式】
一行一个数,表示考试前小Y最多能背出的单词数:
【数据规模】
Sample Input1
2
l
l
2007-06-23-11:59
2007-06-23-12:00
Sample Output1
1
【题目链接】:http://noi.qz5z.com/viewtask.asp?id=u235
【题解】
先一年一年的加;
遇到闰年加366天(换算成分钟);
遇到平年加355天;
假设某一年x是闰年;需满足
x%4 == 0 && (x%100!=0 || (x%100==0 && x%400==0));
之后就一分钟一分钟地加就好;
每次模拟一下进位就好;
这样就能处理出两个时间的间隔分钟;
然后把所有的单词的时间升序排;
从小到大枚举;遇到可以背的就背;(价值都是一样的,那就选价格最小的先背肯定最优)
闰年2月是29天,平年28天;
1 3 5 7 8 10 12是31天
4 6 9 11是30天
【完整代码】
#include <cstdio>
#include <iostream>
#include <algorithm>
#define LL long long
using namespace std;
const int MAXN = 5000+100;
struct abc
{
int year,month,day,hour,minute;
};
int n;
int a[MAXN];
abc ks,js;
LL rest;
int day[13];
bool rn(int x)
{
if (!(x%4))
{
if (x%100)
return true;
else
{
if (x%400)
return false;
else
return true;
}
}
else
return false;
}
void change(abc &ks)
{
if (ks.minute>59)
{
ks.minute=0;
ks.hour++;
if (ks.hour == 24)
{
ks.hour=0;
ks.day++;
if (ks.day > day[ks.month])
{
ks.day = 1;
ks.month++;
if (ks.month > 12)
{
ks.year++;
ks.month = 1;
}
}
}
}
}
int main()
{
// freopen("F:\\rush.txt","r",stdin);
scanf("%d",&n);
for (int i = 1;i <= n;i++)
scanf("%d",&a[i]);
scanf("%d-%d-%d-%d:%d",&ks.year,&ks.month,&ks.day,&ks.hour,&ks.minute);
scanf("%d-%d-%d-%d:%d",&js.year,&js.month,&js.day,&js.hour,&js.minute);
rest = 0;
for (int i = ks.year+1;i <= js.year-1;i++)
if (rn(i))
rest+=527040;
else
rest+=525600;
day[1] = day[3] = day[5] = day[7] = day[8] = day[10] = day[12] = 31;
day[4] = day[6] = day[9] = day[11] = 30;
if (ks.year<js.year)
{
int goal = ks.year+1;
if (rn(ks.year))
day[2] = 29;
else
day[2] = 28;
while (ks.year<goal)
{
ks.minute++;
rest++;
change(ks);
}
ks.year = js.year;
if (rn(ks.year))
day[2] = 29;
else
day[2] = 28;
while (ks.month < js.month || ks.day < js.day || ks.hour < js.hour || ks.minute < js.minute)
{
rest++;
ks.minute++;
change(ks);
}
}
else
if (ks.year == js.year)
{
if (rn(ks.year))
day[2] = 29;
else
day[2] = 28;
while (ks.month < js.month || ks.day < js.day || ks.hour < js.hour || ks.minute < js.minute)
{
rest++;
ks.minute++;
change(ks);
}
}
sort(a+1,a+1+n);
int num = 0;
for (int i = 1;i <= n;i++)
if (a[i] <= rest)
rest-=a[i],num++;
else
break;
printf("%d\n",num);
return 0;
}
【u235】背单词的更多相关文章
- 做中学(Learning by Doing)之背单词-扇贝网推荐
做中学(Learning by Doing)之背单词-扇贝网推荐 看完杨贵福老师(博客,知乎专栏,豆瓣)的「继续背单词,8个月过去了」,我就有写这篇文章的冲动了,杨老师说: 有时候我会感觉非常后悔,如 ...
- “我爱背单词”beta版发布与使用说明
我爱背单词BETA版本发布 第二轮迭代终于画上圆满句号,我们的“我爱背单词”beta版本已经发布. Beta版本说明 项目名称 我爱背单词 版本 Beta版 团队名称 北京航空航天大学计算机学院 拒 ...
- BZOJ4567[Scoi2016]背单词
4567: [Scoi2016]背单词 Time Limit: 10 Sec Memory Limit: 256 MB Submit: 304 Solved: 114 [Submit][Status] ...
- 《我爱背单词》 Alpha版 发布说明
——发布地址(baidu网盘) http://pan.baidu.com/s/15omtB ——简介 <我爱背单词>是一款英语单词记忆和管理辅助软件,旨在帮助广大考生在短期内攻克GRE. ...
- [No000057]一个人默默背单词,小心被传染哦
不日凛冬将至,全国各地,已有多名少侠因季节变化,出现了不同程度的四肢不勤.bd不分的症状.具体表现为—— 包大人在此高能预警:不想背单词,有可能你已经被传染了. 好好的,怎么突然不想背单词了 哈佛医学 ...
- [No000014]听说不背单词,考英语会是这种下场-我们为什么必须背单词?
由于英语对于一个程序员来说,重要性你懂得.因此我会开始逐渐在博客上加入英语的一些东西. 听说不背单词,考英语会是这种下场 在中国, 「学英语」大抵遵循着这样一条 罗蒙诺索夫质量守恒定律 因为英语学着学 ...
- Supermemo背单词7周年纪念
从2007年2月1日开始,用Supermemo背单词7周年了,在2013年11月21日将单词表Reset,重新开始Review以前背过的单词,并慢慢加入听写VOA时遇到的生词.
- 使用Excel背单词-高效-简单
背单词是一个很纠结的事,想必那些走在留学路上的很多人都被英语这一关卡住了,这里,笔者就聊聊,不讲背单词的方法,只提供使用vb开发的产品和使用方法,有问题欢迎讨论. 简介:使用excel背单词,有一些人 ...
- 基于百词斩和扇贝单词的背单词APP软件测试
概述 背单词APP是非常受大学生青睐的手机应用,但它的发展尚未成熟,存在一些缺陷.我们决定深入地分析一组典型的背单词APP:百词斩(A产品).扇贝单词(B产品),寻找当前背单词APP中的提升空间.下面 ...
随机推荐
- SoapUI、Jmeter、Postman三种接口测试工具的比较分析——灰蓝
前段时间忙于接口测试,也看了几款接口测试工具,简单从几个角度做了个比较,拿出来与诸位分享一下吧.各位如果要转载,请一定注明来源,最好在评论中告知博主一声,感谢.本报告从多个方面对接口测试的三款常用工具 ...
- FZU Problem 2168 防守阵地 I
http://acm.fzu.edu.cn/problem.php?pid=2168 题目大意: 给定n个数和m,要求从n个数中选择连续的m个,使得a[i]*1+a[i+1]*2+--a[i+m]*m ...
- django-rest-framework框架 第一篇
本课件是为了教学任务自己写的学习django-rest-framework框架. 方便自己授课,也成为学生的复习教程. 本课程学习后:具有REST编程思维:并可以通过django及专业的django- ...
- SpringMVC 学习笔记(十) 异常处理HandlerExceptionResolver
Spring MVC 通过 HandlerExceptionResolver 处理程序的异常,包含 Handler 映射.数据绑定以及目标方法运行时发生的异常. SpringMVC 提供的 Handl ...
- java学习笔记之基础语法(二)
1.数组: 概念:同一种类型数据的集合,其实,数组就是一个容器 优点:可以方便的对其进行操作,编号从0开始,方便操作这些元素. 2,数组的格式 元素类型[]数组名=new 元素类型[数组元素个数]: ...
- 使用wepy开发微信小程序商城第三篇:购物车(布局篇)
使用wepy开发微信小程序商城 第三篇:购物车(布局篇) 前两篇如下: 使用wepy开发微信小程序商城第一篇:项目初始化 使用wepy开发微信小程序商城第二篇:路由配置和页面结构 基于上两篇内容,开始 ...
- simple-word-Highlighter 支持网址正则表达式匹配
- VS无法访问IIS元数据库 您没有足够的特权访问计算机上的IIS网站
进入windows\regedit.exe下的HKEY_CRRENT_USER\Software\Microsoft\Windows\CurrentVersion\Exploer\User Shell ...
- eclipse编译器错误、警告设置
颜色配置步骤:Window->Preferences->General->Editors->Text Editors->Annotations
- storm集群操作指南
目录 storm集群操作指南 一.storm伪分布式安装 (一)环境准备 (二)安装zookeeper (三)安装storm (四)运行程序 二.storm集群安装 (一)下载storm并解压 (二) ...