小良的分布式之路

事业常成于坚忍,毁于浮躁

[NOIP2004 提高组] 津津的储蓄计划

题目描述

津津的零花钱一直都是自己管理。每个月的月初妈妈给津津 $300$ 元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。

为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上 $20%$ 还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于 $100$ 元或恰好 $100$ 元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。

例如 $11$月初津津手中还有 $83$ 元,妈妈给了津津 $300$ 元。津津预计$11$月的花销是 $180$ 元,那么她就会在妈妈那里存 $200$ 元,自己留下 $183$ 元。到了 $11$ 月月末,津津手中会剩下 $3$ 元钱。

津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。

现在请你根据 $2004$ 年 $1$ 月到 $12$ 月每个月津津的预算,判断会不会出现这种情况。如果不会,计算到 $2004$ 年年末,妈妈将津津平常存的钱加上 $20%$ 还给津津之后,津津手中会有多少钱。

阅读全文 »

《Systems Performance》这本书可以说是做性能调优的必读书目了,不仅仅是因为它有很多关于性能调优的理论知识,还因为它有很多关于性能调优的实例和思考。其实这本书我几年前就读过了,这次重新回顾一下,可以记录一些重要的知识点。话不多说,开始读起来。

阅读全文 »

如何取得杰出成就?

这是一篇来自Paul Graham最新文章。保罗·格雷厄姆(Paul Graham),生于1964年11月13日,是一位英国计算机科学家、风险投资家和散文家。他以在Lisp编程语言领域的工作而闻名,曾共同创办了Viaweb(最终成为Yahoo! Store),并共同创办了Y Combinator种子资本公司。他是一些编程书籍的作者,例如《On Lisp》(1993年)、《ANSI Common Lisp》(1995年)和《Hackers & Painters》(2004年)。

四个步骤:

  1. 选择一个领域;

  2. 学习足够多的知识以到达领域前沿;

  3. 注意到领域前沿被人忽略的机会;

  4. 探索其中有前景的方向。

阅读全文 »

C++ 并发编程基础

什么是并发

并发(concurrency):把任务在不同的时间点交给处理器进行处理。在同一时间点,任务并不会同时运行。

并行(parallelism):把每一个任务分配给每一个处理器独立完成。在同一时间点,任务一定是同时运行。

并发的方式包括多进程并发和多线程并发,多进程并发通过进程间通信(信号、套接字、文件、管道等)来相互传递信息;由于同一进程内的所有线程都共用相同的地址空间,所以多进程并发通过共享内存来同步数据。

阅读全文 »

[NOIP2016 普及组] 买铅笔

题目背景

NOIP2016 普及组 T1

题目描述

P 老师需要去商店买 $n$ 支铅笔作为小朋友们参加 NOIP 的礼物。她发现商店一共有 $3$ 种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P 老师决定只买同一种包装的铅笔。

商店不允许将铅笔的包装拆开,因此 P 老师可能需要购买超过 $n$ 支铅笔才够给小朋友们发礼物。

现在 P 老师想知道,在商店每种包装的数量都足够的情况下,要买够至少 $n$ 支铅笔最少需要花费多少钱。

阅读全文 »