<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>The Site of laekov</title>
    <link>/</link>
    <description>Recent content on The Site of laekov</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>&amp;copy; laekov</copyright>
    <lastBuildDate>Sat, 03 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Goodbye, laekov.com.cn</title>
      <link>/technical/domain-change/</link>
      <pubDate>Sat, 03 Oct 2026 00:00:00 +0000</pubDate>
      
      <guid>/technical/domain-change/</guid>
      <description>laekov has made the decision to get rid of the .cn suffix.
在自己网页上使用 laekov.com.cn 的朋友请 kindly 更新链接. 谢谢.</description>
    </item>
    
    <item>
      <title>再见, 蜀ICP备15008072号</title>
      <link>/random/to-ali-beian-review/</link>
      <pubDate>Sun, 19 Jul 2026 13:00:00 +0000</pubDate>
      
      <guid>/random/to-ali-beian-review/</guid>
      <description>11 年前, 17 岁的 laekov 选择了在中华人民共和国境内搭建自己的个人主页, 并通过阿里云代备系统完成了工信部的 ICP 备案, 方使得网站成功上线.
这个网站至今已持续运行了 11 年. 它换过若干个标题, 换过若干种实现方式. 它记录了一个高中 OIer 到 Ph.D. in Performance 的成长, 既有智力与技术的展示, 也有一个活生生的人的点点滴滴.
对于掌管着整个国家信息化建设的工信部, 备案, 是为了合规. 备案, 是为了监管. 但备案, 也赋予了一些违背互联网自由精神的生杀夺予的权力.
11 年后, 一位邮箱是 wc01146239@alibaba-inc.com 的审查员以格式不符合心意为由, 关停了这个 ICP 备案的接入.
谨此文纪念. 这个备案号将不再被使用.
11 年前, 当小小的 laekov 为了备案折腾种种手续的时候, 一颗小小的种子早已萌芽. 11 年后, 坐在太平洋岸边的 laekov 已经将这颗种子变成了坚实的树苗. 它会继续茁壮成长的. 谁说工信部 ICP 备案不是一件很好的推动世界进步的养料呢?</description>
    </item>
    
    <item>
      <title>湾区户外 Ledger</title>
      <link>/random/sfba-outdoor-logs/</link>
      <pubDate>Sun, 14 Jun 2026 13:00:00 +0000</pubDate>
      
      <guid>/random/sfba-outdoor-logs/</guid>
      <description>序 物理迁移到 SF Bay Area 之后, 是时候开一个升级版的北京爬坡列表了.
这篇文章将会长期维护湾区想去的 &amp;amp; 去过的自行车 / 越野跑路线.
TODO List Road Bike Diablo Tamalpais Alba Big Basin Hwy &amp;amp; South Hwy 9 Boulder Creek Rd Pescadero Creek Rd Skyline 从 La Honda 再往北 New La Honda 下到市区 Clayton Rd Quimby Rd Kings Mountain Road &amp;amp; Tunitas Creek Road Grizzly Peak Gravel East Alpine Rd 土路下坡 Old Fremont Loop Montebello 山顶那块的土路 Skyline Trail Umunhum Trail Trail Run Umunhum Trail Windy Hill Open Space Preserve Purisima Creek Redwoods Preserve Madera Creek Sanborn &amp;amp; John Nicholas Trail Black Mtn 到 Rancho 的连接线 Alum Rock Park Casttle Rock Logs &amp;laquo;湾区四大名山&amp;raquo; Hamilton 西边爬过了, 东边还没, 或许下次开车到山顶 4+2.</description>
    </item>
    
    <item>
      <title>读博五年的流水账和胡思乱想</title>
      <link>/random/phd-thesis/</link>
      <pubDate>Sat, 21 Mar 2026 13:00:00 +0000</pubDate>
      
      <guid>/random/phd-thesis/</guid>
      <description>Introduction 离毕业已经过去9个月了，终于得以端坐在大洋彼岸计划中的公寓的书桌前开始写这篇拖欠已久的文章。
人生每过一个阶段，就写下些什么，是 laekov 形成已久的惯例。 而读博这一篇章在结束时曾经尤为令 laekov 感到激动而想要进行一番记录。
在 laekov 并不长的一生中，在一个校园里度过四年之后，再选择继续待五年甚至可能是更长的时间，并不是一件容易的决定。 Dr 这短短两个字母的前缀，是曾经崇高的追求，也带来迷惘和痛苦。 它让 laekov 晚了一些年真正地进入社会，或许少了一些经历，也或许多了一些成长。 当这一切结束于一场并不那么隆重的毕业典礼时，当匆匆离去的脚步在不经意间拉开了更精彩世界的帷幕之后，曾经的平静、单纯显得多么珍贵。 而曾经的痛苦、愤怒、迷茫终将化为浅浅一笑。
这一切建立了一个人类对于这个社会最初始的认知。 它改变或者说塑造了这个人的愿望、行为。 老师总是说，PhD 最重要的是培养一个人做研究的能力。 一个人自己的一段经历以及自身的脱变何尝不是一个重要的研究对象呢？
Motivation: 这一切是怎么开始的 五年前 laekov 对读 phd 这个决定的产生进行了详细的描述。
一言以蔽之，就是对科研产生了憧憬并决定花五年的时间来更进一步。
曾经的 laekov 认为科研是一件崇高的事业，因为科研是在扩展人类的知识边界，这听起来是多么伟大而有意义的事呀！ 因为 laekov 认为人的生命是没有意义的，因为宇宙是没有意义的。宇宙从诞生到消失，无可改变，甚至一切也许就是写好的剧本。 在这样的背景下，努力奋斗或许本身就是一个伪命题。 而在这无聊的世界中，或许唯一有意义的事，不就是“扩展认知”这一件吗？ 来到这个大千世界，在人生有限的几万天内，去做一些无人做过的事，发现一些无人发现的角落，用一篇篇 paper 构筑一个属于自己的世界。 或许这些研究并没有作用，或许只是一个无聊的小 trick，但当说起它们的时候哪怕有一点点的令人兴奋也是一件好事情呀。
laekov 选择了并行计算这个方向，原因或许也不那复杂，只是因为从 2017 年开始 laekov 就开始了，到 2019 年的时候已经是一个有一些些经验的“熟练工”了。 相比起彼时方兴未艾的热门方向“机器学习”，laekov 认为做出一个实际可用的 system 并且在成千上万的计算资源上高效运转起来是最能带来成就感的事情。 laekov 曾经的爽点就在于看着 scc 集群上每台机器的一百多个 cpu 核在 htop 里一片绿的场景，甚至是使用特殊的绑核策略绑出一些神奇的花纹。 相比起来，性能优化的工作是确定的，被完好定义的，有上限的。这件事激活了 laekov 从中学开始的竞赛基因。 另一方面，或许 laekov 对科研和工程这两件事的看法是两者是需要结合的。相比于纯粹的理论上的贡献，laekov 更想看到在有生之年科研成果能够被用于真实的世界，产生真正的价值。 因此，虽然哪怕 system 这个方向更强调 engineering 与 fancy idea 的结合，而并非一个那么有理论深度，那么数学公式满天飞的领域，但 laekov 依然选择了这个方向。</description>
    </item>
    
    <item>
      <title>关于绝望的当下</title>
      <link>/random/on-frustrated/</link>
      <pubDate>Mon, 08 Dec 2025 13:00:00 +0000</pubDate>
      
      <guid>/random/on-frustrated/</guid>
      <description>人生总是充满了绝望。咀嚼绝望，享受绝望，踩着绝望前行。
laekov 的最后一次 oi 比赛是 noip 2015. 十年之后，受蔺老邀请，为刚从 noip 2025 战场上结束了战斗的小朋友们写些什么。
很难再去想象十年前的 laekov 以怎样的心情写下了这个玩意。 大抵亦是充满了绝望的，用失落的心情去面对着沉重的高三的文化课，面对着学不会的高考科目，不知道生活会走向哪里。
事实上，绝望是贯穿了 laekov 的整个 oi 生涯，乃至退役后至今的人生。
2011 年 laekov 的绝望是 noip 普及组没考好。愤然在机房摔键盘。// 后来在 2012 年拿了普及提高双一等。
2013 年 laekov 的绝望是 noip 提高组没考好。在机房的电脑上愤怒地敲出 while true; do echo fxxk noip; done。// 后来把 wc, ctsc 的一等奖都领走了，甚至 ak 了一把 apio。
2015 年 laekov 的绝望是 noi 考场上那一道哈夫曼树。望着考场倒计时却想不起那个正确的贪心策略。集训队仿佛未能赶上的火车，贴脸疾驰而去，留下 laekov 一人在原地。// 后来 acm 区域赛金牌、世界大学生xx竞赛冠军倒也没少拿。
2019 年 laekov 的绝望是申请季只能用不忍直视 gre、gpa 收获几近全拒的结果。// 后来还是读上了 phd。
2023 年 laekov 的绝望是一次次收到 we are sorry to inform you that your work does not qualify for our conference.</description>
    </item>
    
    <item>
      <title>HypeReca: 面向推荐模型训练的分布式嵌入向量数据库</title>
      <link>/technical/hypereca/</link>
      <pubDate>Wed, 20 Aug 2025 00:00:00 +0000</pubDate>
      
      <guid>/technical/hypereca/</guid>
      <description>闲话 - 前 这是一篇 ATC&#39;25 论文 的中文简要版本.
然而这篇文章在学术创新上实在乏善可陈，正好多说一点闲话了。这也是为什么没有在文章发表前就把博客写出来，不然万一被撤稿了可就搞笑了。
写这篇博客是 laekov 一直以来坚持要把自己发表的每篇文章都翻译成中文，因为曾经的 laekov 觉得凭什么论文都要用英文写呀，而且八股文读起来好麻烦呀，用中文简洁明了地把文章讲清楚不是更好吗。
然后天真的 laekov 读博五年一共也就中了两篇文章。这是第二篇，中稿时间是毕业前三个月。
HypeReca 这个名字是 Hybridly Partitioned Embeddings for Recommendation Model Training Acceleration 的各种胡乱拼凑里找了个听起来好听一点的。
背景 基于深度学习的推荐模型是现在主流的推荐算法，它分为学习元素特征的稀疏部分和学习元素间关系的稠密部分。 稀疏部分主要是非常稀疏的嵌入表 embedding tables，它们可能会有 TB 级别甚至更大，所以得要很好地分布式地存下来，并且支持高吞吐地读取和更新。 稠密部分通常由传统的 DNN 构成，属于计算密集型任务（比如 CNN / MLP），所以得用 GPU 来加速。
在做分布式训练的时候，这两部分由于特性不同所以采用了不同的并行方式：稀疏部分用模型并行（切分存储），稠密部分用数据并行（小模型，大 batch size）。 这两部分之间通过 all-to-all 集合通信来传输所需的数据和用于更新的梯度。 然后就会发现在 scale up 的时候两部分之间的通信是瓶颈，可能会占到迭代时间的 90% 以上。
解决方案 这篇文章的核心想法其实很直白：embedding data 有冷有热。 把频繁访问的热数据找出来，也用数据并行的方法来存，重复地放到所有 GPU 上。
接下来要解决两个问题：
首先，挑多少热数据比较合适？ 热数据越多，可以省掉的 all-to-all 通信就越多，但同步热数据所需的 all-reduce 量就越大。 这里正好是一个在单峰函数上找最优的 trade-off。结合实际数据建模观察一下即可。</description>
    </item>
    
    <item>
      <title>20250818那个夏天的十年之后</title>
      <link>/random/20250818/</link>
      <pubDate>Mon, 18 Aug 2025 13:00:00 +0000</pubDate>
      
      <guid>/random/20250818/</guid>
      <description>在最近第二次突然意识到，那场 noi 已经过去十年了
laekov 曾经是一个 oier，也不止是一个 oier
laekov 曾经是一个上进的，努力的人
laekov 曾经或许有自己的梦想
直到那一天，在那个体育馆里，在那台显示器前面，一切都改变了，结束了
laekov 记得那个暑假的某一天，他在床上躺了一整天没有起
或许之后的十年都只是那个夏日的白日梦而已
得过且过成为了人生的主旨
或许随时终结这一切都无球所谓
或许兴致来了可以创造些美好的东西
再或许随手一巴掌拍过去毁灭它
又能怎么样呢
有什么是不能失去的呢
这个世界上也许冈崎朋也永远不会遇到古河渚
即使遇见了，就获得了真正的美好吗
十年之前，我不认识你，你不属于我
十年之后，不再是朋友，不可以问候
&amp;mdash;- 来自十年之后的没有逻辑没有思想胡乱骂街的 laekov
laekov 或许早已不是 laekov 了
这只是一具掌管着 laekov 账号的空空的躯壳罢了
没想到这是 2025 年第一次写博客
laekov 还欠着两篇 blog
HypeReca 的中文版 What does it take laekov to get the PhD degree 或许最近补完这两篇文章之后
就该是 laekov.com.cn 永远停止更新的时候了</description>
    </item>
    
    <item>
      <title>LLM Serving 文章阅读笔记</title>
      <link>/technical/llm-serving-papers/</link>
      <pubDate>Fri, 12 Jul 2024 00:00:00 +0000</pubDate>
      
      <guid>/technical/llm-serving-papers/</guid>
      <description>经典老文 orca Continuous batching: 把 prefill 和 decode 里的每个 token 打散重新做 batching.
vllm 用 page attention 来管理 kv cache 来应对碎片化, 以及利用 cpu memory 来 offload (这部分好像不是重点)。
OSDI&#39;24 一个会有一个 session 一篇文章讲同一个事，可怕。
Taming Throughput-Latency Tradeoff in LLM Inference with Sarathi-Serve 背景是现有 llm serving 系统（TRT-LLM, vLLM）要么等 decode 完了再 prefill, 要么有 prefill 就先做完整个 prefill, 导致 latency to first token 或者 decoding latency 不稳定。一个额外的坏处是这个事情影响 pp，因为 pp 里面有多个任务，每个任务时长不一样，就会有比较多的 bubble。
这文章把 prefill 任务 chunk 掉，这样调度的时候可以更好地复合 prefill 和 decode，控制 pp 里每个任务的 latency，从而对 decode 的 latency 也有保障了 (stall-free batching）。</description>
    </item>
    
    <item>
      <title>FastMoE 系统指南</title>
      <link>/technical/fastmoe/</link>
      <pubDate>Tue, 02 Jul 2024 00:00:00 +0000</pubDate>
      
      <guid>/technical/fastmoe/</guid>
      <description>FastMoE 是世界上首个开源的在 PyTorch 上支持 MoE 模型分布式训练的框架. 经过持续不断的更新与优化, 其在性能上相比各类竞品持续保持了一定的优势. 从 2021 年 3 月开源至今, 已经历了若干个发行版本, 亦有一些相关学术工作发表在各大会议和平台上. 此处对官方提供的公开资料进行汇总整理.
FastMoE 代码仓库 FastMoE 框架的开源版本开源在 GitHub 上. 链接 该开源版本支持 cuda 平台.
开源版本中也包含来自社区贡献的对 rocm 平台的支持, 但对新版本 FastMoE 的支持可能并不完善.
此外, 对于申威和一些其它国产加速平台, FastMoE 也有相应的私有版本. 如有兴趣, 请联系清程极智.
FastMoE 使用方式 FastMoE 作为 PyTorch 的插件存在, 推荐的使用方式是和 Megatron-LM 框架一起使用. 开源版本代码仓库中提供了修改不同版本 Megatron-LM 并与 FastMoE 一起使用的教程和参考补丁.
在FastMoE 官网(暂停维护)和代码仓库的中有更多文档可供参考.
FastMoE 及系列学术文章 FastMoE 支持专家并行的工作原理在一篇 arxiv 文章中进行了讲解.
arxiv原文 中文博客版本. FasterMoE 是一个发表在 PPoPP 学术会议上的工作. 其对于专家并行中负载均衡和通信计算重叠进行了研究. 该论文中所述的优化均已集成到 FastMoE v1.0.0 以后的版本中.</description>
    </item>
    
    <item>
      <title>在 PyTorch Distributed 中混合使用 mpi 和其它 backend</title>
      <link>/technical/pytorch-distributed-hybrid-mpi-backend/</link>
      <pubDate>Thu, 20 Jun 2024 00:00:00 +0000</pubDate>
      
      <guid>/technical/pytorch-distributed-hybrid-mpi-backend/</guid>
      <description>laekov 遇到的问题是希望使用 mpi 进行一些 cpu 的通信, 以及用 nccl 来进行一些 gpu 间的通信. // 没错, 说的就是让 FastDecode 支持模型并行.
众所周知, pytorch 和 mpi 的关系不太好的亚子. 然而 mpi 其实是最方便, 也是最适合大规模使用的. 虽然新版的 pytorch 试图引入 ucc backend 来支持 cpu 和 gpu 的混合通信, 但在较老的版本或一些特定环境里还无法顺畅地使用 ucc.
事实上 pytorch 支持创建不同 backend 的不同 ProcessGroup. 然而如果写如下一段代码, 就会发现并跑不起来.
dist.init_process_group(backend=&amp;#39;mpi&amp;#39;) ... g = dist.new_group(list(range(world_size)), backend=&amp;#39;nccl&amp;#39;) x = torch.ones(16, device=&amp;#39;cuda&amp;#39;) * (rank + 1) xs = [torch.empty_like(x) for _ in range(world_size)] dist.all_gather(xs, x, group=g) 甚至会获得一些在 ucx 里的错误栈, 再往上找会发现报错在 c10d::PrefixStore::set 这个函数里.</description>
    </item>
    
    <item>
      <title>FastDecode: 一种很大胆的分布式 LLM 推理系统架构</title>
      <link>/technical/fastdecode/</link>
      <pubDate>Thu, 21 Mar 2024 00:00:00 +0000</pubDate>
      
      <guid>/technical/fastdecode/</guid>
      <description>这是一篇 arxiv 文章 的中文简要版本.
摘要 这篇文章主要介绍了一种大语言模型的推理系统. 在自回归生成过程中, 序列中的元素 (token) 被挨个生成, 因此模型推理的序列长度 (sequence length) 为 1. 因此, 增大 batch size 对于 GPU 利用率的提升十分重要. 然而 KV-Cache 体积很大, 且与 batch size 成正比. 其大小阻止了 batch size 和 GPU 利用率的提升.
相比 vLLM 提出的 page attention 技术, FastDecode 对于 CPU 的利用进行了更加大胆的尝试. 其不仅利用了 CPU 的内存容量, 还利用了其计算能力和多机扩展能力, 从而达到了提升 batch size, 提升 GPU 利用率的目的, 并实现了端到端的推理吞吐量提升.
背景 在自回归生成过程中做 attention 时, 一个 token i 的特征向量 (feature vector) 会线性映射拆成 Qi, Ki, Vi 三个特征向量.</description>
    </item>
    
    <item>
      <title>实验室新机器安装步骤检查单</title>
      <link>/technical/pacman-machine-setup/</link>
      <pubDate>Wed, 13 Dec 2023 00:00:00 +0000</pubDate>
      
      <guid>/technical/pacman-machine-setup/</guid>
      <description>本检查单适用于在 PACMAN 实验室 安装新的服务器. 对于其它使用场景, 可视情况进行参考.
购买前 根据使用需求确定型号 PCIe 的连接方式是否符合预期 内存通道是否充足 在机房寻找一个合适的位置来放置机器, 需考虑如下因素 机柜的空位与承重能力 电源是否充足 网络 (如需使用 IB 网, 与需要的交换机是否足够近) 根据 CPU arch 确定是否接入某个 slurm 进行管理 现有的 slurm clusters: ja (AMD Epyc), nico (Intel Skylake) 注意: 除非这台机器永远只有一个人使用, 否则强烈建议接入 slurm 进行管理 起一个合适的 Hostname 向网络管理员申请一个合适的固定 ip 机器上架与硬件配置 (机房内) 检查机器完好 正确安装导轨 对机器的整体外观, 序列号进行拍照 插入系统盘和必要的存储, PCIE 设备 注意: 插入额外的 GPU 资产也需要事先对序列号和整体进行拍照 根据分配的固定 IP 配置 BMC 机器基础配置 (可远程) 在 NetBox 上更新相应信息, 包括但不限于序列号, 资产号, GPU 在 BIOS 中配置 CPU Sub-numa Clustering 以确保访存性能正确 Intel 简称 SNC, AMD 简称 NPS 可能在 ACPI 或 North Bridge 选项中 (视型号不同) PXE 引导安装 OS 机器软件配置 安装必要的基础软件 htop iotop iftop vim-common numactl rsync psutils ipmitool g++ 根据 Harry 的教程 配置 LDAP Client 安装 libnss-ldapd 和 libpam-ldapd 配置正确的服务器地址, base dn 和 LDAP 数据项 安装 nfs 客户端 安装 nfs-client nfs-common 挂载对应的 /home 配置 slurm 客户端 安装 libmunge-dev libmunge2 munge slurmd slurm-wlm libpam-slurm-adopt libpam-slurm libpmix-dev libpmi2-0 libpmi0-dev libpmi0 将主节点的 munge key 同步到新机器 /etc/munge/munge.</description>
    </item>
    
    <item>
      <title>本网站的崩溃与重建</title>
      <link>/post/2023-server-failure-recovery/</link>
      <pubDate>Tue, 05 Dec 2023 00:00:00 +0000</pubDate>
      
      <guid>/post/2023-server-failure-recovery/</guid>
      <description>由于升级系统升挂了(说来话长&amp;hellip;) 原本跑在青岛阿里云 ecs 上的 shiruku 无了.
于是决定迁移到 Hugo. 目前姑且能用了, 且保留了之前的大部分内容. 之后还会继续修缮. 顺便开个坑记录一下这次的经历.
升级然后挂了 在 12 月 5 号这一天, laekov 看到自己的青岛阿里云服务器还跑着 ubuntu 18.04 (i686), 于是决定对它进行一个 dist-upgrade. (好像也没啥原因)
没想到 do-release-upgrade 说没有新的版本, 于是 laekov 直接在 sources.list 里把 bionic 换成了 jammy, 然后愉快地 apt update / upgrade 了一顿.
然后疑似 kernel 还是 4.19, laekov 感到疑惑, 但是没多想就重启了机器.
没想到重启之后服务器 ping 不通了, 还好 aliyun 提供了 vnc, 连过去一看 kernel panic, 读不出镜像.
还好重启之后发现有一个旧的 kernel 可以启动, 于是和 harry 一拍脑门, 决定跑一遍 initramfs, 然后这下好了, 新的旧的都启不动了.</description>
    </item>
    
    <item>
      <title>CentOS 的防火墙和 ldap login</title>
      <link>/technical/88ab8d/</link>
      <pubDate>Thu, 21 Sep 2023 17:07:08 +0000</pubDate>
      
      <guid>/technical/88ab8d/</guid>
      <description>最近在实验室遇到一些情况必需搞一台 centos 的服务器, 但是还是想给它配置我们常用的一些东西, 于是踩了一些坑, 作一个记录.
sshd 在别的端口 我们用这个来提供外网的仅公钥的访问, 然而 cent 里面配了 sshd_config 里的 port 之后竟然没法从别的机器访问到这个 port. 关掉 selinux 也没用, 最后发现需要 disable firewalld. (什么企业级安全)
sssd ldap 无法 auth 相比 debian 底下使用 libnss-ldapd 和 libpam-ldapd, cent 下面用的是一个叫 sssd 的玩意. 然后使用 authconfig 来进行配置. 然而配好了之后可以 id 一个用户 , 却不能 getent. 发现需要在 sssd 配置文件里加上这个.
enumerate = true 然而还是无法用 ldap 用户密码登录, 一通查发现是因为
SSSD always uses an encrypted channel for authentication, which ensures that passwords are never sent over the network unencrypted.</description>
    </item>
    
    <item>
      <title>魔改 python-dbg</title>
      <link>/technical/5845d0/</link>
      <pubDate>Tue, 05 Sep 2023 19:10:33 +0000</pubDate>
      
      <guid>/technical/5845d0/</guid>
      <description>最近在一些奇怪的地方使用 pytorch. 那里的 python 十分的鬼畜, 以至于 python-debug 用不了. c 的栈打出来大概是这样的.
#110 0x00004ffff061c03c in _PyEval_EvalFrameDefault (f=&amp;lt;optimized out&amp;gt;, throwflag=&amp;lt;optimized out&amp;gt;) at ../Python-3.6.8/Python/ceval.c:3351 #111 0x00004ffff061865c in PyEval_EvalFrameEx (f=0x6, throwflag=8387296) at ../Python-3.6.8/Python/ceval.c:754 #112 0x00004ffff06192fc in _PyEval_EvalCodeWithName (_co=0x58000044c980, globals=&amp;lt;optimized out&amp;gt;, locals=&amp;lt;optimized out&amp;gt;, args=&amp;lt;optimized out&amp;gt;, argcount=0, kwnames=&amp;lt;optimized out&amp;gt;, kwargs=0x58000d8621b8, kwcount=2, kwstep=1, defs=0x580000449340, defcount=2, kwdefs=0x0, closure=0x0, name=0x5800003431c0, qualname=0x5800003431c0) at ../Python-3.6.8/Python/ceval.c:4166 #113 0x00004ffff0619768 in fast_function (kwnames=&amp;lt;optimized out&amp;gt;, nargs=0, stack=0x58000d8621b8, func=0x58000296f6b8) at ../Python-3.6.8/Python/ceval.c:4992 #114 call_function (pp_stack=0x500000804400, oparg=&amp;lt;optimized out&amp;gt;, kwnames=&amp;lt;optimized out&amp;gt;) at .</description>
    </item>
    
    <item>
      <title>python-dbg 使用中遇到的 auto-load-safe 问题</title>
      <link>/technical/b9d832/</link>
      <pubDate>Sat, 02 Sep 2023 19:39:25 +0000</pubDate>
      
      <guid>/technical/b9d832/</guid>
      <description>用 gdb 的 py-bt 来看一个 python 程序的调用栈是一个非常有用的工具.
然而今天在集群上尝试使用这个功能的时候发现了一些问题. 使用 debian 12 自带的 python3.11 时可以正常工作, 而使用 spack 安装的 python3.10 的时候就无法工作了. 最初怀疑 configure python 的时候没有带 --withdebug, 于是重新装了一个 python 还是不管用. 然后在仔细观察输出的时候发现 gdb autoload 竟然还有 safe path 一说, 故需要在 .gdbinit 中加入
add-auto-load-safe-path /home/spack/* 才能安全工作. (具体见这篇文档 )</description>
    </item>
    
    <item>
      <title>那一夜你喝了酒 改编版</title>
      <link>/random/803d83/</link>
      <pubDate>Wed, 16 Aug 2023 23:06:26 +0000</pubDate>
      
      <guid>/random/803d83/</guid>
      <description>那一夜我喝了酒带着醉而回
然后发现你还在那公司 深夜加班
我仿佛看到我的未来 默默踌躇起来
然后躺在地上思考人生 为何存在
刹那间我突然了解这样生活就是理所应该
什么时候该给你挚爱 什么时候我又应该走开
哦
哦</description>
    </item>
    
    <item>
      <title>在 slurm 任务完成时通过 IM 软件向自己发送通知</title>
      <link>/technical/b8bb98/</link>
      <pubDate>Mon, 03 Apr 2023 18:07:52 +0000</pubDate>
      
      <guid>/technical/b8bb98/</guid>
      <description>代码地址
这事情好像原理挺简单的.
让 srun 在完成的时候给自己发个邮件, 用个脚本一直 tail 邮件, 并喂到 tg 的 bot 里, 根据 chat id 来发消息.</description>
    </item>
    
    <item>
      <title>20230314</title>
      <link>/diary/711485/</link>
      <pubDate>Tue, 14 Mar 2023 11:29:18 +0000</pubDate>
      
      <guid>/diary/711485/</guid>
      <description>上午
跑了没有数据的 gpt 175b (一半长), 使用了八张 v100 32g pcie.
mp 的 latency 是 14636ms, 而 pp 是 57313ms. 考虑到 pp 其实只利用了一个卡, 所以 pp 其实还挺棒的 (?)
下午
摸鱼摸了挺久. 还去宿舍安全学习了.
读了 gpt forward 的代码, 感觉 pipeline 优化已经做了. 只要 batch size 大, 应该打得挺满, 但是没有做 orca 那个工作里的 sequence 上的优化, 可能会导致 pipeline 不那么满?
用 nsys 跑了一把小一点的模型, mp 和 pp 的时间大概是 9:16.
nsys 结果是 pp 里面 send/recv 占了大概 13.5% 的时间. 而 80% 以上的时间在矩阵乘. 感觉打得挺满的, 有点令人疑惑. 可能需要一个有效一点的方式来刻画一下 pp 的 bubble 的情况.</description>
    </item>
    
    <item>
      <title>2019-nCOV Infection Log at Dec 2022</title>
      <link>/random/43d45a/</link>
      <pubDate>Thu, 15 Dec 2022 18:16:49 +0000</pubDate>
      
      <guid>/random/43d45a/</guid>
      <description>2022.12, 中国人民防疫三年，最后每人发烧三天。
大防疫运动，其去势甚至猛于其来势。半月之内，北京一城，阴阳掺半矣。15日，我终于显著感到不适，预知自己将感染也。起意攒此文，以供未来之考。
Day0: 2022.12.15 昨夜跑了 F4 模拟赛车联赛，得第三，大喜，饮啤酒一罐，无不适。半夜，喉咙巨疼，疼醒，喝水后略有好转。早上起床之后喉咙继续疼，精神不振，收到消息称昨日白天同处一屋某君阳矣。
上午测了抗原，阴，工作于宿舍，午饭后前往实验室，继续工作，处理数据集一个。后开组会，开始上背部酸疼，嗓子疼加重，精神萎靡，遂大点外卖一顿，趁还有食欲饱餐以储能，然后收拾好工作所需之电器，回宿舍躺平，始作此文，静待下一步之变数。
拖延三年，余与新冠病毒终有一战。既阳之，则战之。古语有云，生死有命，富贵在天。炎黄子孙宁病夫乎？
Day1: 2022.12.16 昨晚睡觉前做了一次抗原, 等了两分钟没阳, 直接睡了, 今早起床发现昨夜的抗原有弱弱的阳性线, 再测一次, 真阳了. 所以确实是 day1, 昨天的感觉完全没错.
睡得不太好, 翻来覆去, 持续在冷和热之间徘徊, 身上也比较酸痛, 嗓子也疼. 嗓子里有痰的感觉, 但是我知道那其实是我肿胀的扁桃, 试图咳痰只会让情况变得更糟, 于是忍着了.
早上起床之后喉咙疼痛感有所减弱, 但是略有发烧的畏寒和皮肤触痛. 感觉是在低烧, 但是因为没有体温计所以无法确认. 脊柱附近的肌肉比较酸疼, 坐在沙发上姿势并不太舒服. 早上开了一个线上会, 不太能集中注意力(倒是和平时差不多). 开完就继续躺了. 中午戴好口罩下楼买饭, 晒太阳和呼吸新鲜空气感觉有所好转, 遂决定在中厅晒会儿太阳.
// 阳了其实是小小地逃避工作的好机会.
下午外卖买到了体温计, 起初体温比较正常, 太阳将近落山的时候开始发烧, 一度烧到 38 度. 练了会儿车, 练不动, 听说室友也阳了, 诚邀他回来和我一起开 covid party (躺平).
前半夜体温很高, 不太睡得着, 在被子里抱着热水袋捂汗. 鼻子里有不对的味道, 怀疑是过敏性鼻炎导致鼻窦炎了. 过了一会体温下降, 开始头疼, 很像是鼻窦肿大压迫神经. 但是也管不了那么多了, 先睡. 嗓子还是一如既往地疼.
Day2: 2022.12.17 七点过胃疼疼醒, 吃了蛋糕, 抱着热水袋继续睡.</description>
    </item>
    
    <item>
      <title>使用 gdb 调试多机程序的方法</title>
      <link>/technical/70b9a2/</link>
      <pubDate>Thu, 22 Sep 2022 10:31:47 +0000</pubDate>
      
      <guid>/technical/70b9a2/</guid>
      <description>最近写了一些 mpi 程序, 但是有 bug, 且只有在多机上能够复现. 然而因为工程太大, 编译一次需要时间比较长, 所以反复 print 也并不方便解决问题. 而且集群上也没有图形界面, ssh -X xterm 的方法不太好使. 所以需要一些新的解决思路.
laekov 将目光瞄准了 tmux. 用 tmux new-session command 就可以在目标机器上新开一个进程, 跑 gdb. 然而 tmux 并不能继承环境, 所以需要再包一层脚本来重新加载环境 (这倒是和多机跑 mpi 程序差不多). 此外, 为了不需要手工一个一个进程地去 gdb 里开始, 可以用 gdb -ex &#39;r&#39; --args command args 来让它自动开跑. ex 还可以用来批处理设断点之类的, 非常方便.
另一个问题是 laekov 用的集群配置了 slurm, 是用 srun 来启程序的. 但是 tmux 命令会立即退出, 进程是跑在该用户的另一个进程里的, 而且这俩还没有父子关系, 无法用 wait 来等. 但是 srun 的进程退出之后 slurm 就认为这个进程跑完了, 甚至会清理 worker 上该用户的所有进程.</description>
    </item>
    
    <item>
      <title>如何使用 windows 笔记本的指纹解锁 linux</title>
      <link>/technical/e59478/</link>
      <pubDate>Mon, 18 Jul 2022 15:41:58 +0000</pubDate>
      
      <guid>/technical/e59478/</guid>
      <description>众所周知, laekov 在办公室有一台 nuc 装了 linux 主要用于工作, 另有一台笔记本用于其它工作. 作为一个锁屏强迫症, 每次 laekov 站起来去干啥的时候都会把两台电脑锁屏, 回来之后再分别解锁. 笔记本可以用指纹或者 iwndows hello, 而 nuc 就只能敲密码了. 不巧的是它还直接暴露在公网上, 于是密码设得比较长. 所以 laekov 希望用 windows 上的指纹来解 kde 的锁屏.
然后发现直接使用命令 loginctl (un)lock-session &amp;lt;id&amp;gt; 就可以实现(解)锁 kde. 配合 ssh 和 autohotkey 就可以实现一键开关锁.
但是这还是需要再额外按一次键. 然后发现 windows 有一个叫 task scheduler 的东西, 可以在锁屏和解锁的时候触发一些命令, 于是愉快地接入了 ssh 之后就可以方便地一次性解锁两台电脑辣!</description>
    </item>
    
    <item>
      <title>W 楼宿舍优化手记</title>
      <link>/random/3397e8/</link>
      <pubDate>Mon, 11 Jul 2022 10:33:56 +0000</pubDate>
      
      <guid>/random/3397e8/</guid>
      <description>博士生涯在硕士宿舍住满两年后, 搬宿舍来到了 w 楼老破并不小的双人间. 该楼由于年久失修, 室内状况较差. 墙面, 门, 和卫生间都有一些十分恶心的情况. 本着既来之则安之的思路, 自强不息的精神, 进行一些尽力而为的改造和优化, 并记录在这里以供他人 (大概不会有了吧) 参考.
室内布局 下图是一个并不等比例的示意图.
w 楼类似于本科生紫荆公寓的布局, 相邻两间宿舍共用一个中厅, 但每个宿舍有独卫. 卫生间有马桶, 水池和淋浴. 但是空间较小, 干湿并不分离.
家具方面, 相比本科和硕士宿舍, 床从上铺变成了地面上的床, 虽然宽度没有变化. 桌子也更宽一些. 中间是标准的键盘抽屉, 左右两边各有一个较窄的抽屉. 但是桌上层有两层置物架, 其中下层的高度较低, 导致比较大的显示器无法推到最前. 此外, 中厅也有一个比较大的公用桌子, 并另配了四把椅子. (故平均每人竟然拥有两把椅子)
绿色床位可以获得一个比较深的窗台. 窗台上可以置物或作他用. 中厅和窗台都有可以晾衣服的铁杆. 中厅的窗台也很深.
强弱电方面, 每个床位配有百兆有线网. 桌子附近有一个电线插头. 红字床头另有一个插头.
Layout transformation for bike placement 红色桌子被旋转了 90 度, 然后在和中厅的窗户之间 (红桌的右手边是一个通向中厅的窗户) 空出了约 80 公分的间隙, 把大紫立在了间隙里, 正好可以卡在窗户边沿. 还可以另放下一个气筒和停车架. 大大紫则被插到了中厅窗台 v 字形的尖上, 前轮在窗台上, 而后轮在地上. 正好可以用脚踏抵住暖气片, 从而稳稳立住.</description>
    </item>
    
    <item>
      <title>搞明白自行车五通中轴牙盘规格</title>
      <link>/random/680f7d/</link>
      <pubDate>Fri, 20 May 2022 13:34:51 +0000</pubDate>
      
      <guid>/random/680f7d/</guid>
      <description>自行车的五通中轴牙盘一部分零件规格比较复杂, 折腾起来比较费力. 简中互联网上鲜见把这个事情理明白了的文章. 所以 aoao 按照自己的理解把各部分分开说明一下, 试图理明白这个逻辑.
下面是一个示意图.
五通 五通是车架的一部分, 简而言之就是一个圆柱形的洞. 五通的重要参数是这个洞的直径和高度(宽度), 外加 是否有螺纹.
有螺纹的五通, 在公路车上只有两三类: 经典的有英规 (BSA) 和 意规 (ITA). 前者常见于低端车和闪电 SL7 及一些新车. 另外有 trek 新开始推的 T47. 这三种标准的宽度和直径都是确定的.
另外一种是压入五通, 即没有螺纹, 而是一个光滑的洞, 中轴直接被敲进去. 这种五通有 BB30, BB86, BBRight 等一系列规格, 对应了不同品牌不同时期的车架. 宽度和直径各有不同, 需要按照品牌或者标准名称购买相应零件.
中轴 中轴就是一个轴承. 它的外壳固定在五通处, 而内面与轴心 (即一根铁棒) 相连, 从而使轴心可以自由转动. 因此, 中轴的规格仅由五通规格和轴心规格两者决定. (材质和特殊的工艺等学问不在本文讨论范围)
轴心 轴心是一根铁棍 (碳棍? 铝棍?), 两边连着曲柄, 在高端零件中通常与其中一边的曲柄为一体. 与五通相同, 轴心的关键参数也是直径和长度.
轴心常见三种直径: 30, 24, GXP. 其中 GXP 是驱动侧 24, 非驱动侧 22, 通常可以直接使用一个塑料套子转换为 24 的轴心.</description>
    </item>
    
    <item>
      <title>GTA Online 跑车圈速记录</title>
      <link>/random/120e0f/</link>
      <pubDate>Mon, 09 May 2022 14:02:42 +0000</pubDate>
      
      <guid>/random/120e0f/</guid>
      <description>一个没有什么意义的记录. youtube 上的视频同样车也就快了个几十秒吧.
Lifeinvader 环道 桑托劳 2:39 义塔利GTB: 2:36 Cutting Corners GP Sports Sugoi 1:15.830 ZR350 1:15.910 (w\o turbo), 1:12.583 (w. turbo) Calico 1:11.107 Itali GTO 1:08.051 GB200 1:09.081 幽鬼本尼版 1:07.433 撞击 GT 1:11.239 (原厂素车）1:06.860 （满改） 718 （嚎叫者） 1:12.810 (原厂素车） 1:07.639 (fully upgraded) new supra (jester RR) 1:14.245 (unmodified) 1:07.344 (满改) RCA (Vectre) 1:12.706 (unmodified) 1:08.206 (fully upgraded) BMW M4 1:12.816 (原厂） 1:09.636 (fully upgraded) 思国一又推又甩, 加速就打滑非常 gg.
350 没加涡轮, 加速明显不如卡利科, 但是转向极限很高, 弯速可以再推快一些.</description>
    </item>
    
    <item>
      <title>Project T: 清华园山地车技术点大全</title>
      <link>/random/f1faf5/</link>
      <pubDate>Sun, 01 May 2022 19:38:08 +0000</pubDate>
      
      <guid>/random/f1faf5/</guid>
      <description>封校无聊，何以解忧？开个新坑，骑骑山地。
这个网站将校园内的山地技术点总结在地图上，以便从入门到进阶的不同水平爱好者进行交流，各自找到好玩的地点。
在地图上单击鼠标右键即可记录一个你发现的地点。在管理员审核后，它将被分享给所有人。
本站还在建设中，如果你对本项目有兴趣，欢迎来 GitHub Repo 进行开发方面的交流与讨论。
目前计划中的功能还有：难度和描述的评论、添加图片、在线约骑、实时位置分享等等。
本站始建于 2022 年劳动节假期封校之时。未来也考虑拓展地图范围。
Go back to the map</description>
    </item>
    
    <item>
      <title>Recent Papers of Recommendation Systems</title>
      <link>/technical/a78ed7/</link>
      <pubDate>Fri, 08 Apr 2022 10:25:46 +0000</pubDate>
      
      <guid>/technical/a78ed7/</guid>
      <description>2023 EVStore: Storage and Caching Capabilities for Scaling Embedding Tables in Deep Recommendation Systems ASPLOS&#39;23 GRACE: A Scalable Graph-Based Approach To Accelerating Recommendation Model Inference ASPLOS&#39;23 AdaEmbed: Adaptive Embedding for Large-Scale Recommendation Models OSDI&#39;23 FlexShard: Flexible Sharding for Industry-Scale Sequence Recommendation Models arxiv 2022 RecD: Deduplication for End-to-End Deep Learning Recommendation Model Training Infrastructure arxiv Ekko: A Large-Scale Deep Learning Recommender System with Low-Latency Model Update OSDI&#39;22 PICASSO: Unleashing the Potential of GPU-centric Training for Wide-and-deep Recommender Systems arxiv HET: Scaling out Huge Embedding Model Training via Cache-enabled Distributed Framework VLDB&#39;22 HET-GMP: a graph-based system approach to scaling large embedding model training SIGMOD&#39;22 Fleche: an efficient GPU embedding cache for personalized recommendations EuroSys&#39;22 RecShard: statistical feature-based memory optimization for industry-scale neural recommendation ASPLOS&#39;22 BagPipe: Accelerating Deep Recommendation Model Training arxiv 2021 Accelerating recommendation system training by leveraging popular choices VLDB&#39;21 SPACE: Locality-Aware Processing in Heterogeneous Memory for Personalized Recommendations ISCA&#39;21 Software-Hardware Co-design for Fast and Scalable Training of Deep Learning Recommendation Models arxiv ISCA&#39;22 RecPipe: Co-designing Models and Hardware to Jointly Optimize Recommendation Quality and Performance MICRO&#39;21 2020 Kraken: Memory-Efficient Continual Learning for Large-Scale Real-Time Recommendations SC&#39;20 Distributed Hierarchical GPU Parameter Server for Massive Scale Deep Learning Ads Systems MLSys&#39;20 DeepRecSys: A System for Optimizing End-To-End At-Scale Neural Recommendation Inference ISCA&#39;20 </description>
    </item>
    
    <item>
      <title>Pandoc 的 short author 字段缺失 fix</title>
      <link>/technical/f86b57/</link>
      <pubDate>Tue, 15 Mar 2022 15:37:07 +0000</pubDate>
      
      <guid>/technical/f86b57/</guid>
      <description>laekov 搞了一个在 overleaf 里写 pandoc 的东西叫 panleaf, 并用它做一些愉快的 beamer slides.
但是 laekov 在做一个作者有七个人的 slides 的时候发现如果把七个人塞在正文的每页的底下, 就会巨长无比, overflow. latex 提供了 short author 功能, 在 beamer 里面正文的页脚只显示 short, 而 titlepage 显示全文. 但左右看了一圈发现 pandoc 的 author 字段并没有这样的支持. 而且即使不填 author 字段, 生成的 tex 文件里面还是会蹦出一个 \author{}, 且在自定义 latex template 的后面, 所以无法在 template 里面插 author 来解决.
laekov 于是找来了 pandoc 的 beamer writer (default.beamer, 也可能是 default.latex), 在里面找 author, 果然找到这么一段.
\author{$for(author)$ $author$ $sep$ \and $endfor$} 这么暴力怎么行, 于是加上一个 if 变成酱紫.</description>
    </item>
    
    <item>
      <title>北京骑行路线及爬坡大赏</title>
      <link>/random/caf0b0/</link>
      <pubDate>Thu, 10 Mar 2022 08:32:48 +0000</pubDate>
      
      <guid>/random/caf0b0/</guid>
      <description>本文及图片版权归 laekov 所有, 谢绝转载
前言, 符号及约定 本文总结了 aoao 骑过的北京周边的骑行路线, 以爬山为主. 对于坡度的描述可参考如下列表.
超缓: 坡度不超过 3%. 缓坡: 3-5% 普通: 不太缓也不太陡, 没有给 aoao 留下深刻印象. 陡: 7% 及以上. 对于坡度, 难度和风景好坏的评价较为主观, 且受到当时季节, 天气, 状态等影响. aoao 本人偏好不缓的爬坡, 不喜缓上缓下和平路. 喜欢壮丽的高山大川景象, 对人文风光 (比如寺庙) 没有兴趣.
故请谨慎参考本文的内容. 欢迎在评论区讨论批评指正.
本文配图使用的脚本开源在 GitHub, 主要使用 Matplotlib. 有能力的看官可以自行使用脚本绘制自己的轨迹.
西边和北边群山, 以及市区 国道, 省道的坡度多半不会超过 10%, 多数在 5% 左右. 路面通常为柏油路, 可以放心前往. 但乡道, 防火道等的坡度和路况就很难有保障了.
(0) 清华大学新民路大坡 搞笑的
西边系列 以 108, 109 两条国道为主线展开. 国道本身较平, 向西缓上. 其间有众多支线, 包含了很多大小爬坡.
(1) 灵山 北京公路爬坡最高峰 (指绝对海拔), 长度约 20km, 最高海拔快到 2k.</description>
    </item>
    
    <item>
      <title>Island 剧情解析</title>
      <link>/random/aafa1e/</link>
      <pubDate>Tue, 04 Jan 2022 14:26:35 +0000</pubDate>
      
      <guid>/random/aafa1e/</guid>
      <description>元旦假期花一个下午补了 Island 这部番, 时间线烧脑程度颇有云图的感觉, 再进一步就要信条了. 虽然有各种弹幕解说, 但还是看得很茫然, 而且网上的解析也比较少, 没有把 laekov 讲明白. 于是 laekov 决定自己整理一下时间线.
laekov 倾向于认为人类只造出了睡眠仓, 而没有造出能逆转时间的机器. 所以人类文明以 20000 年为周期不断从石器时代到高度文明再退回, 这和 Island 上的科技退化也很吻合. 动画的故事发生在其中一个 夏1 - 冬1 - 夏2 周期中.
为了简便称三家的女主为白毛, 黄毛和炸毛.
实际上进行了时间旅行的只有男主和老小两白毛. 在夏篇见光死的是骨科切纳和他爹. (这俩人家产全被没有血缘的人吞了好惨) 在冬篇见光死的是黄毛, 炸毛未知.
一些疑问 男主在 夏1 的梦为啥和 冬1 不一样? 男主在夏 1 的时候做的梦来源于 冬0, 其中 大版炸毛被火烧掉 和 跟黄毛kiss(?) 的事件在 冬1 中也发生了, 只是剧情有所不同, 因为 冬0 中男主的记忆可能和 冬1 并不相同 (蝴蝶效应). 很可能在 冬0 中白毛的冷冻仓有 bug, 从而导致男主记忆缺失.
骨科切那为啥变成了白骨? 切那和白发魔女的交易是什么? 骨科切那是把小白毛塞进机器之后独自在岛上生存的过程中饿/病死的. 和白发魔女交易 这个传说来源于老白毛造了时光机把男主送回来.</description>
    </item>
    
    <item>
      <title>Assetto Corsa G值球只有半个 bug 修复</title>
      <link>/technical/dadc0a/</link>
      <pubDate>Mon, 20 Dec 2021 22:14:48 +0000</pubDate>
      
      <guid>/technical/dadc0a/</guid>
      <description>laekov 最近在玩 assetto corsa 并试图学习循迹刹车, 因此需要一个加速度轨迹显示插件. 在 GitHub 上发现了一个上古仓库 竟然还能用, 但是卖家秀是
而 laekov 这里是
为啥参考线只剩小半个了？？？
由于 assetto corsa 的插件都是 python, 于是 laekov 愉快地看起了代码, 并发现了如下一段.
def drawCircumference(self, radius, center): ac.glBegin(1) nlines = max(4, int(100.*radius)) for i in range(nlines+1): x, y = self.gPlotter.plotG(center[&amp;#39;x&amp;#39;] + (sin(2*pi*i/nlines)*radius), center[&amp;#39;z&amp;#39;] + (cos(2*pi*i/nlines)*radius)) ac.glVertex2f(x, y) ac.glEnd() 大胆猜想是 python 或者 ac.gl 性能不足以支撑在一个渲染周期内画完整个圆. 于是想找一个 native 的 circle 的 api. 然而翻阅了一下上古的 python plugin document (竟然还是 google docs) 发现 ac 的 gl 只支持画点和多边形 (挠头).</description>
    </item>
    
    <item>
      <title>FasterMoE: 对大 MoE 模型训练的性能建模及优化</title>
      <link>/technical/181401/</link>
      <pubDate>Tue, 16 Nov 2021 11:16:21 +0000</pubDate>
      
      <guid>/technical/181401/</guid>
      <description>版权声明: 如需转载请先与 laekov 联系, 侵权必究. 序 Jiaao He 在 24 岁生日那一天收到邮件, 他在 ppopp 投稿的这篇文章被接收了. 这是他以一作身份投的第一篇 A 类会文章.
laekov 当时脑子一热, 开了一个坑, 决定把这篇文章的主要内容用中文写出来, somehow 地促进中文学术. (虽然多半并没有什么帮助)
在过去的小半年里他又经历了 artifact evaluation, camera ready, 制作 presentation slides 和录制视频 (很遗憾因为疫情没法去韩国开会了) 等等一系列事情, 对这个项目也有了更多的理解. 在 4 月的第一天终于把写文章时候的 prototype 变成了看起来还不错的代码, 并准备合并进 FastMoE. 正好写完这篇文章, 也当作是在 FastMoE 里使用 FasterMoE 的中文版文档了.
这篇文章的 pdf 正文在 ACM DL 上可以找到. (有 open access, 在任何地方都可以下载, 并用于非商业目的) 开会的时候用的 slides 和视频链接 在这里.
背景和简介 我假设看这篇文章的人已经知道什么是 MoE 模型了, 大规模的 MoE 模型现在有多重要 (也可能并不).</description>
    </item>
    
    <item>
      <title>slurmdbd 配置失败的坑</title>
      <link>/technical/5c630d/</link>
      <pubDate>Wed, 10 Nov 2021 00:09:16 +0000</pubDate>
      
      <guid>/technical/5c630d/</guid>
      <description>花了一晚上修的一个 bug. 记录一下. 先讲结论再讲故事.
slurmdbd 在更新 account 配置的时候, 有可能出现更新成功了, dump 出来是对的, 但跑程序失败 (requested resources not available) 的情况. 其中一个可能原因是 mysql 并没有成功写入, 于是认证失败. 解决方案是修改 slurmdbd 的配置文件, 使得其以 root 用户身份执行.
故事是实验室有同学要赶 PLDI, 需要独占某一些节点, 并防止懵懂的小朋友和他们抢占节点后不释放. laekov 给出的解决方案是在 slurm 中单独划分一个队列, 并仅对指定 account 开放. 这个操作 laekov 在另一个集群上已经熟练使用了. 但是 laekov 在用 sacctmgr 配置好 account 和 user 之后, 尝试 srun 任务, 发现提示 resources not available. 之前遇到过这种情况, 通过重启 slurmdbd 解决了问题. 但是这次重启任何 slurm 组件都没有解决问题.
laekov 查看了 /var/log/slurm-llnl/slurmctld, 发现提示 part_policy_valid_acct: job&#39;s account not known, so it can&#39;t use this partition.</description>
    </item>
    
    <item>
      <title>吐槽一下 windows 11</title>
      <link>/random/7af673/</link>
      <pubDate>Sun, 03 Oct 2021 19:04:06 +0000</pubDate>
      
      <guid>/random/7af673/</guid>
      <description>(背景是 laekov 因为迟迟没有等到黑色的 arm macbook 而转投了 x1c, 然后闲来无事升了个 win11
然后发现想吐槽这个东西 怎么和 chromeos 如此 相似!
app icon 放中间! chromeos!
点开 电池 wifi 那个条, 跳出来的系统配置 panel! chromeos!
然后四指左右划动切换 workspace 的动画直接是断的. 任务栏的一部分根本没有被渲染出来, 于是会在动画放完之后突然跳出来??????
windows 这个 ui 真是&amp;hellip; 明明是个 configurable 的东西, 非要搞得万众瞩目. 有毒吧.
btw 一个小细节, 升级完之后默认给我 enable 了 微软拼音. 我又不会打拼音啊喂. 而且在输入法 enabled 列表里面竟然没有这个选项? 解决方案是先加进去再删掉 ovo
还是 kde 好.
btw, 吐槽一下 x1c 9gen 的键盘, g 键的键帽被我按掉下来了. 虽然可以按回去, 但只要敲这个键的左下部分就会又翘起来, 不爽ing.感觉是为了给小红点让位置而在键的机械强度上做了牺牲？回头有空再去联想保修一下 ovo</description>
    </item>
    
    <item>
      <title>laekov 的桌面环境配置</title>
      <link>/random/7074ea/</link>
      <pubDate>Mon, 16 Aug 2021 16:02:13 +0000</pubDate>
      
      <guid>/random/7074ea/</guid>
      <description>laekov 终于闲下来了并开了这么一篇一直都想写的文章. 之前摸鱼的时候在某乎, 某小破站上都有各种晒桌面的就蠢蠢欲动. 最近终于闲下来了可以用新买的 niz 打打不是正事的字了.
实验室(办公室) laekov 很追求简洁的所以桌上除了俩显示器俩键盘以外没有什么大块的东西. 从左到右说. (laekov 在实验室有四台电脑.)
最左边是夏天赖以生存的小风扇 (虽然从隔壁机房吹空调速冻效果其实更好).
左边是 27 寸显示器, 连了一台从实验室各处捡垃圾凑出来的 windows 台式机在桌子底下. 机箱上面还堆了 gyc 赞助的 24 口千兆交换机给所有设备供网. 上面还有俩键盘盒子, 一个装了之前北大校赛赚来的黑轴键盘暂时没用了. 还有一个是空的.
台式机的配置是奇怪的 i5-6500 + gtx 1080 ti.插了高二的时候 laekov 爹送 laekov 的生日礼物 ducky 混光青轴键盘. 虽然键盘挺老了甚至有些轴都开始咯吱响了但还是岗岗的好用. 因为这台电脑的主要用途是:
挂微信 使用 M$ office 套件处理不得不用它们处理的东西 摸鱼(打游戏) 显示器后面有一个 hp 的 chromebook g1, 八百块从闲鱼收的, 介绍见这篇文章, 主要用途是组会的时候放 slides 和移动干活. 偶尔也用作掌托. 13.5mm 的厚度和 3k x 2k 的屏幕还是很香的.
插线板后面有一个树莓派, 是某年的生日礼物. 上面放了一些神奇的东西, 可以用来调一些神奇的硬件, 比如折腾一下网络什么的, 不过最近用得不多.</description>
    </item>
    
    <item>
      <title>FastMoE: 一个高效 MoE 模型训练系统 - 初版之路</title>
      <link>/technical/6b400a/</link>
      <pubDate>Mon, 01 Mar 2021 18:03:51 +0000</pubDate>
      
      <guid>/technical/6b400a/</guid>
      <description>laekov 在 3月1号下午 3点1分 开源了 FastMoE 系统的代码。合作者是 KEG 实验室 的 xptree 和 sengxian。
简单讲，MoE 模型就是把神经网络里的一层复制若干份，称它们为专家（experts）。在计算时，引入一个额外的门（gate）网络来对于每个输入决定它被哪个专家所计算。
举个例子，一个 nlp 模型里的动词和名词可能会被不同的 expert 处理。这样可能会得到更精准的模型。模型部分 laekov 不太懂，不做更多讨论。
FastMoE 这个名字是 laekov 起的，包含了 laekov 关注的两层问题：
训练这样的模型怎么训得快（fast training）。 如何使得这个系统像吃快餐一样（fastfood-like）开箱即用。 训练性能 通常，expert 网络是一个 MLP，即多层全连接，即矩阵乘。一个值得注意的问题是，gate 会使得一个 batch 被打散。若简单地用 pytorch 来实现，则会导致 GeMM 运算降级为 GeMV 运算，这对 GPU 这样的现代并行计算设备来说是十分不友好的。测试发现朴素的实现在 V100 上仅能达到 500GFLOPs, 即峰值性能的 3% 左右。
注意到 expert 的数量不会太多，故 batch size / expert，即平均每个 expert 处理的 batch 中的元素依然是一个较大的值。因此考虑对 batch 中的 samples 按照 expert 进行重排，每个 expert 依然以 batch 形式处理输入。这样会更充分地利用硬件资源。</description>
    </item>
    
    <item>
      <title>HiDPI on XFCE4, Chromebook</title>
      <link>/technical/2f6dcb/</link>
      <pubDate>Wed, 03 Feb 2021 10:53:53 +0000</pubDate>
      
      <guid>/technical/2f6dcb/</guid>
      <description>由于众所不知的原因 laekov 在一处办公环境使用自己的 chromebook 进行办公.
之前的博客提到 laekov 的 chromebook 具有一块 3200x1800 的高分(瞎眼)屏. 而 laekov 在办公室开心地借来了一块和实验室那块看起来一样的 34 寸的带鱼屏, 然而插上之后才发现它的分辨率竟然是 2560x1080, 完全被 13 寸的笔记本屏幕给包含了. 本着屏幕 dpi 不重要, 面积才是王道的思路, laekov 十分容易地 disable 了笔记本的屏幕, 单独使用一整块 34 寸屏幕来进行工作.
laekov 在经历了 chromeos 的 ro rootfs 各种无语之后, 终于决心使用 crouton 的 xfce 环境作为自己的主力工作环境, 并配上了 i3lock 锁屏和熟悉的 urxvt.
然后问题来了: laekov 要抱着 chromebook 去开会! 当 laekov 拔掉 type-c dock, 看向 13 寸小屏幕的时候, 多年前在 laekov 的 (已经死掉的) mbp 上装 kde 之后出现的神奇一幕又出现了! 所有东西变得奇小无比, 需要配合放大镜才能分辨出屏幕上的字是 1 还是 l.</description>
    </item>
    
    <item>
      <title>Chrome book 初体验</title>
      <link>/random/90c0d3/</link>
      <pubDate>Thu, 07 Jan 2021 09:17:05 +0000</pubDate>
      
      <guid>/random/90c0d3/</guid>
      <description>不久之前听说可能要出去背锅, 然而自从 macbook 死亡之后就一直在用实验室的台式机/宿舍买的新的游戏本. 都不太适合背着去干活, 于是考虑买一台轻薄的工作笔记本.
看了一些 ryzen 4 代的轻薄本, 比如 x13, 战x, 灵耀14, 什么的. 然而因为贵所以买不起没买. 后来某天逛闲鱼的时候发现了 chromebook 很便宜, 于是一番研究之后买了个二手 hp g1 chromebook, 1k 块不到.
转身围观一下这台本子，深灰色金属壳还挺高端。最厚的地方只有 12mm，几乎满足了我对薄本的所有想象，但是拿在手里挺沉，可能是压扁了的重型本。 cpu 是六代 m5 skx, 四个物理核默认只开了两个，8 GB mem + 32 GB ssd, 多开几个 chrome 窗口应该都挺好的。最惊人的是居配了一块 3200x1800 的屏幕，观感很不错。 然而还是有一些问题的。屏幕边框宽到跑马车，毕竟是便宜本，键盘键程短到手指疼，只能轻轻打字。触摸板比较小，而且可能由于前任主人用得比较多，所以油油的，而且有点松。考虑之后买个触摸板膜。接口方面带了一个 usb a 两个 usb c包括充电，还有耳机口。考虑到现在 typec 的本子到处飞，转接头很普遍，这也还ok。这个 cpu 最高支持到 4k 屏幕，想要外接显示器也没有问题，赞。
软件方面自然是 chrome os，费了一番力来搞开开发者模式用 crounton 装了一个 debian, 和搞上 play store. 比较无语的是 play store 并不用 chrome os 里面设置的 socks5 代理，于是只好临时搞了一个二层的有隧道的网关，才成功搞开了 play store, 然后立即在里面下了一个 android 版本的 ss, 然后用它就能给 android app 供应网络了。</description>
    </item>
    
    <item>
      <title>在 ThinRouter 上开发网络（原理课）硬件测试仪软件部分的记录和一些经验</title>
      <link>/technical/3b42dc/</link>
      <pubDate>Tue, 22 Dec 2020 10:48:37 +0000</pubDate>
      
      <guid>/technical/3b42dc/</guid>
      <description>这个事情的 motivation 是被 harry 拉去上了一门叫 “高等计算机网络“ 的课, 而 harry 和 gyc 是本科生网络原理课的助教, 于是大作业的内容就是抱着 harry 的大腿给小朋友们做的硬件实验做一个测试平台. (harry: 你的老本行, 造 oj) 因为 laekov 的硬件水平四舍五入等于没有 (gg) 所以负责写前端.
VUE + ChartJS = gg laekov 多年没写过前端了, 没想到 angular 都已经 gg 了. 在 &amp;ldquo;尽量轻量化, 以后烧进 flash&amp;rdquo; 的指导思想 (还有 harry 的 push) 下选择了 vue.
功能里有一个重要的需求是画一张同学们的路由器带宽-帧大小的曲线. 要是有 matplotlib 就好了, 然而既然是在写 web 就只能搞 js 的轮子了.
然而 chartjs 需要给它一个生的 canvas DOM object. 但是 vue 的制造者似乎就是非常不喜欢开发者拿生的 DOM, 甚至把 document 对象都给屏蔽了. (?</description>
    </item>
    
    <item>
      <title>如何修改 htop 中一列的宽度</title>
      <link>/technical/b5a3f7/</link>
      <pubDate>Mon, 30 Nov 2020 17:19:45 +0000</pubDate>
      
      <guid>/technical/b5a3f7/</guid>
      <description>最近在某个公用集群上手工编译了 htop 给小伙伴们用. 然后发现大家的用户名都是学号, htop 并不能把用户名显示全, 于是追责麻烦. 然而 htop 似乎并不支持改列宽, 于是就自己去看代码改列宽了.
以下基于 htop 的 2.2.0 release 版本.
表项的宽度在 Process.c 里的 474 行. 这玩意是 hard coded 的 sprintf 的位宽.
表头在 linux/LinuxProcess.c 里的 205 行, 修改方法是在 title=&amp;quot;USER &amp;quot; 后面再加几个空格. (hard coding 真是让人崩溃啊)
然后可能会编译的时候说 struct Process has no member isKernelThread. 修的方法是在这个 c 文件的 146 行加括号. 注意不能改 .h 文件, 因为 .h 是在 make 的时候从 c 代码里抽取出来生成的 (什么鬼玩意)</description>
    </item>
    
    <item>
      <title>RIO 各种口味品尝 log</title>
      <link>/random/118ba5/</link>
      <pubDate>Sun, 29 Nov 2020 22:29:32 +0000</pubDate>
      
      <guid>/random/118ba5/</guid>
      <description>这件事情的起因是双 11 的时候买了一箱 18 瓶不同口味的 rio. 然后一直觉得打乱这箱 rio 有点逼死强迫症. 直到今天终于决定开始喝它们.
然后又想到每种口味只有一瓶, 喝完之后就并不能复现实验来 rewind 某一种口味到底怎么样. 于是灵机一动决定写篇 blog 把每种味道都记录一下.
后来又购买了更多新的 rio, 于是持续更新中。
无糖系列 拿到四种口味 (准确说这不属于那 18 瓶) 因为无糖所以都不好喝. 一股不快乐的阿斯巴甜味.
白桃: 海星 葡萄: 比白桃难喝一点 柠檬: 酸 橙子: 酸 有糖普通系列 这个系列通常是纯色背景，度数在 3 度左右。
白桃接骨木花: 虽然是赠品但是似乎还不错 是甜的
玫瑰荔枝白兰地: 玫瑰香味+荔枝甜味 没啥酒味 挺好喝
白桃白兰地: (组合数学???) 比较常见的口味. 桃子味浓, 甜!
香槟: 有一点迷惑的水果甜味, 香槟味不是很浓. 但是甜啊!
乐橘乌龙: 闻起来有点橘子的酸酸味, 喝起来倒是偏甜, 比较清爽. 还挺好喝.
百香果伏特加: 果味纯正, 伏特加有一丢丢苦.
菠萝伏特加：菠萝味！超好喝。甜甜的。
芒果伏特加：闻/喝起来是那种没熟的青芒果的味。不太喜欢。
白葡萄味：连酒名都不标了？真的是果味汽水，类似于水晶葡萄。
白桃接骨木花：又一个没有酒名的汽水。花香味还挺好喝的。
黄金奇异果味：汽水，弥猴桃味有点冲。
香草冰淇淋风味：超好喝！！！ 香香甜甜的</description>
    </item>
    
    <item>
      <title>时隔六年, 我怎么又在修 fcitx 了</title>
      <link>/technical/0fbb2f/</link>
      <pubDate>Wed, 18 Nov 2020 22:54:10 +0000</pubDate>
      
      <guid>/technical/0fbb2f/</guid>
      <description>在宿舍买了一台新显示器, 2k.
发现 3337u 和 6400m 都不支持 2k 输出, 于是愉快地买了个 windows 游戏本当前端用.
因为有 rtx 2060 而且想打游戏, 所以只能用 windows 了, 最近又很不喜欢双系统 (因为要重启很麻烦)
于是找到了解决方案: 在 3337u 上开个 vnc server, 在 windows 里连过去.
虽然内网是千兆但是破笔记本迷之降速到了百兆, 于是网络也并不快. 要命的是 super 键会被 windows 吃掉从而无法使用 kde 里面炫酷的窗口搬移特技.
想起了陈年老相好 dwm. 于是又在这台 ideapad 上用上了 dwm, 并愉快地自己修改代码配置了 colorscheme 和各种神奇的热键.
然后用得好好的 fcitx 就跪了. ctrl + 空格打死也加载不出来输入法.
尝试了各种重启重装 fcitx-configure 和删配置文件, 都没用. 一脸茫然.
各种搜索尝试之后发现管用的是在 vnc 的 xstartup 里面加上
export GTK_IM_MODULE=&amp;#34;fcitx&amp;#34; export QT_IM_MODULE=&amp;#34;fcitx&amp;#34; export XMODIFIERS=&amp;#34;@im=fcitx&amp;#34; 然后就能解决问题了.</description>
    </item>
    
    <item>
      <title>Pipedream </title>
      <link>/post/5554ae/</link>
      <pubDate>Tue, 14 Jul 2020 09:17:00 +0000</pubDate>
      
      <guid>/post/5554ae/</guid>
      <description>% Pipedream - Generalized Pipeline Parallelism for DNN Training % Authors from MSR + CMU + Stanford; Presentation &amp;amp; Interpretation by laekov % July 14
DNN Training 的三种并行模式 Data Parallel (DP) 沿 batch 维度进行切分 通信: 同步 weight Model Parallel (MP) 沿 weight 维度进行切分 通信: feature tensor 的求和或者拼装 Pipeline Parallel (PP) Inter-layer partition 通信: 切口处的 feature tensor 及它们的梯度 (在部分模型中通信更少) Overlap 通信和计算 (DP 的 lazy update 也算 pipeline 的一种) Inter-batch Parallelism 无并行的 pipeline 分摊 weight 所需显存 支持不同规格加速器混用 在 homogeneous 环境下毫无加速 GPipe 并行: 批处理模式 Pipedream 并行 多发射 forward 和 backwoard 交错进行 可填满流水线 计算通信 overlap 由 pytorch 框架实现.</description>
    </item>
    
    <item>
      <title>JAX Reading Log</title>
      <link>/post/7990d5/</link>
      <pubDate>Mon, 13 Jul 2020 21:49:51 +0000</pubDate>
      
      <guid>/post/7990d5/</guid>
      <description>% JAX: Autograd and XLA % Jiaao Ho % July 9, 2020
功能和组成 Autograd: 自动求导, numpy 自动求导 JIT: 把 numpy 运算移植到 GPU 和 TPU 上 vmap: 自动 vectorize pmap: 自动 SPMD 自动求导和训练 使用 grad 函数实现 from jax import grad import jax.numpy as np def tanh(x): # Define a function y = np.exp(-2.0 * x) return (1.0 - y) / (1.0 + y) grad_tanh = grad(tanh) # Obtain its gradient function print(grad_tanh(1.</description>
    </item>
    
    <item>
      <title>使用 Shortcuts 让 linux desktop 与 iOS 间获得 airdrop 般的体验</title>
      <link>/technical/dc0e8e/</link>
      <pubDate>Thu, 09 Jul 2020 13:26:28 +0000</pubDate>
      
      <guid>/technical/dc0e8e/</guid>
      <description>laekov 在研究如何用手机远程开关家里的台灯的时候发现了 ios 里 shortcuts 这个神奇而好用(功能上) 的东西. 于是寻思着可以用 shortcut 解决手机/iPad 和 linux 桌面机之间文件和文字传输的问题, 于是进行了一些尝试.
为什么要上 AirDrop 因为它香啊. 可以在不同设备之间快速地传输文件.
比起开个微信传 / slack 传 / telegram 传这种还要让数据去地球另一端绕一圈的传数据方法, airdrop 它不用开聊天软件, 而且速度更快.
但是 AirDrop 的局限在于只能在 apple 设备之间使用. 对于桌面工作环境, laekov 还是更喜欢 linux (debian) + KDE, 用起来更爽一些. 所以每次在 desktop 和手机之间传输消息就成了一件非常麻烦的事.
如果是台式机, 不同的台式机, 台式机和笔记本, laekov 惯用 scp 进行文件传输. 但是 ios 下不存在一个好用没广告不收钱的 scp 软件. 但是 shotcuts 支持 run script over ssh, 就可以解决这个问题了.
Run script over ssh Shortcuts 提供的非常好的一项功能叫 run script over ssh.</description>
    </item>
    
    <item>
      <title>一篇理论上存在的本科毕业留念长文</title>
      <link>/random/2897dc/</link>
      <pubDate>Tue, 23 Jun 2020 15:09:04 +0000</pubDate>
      
      <guid>/random/2897dc/</guid>
      <description>这是一篇关于 laekov 在贵系本科四年的碎片式回忆.
关于学习 没学好的基础课 laekov 高三的时候文化课成绩似乎还可以, 但是上大学之后从线性代数A的线性空间部分开始崩溃, 到微积分B半期挂科伏地膜, 再到大雾B险些挂科. 大一大二的时候一方面选了很多课, 另一方面除了课程之外还找了很多事情干, 所以并没有好好地学习这些基础的课程. 显而易见地, 成绩也非常惨淡.
事实证明线性代数这样的课程还是非常必要的. 例如在写 Prague 的论文的时候就遇到了一个线性代数的证明, 然而不会证, 这种情况就十分惨惨. 再比如大雾里的量子物理, 热学之类的东西, 虽然凭当时的直觉觉得没啥用, 但是真的做科研的时候发现量子计算这条路想走也会更艰辛一些, 然后就会想要是当时花了更多的时间把量子搞得更懂一些该多好.
并不划算的抢先学 laekov 在年轻的时候天真地想空出一整学期没有课 (后来几乎就做到了), 所以一直在抢先选高年级的课, 并将这个战略一直贯彻到了大三. 然而事实证明这并不是一个非常合算的战略.
laekov 在大一下的时候就先上了 OS 课, 原因是时间不冲突 + 对 os 比较感兴趣. 然而当时对 CPU 什么的完全没有正确的了解, 虽然在上完 OS 之后反倒对 CPU 的功能有了一定的认知. 然后大二上的时候就造了 CPU, 大二下才上数字电路设计. 这相当于把贵系的 &amp;ldquo;数电 - CPU - OS&amp;rdquo; 这个知识链完全反过来上了.
虽然 laekov 没有挂科, 但是中间有很多不懂的知识, 会错过很多深入探究的机会. 例如在造 CPU 的时候由于缺乏数设知识, 所以对电路的延迟和流水线设计都没有太多概念. 整个 CPU 造出来也是以 &amp;ldquo;造出来&amp;rdquo; 为目标的, 而且为了这个目标也花费了很多的心血, 而进一步的性能调优和适配更多的功能就完全无能为力了, 所以最后得分相对来说比较低.</description>
    </item>
    
    <item>
      <title>远程部署一个通过 B 站直播分发的实验室集群监控系统</title>
      <link>/technical/214397/</link>
      <pubDate>Fri, 19 Jun 2020 17:43:39 +0000</pubDate>
      
      <guid>/technical/214397/</guid>
      <description>突发奇想在 debian 上装了个 obs. linux 下 obs 可以直接 capture audio output 了, 于是可以在直播里放音乐了, 非常赞. 但是我的笔记本的这个 HD 6400 实在是支持不太了 obs 这种繁重的负载, 于是想到了利用实验室的台式机作为直播前端.
首先要解决的问题是如何连上台式机并使用 gui. 正好发现 teamviewer 可以用命令行启动.
$ sudo teamviewer daemon start $ sudo teamviewer info $ sudo teamviewer passwd &amp;lt;your passwd&amp;gt; 就这么就能获得远端的账号密码了, 就能用了, 非常开心. (虽然 daemon 获得号码可能要等一会儿, restart 若干次)
然后发现 obs 没法 window capture, 所有 window title 都是 unknown. 经过一翻搜索发现原因是 obs 的 locale 不对. 于是设了一下 LC_ALL 就能看到了.
然而 konsole 窗口是黑的一坨, 这和我手上的 debian 不太一样啊!</description>
    </item>
    
    <item>
      <title>毕业倒计时和打卡</title>
      <link>/random/4ac2e6/</link>
      <pubDate>Tue, 09 Jun 2020 09:25:41 +0000</pubDate>
      
      <guid>/random/4ac2e6/</guid>
      <description>要毕业了额.
虽然疫情让这个毕业季显得如此生涩. 但还是决定有仪式感一点&amp;hellip;? 地来个倒计时吧.
虽然好像已经过了六天了. 前六天的一起补吧.
6.9 DAY20-DAY14 答辩的前一天. slides ready. 剩下的工作就是改改文章然后交给 kezhao 了.
于是决定把前些天没打的卡补上. 于是有了这篇文章.
20 最喜欢的一张照片 (翻了翻硬盘)
在学校里好像没啥印象特别深刻的照片.
大紫车刚喷出来的样子, 嗯还挺好看.
19 最喜欢/收获最大的一门课 俄语? hhh. 虽然只上了一学期并很累但是很开心.
树莓派跑丹, 存储, 数据结构, 数据库专题, 编原, 网原, 造机, 面向对象什么的, 就内容讲都还挺有意思的, 也学到了很多东西.
还有图形学写大作业 (虽然写得效果不咋的) 但写起来还是很有意思的.
还有微积分, 线代, 大雾, 电子学这些基础课虽然好像日常听不懂最后也没太学明白, 但也是很重要的基础课吧.
要说最, 好像还真最不出来.
18 第一次跑 3000 米? 大一第一门体育课是 5000 米跑. 每节课一次. 第一次体育课 5k 跑了 24 分钟? 毕竟还是有点基础的.
高一高二的时候偶尔晚上会去跑 1.5k 或者 3k, 在七中的操场上跑 10 圈.
就还好? 甚至北京的海拔比较低所以没有在成都那么累.</description>
    </item>
    
    <item>
      <title>GIF Test</title>
      <link>/post/3d5d53/</link>
      <pubDate>Wed, 13 May 2020 15:38:01 +0000</pubDate>
      
      <guid>/post/3d5d53/</guid>
      <description> </description>
    </item>
    
    <item>
      <title>一篇暗藏玄机的 Base64 简介</title>
      <link>/technical/5a37b3/</link>
      <pubDate>Thu, 13 Feb 2020 20:39:12 +0000</pubDate>
      
      <guid>/technical/5a37b3/</guid>
      <description>Base64 是一种常用的二进制到文本的编码方式, 应用非常广泛.
考虑这么一种场景, 两人之间现只能发送文字信息, 但他们要发送一张 jpeg 格式的图片.
如果尝试用文本编辑软件打开 jpeg, 将会发现是一大堆乱码. 原因是 jpeg 是二进制文件, 每个字节表示的东西几乎都不是给人看的字符, 自然没法解析出来.
而如果想把这些东西强行复制出来, 那更是一种灾难. 里面会有各种各样神奇的比如换行符, 甚至是\0 (文件结束符) 这种迷惑的东西. 自然是没法很好地以文本的方式传输的.
于是就有了这么一种把任意二进制文件都转化成没有奇怪特殊字符的方法.
首先把二进制文件或者任意字符串写成一串 01. 然后把相邻的 6 位合起来, 用 A-Za-z0-9+/ 一共 (64=2^6) 个字符来表示. 最后可能省下 2 个或者 4 个空位, 则用 0 补齐, 然后放一堆等号上去.
这样就可以把任意的文件, 比如文字, 图片, 视频都转换成肉眼可见, 易于复制和通过 http 之类的协议以及 json 之类的格式来传输的数据了.
下面是一些例子
hello world =&amp;gt; aGVsbG8gd29ybGQ=
我不知道 base64 是什么 =&amp;gt; 5oiR5LiN55+l6YGTIGJhc2U2NCDmmK/ku4DkuYg=
宝宝在这里给宝宝藏了一张小纸条: 6KaB5LiN6KaB5Y6755yL55yL5a6d5a6d55qE572R5piT5LqR6Z+z5LmQ5q2M5Y2V6YeM5aSa5LqG5LuA5LmI6L+35oOR55qE5Lic6KW/Pw== я говорю по русский плохо =&amp;gt; 0Y8g0LPQvtCy0L7RgNGOINC/0L4g0YDRg9GB0YHQutC40Lkg0L/Qu9C+0YXQvg==</description>
    </item>
    
    <item>
      <title>针对训诫事件的死亡凝视</title>
      <link>/random/ce69e9/</link>
      <pubDate>Fri, 07 Feb 2020 10:58:21 +0000</pubDate>
      
      <guid>/random/ce69e9/</guid>
      <description>开心的是, 在这里写什么都不会有人审核.
关于所谓的 yu qing 监管制度, 到底应该吐槽什么呢.
身边的 dang yuan 都说不要制造恐慌 不传播消息-&amp;gt;渎职, 妨害公众知情权 好难额.
可是为什么所谓的 yu 情监管机制这么强大呢.
我想不仅仅是为了抑制 sars 吧.
想想莆田, 想想电视上的各种医骗, 双黄莲.
如果我是警察, 我抓到了一个说着奇怪言论的好像是医生的人. 想着我被假医生害死的老父亲, 我要不要先一刀砍了这个人?
信任危机早就存在了. 训诫好人的不是警察, 而是千千万万或别有用心, 或管不好自己嘴巴的 elements.
坏掉的人多了, 当中的好人也会看起来坏坏的.
一个糟糕的社会.</description>
    </item>
    
    <item>
      <title>Ubuntu 发行版更新记录</title>
      <link>/technical/3132d1/</link>
      <pubDate>Tue, 21 Jan 2020 23:13:52 +0000</pubDate>
      
      <guid>/technical/3132d1/</guid>
      <description>就在刚刚运行着本网站的阿里云 ecs 经历了一次升级, 从 ubuntu 16.04 lts 升级到了 18.04 lts.
升级过程平稳, 但升级后发现这个 php 做的网站变成了源码. 目测是 php 跪了, 于是尝试修 php.
php5 仿佛已经不被支持, 于是换用 php7. 直接暴力 apt remove 再 install 就可以了, 配置会被保留.
然后发现 mysqli not found. 解决方法是在 /etc/php/7.2/apache2/php.ini 里面将 extension=mysqli 一行给 uncomment 掉.
然后就完事了.</description>
    </item>
    
    <item>
      <title>在若干不同机器上安装 Debian 并修了一些锅的记录</title>
      <link>/technical/29af09/</link>
      <pubDate>Mon, 13 Jan 2020 13:59:15 +0000</pubDate>
      
      <guid>/technical/29af09/</guid>
      <description>最近因为各种神奇的移动, 在不同的3台电脑上装了 debian, 并踩了不同的坑. 开一个文章来记录一下各种神奇的坑.
0 一台 2013 年的联想 ideapad 笔记本, 配备了 AMD HD 6400M 独显. 因为突然想起了 bios 的管理密码所以激活了独显. 于是想用独显来跑 opencl 之类的.
然而老的 amd crystal 驱动好像不是很支持? 时间有点久, 忘记了踩了什么坑. 总之 apt 瞎搞最后就装上了.
1 实验室师兄的 i7 + GTX 1070 + 4k 屏. 装 nvidia 驱动并 disable nouveau 是常规操作.
然后遇到的问题是 4k 屏对 gtk 的程序好像不是很友好. chrome 的地址栏和 ibus 之类的东西会变得非常小, 瞎眼. 解决方案是用 GTK_SCALE=2 这个环境变量. 但问题是这个环境变量不应该在开窗口的时候再设, 而是要放到 profile.d 里面. 然后就解决了问题.
然后 ibus 冥顽不化地占据了我的输入法. 然后发现 apt remove 之后就能愉快地使用 fcitx 了.</description>
    </item>
    
    <item>
      <title>Minimon: A minimal surveillance system based on buildroot for RaspberryPi</title>
      <link>/technical/1f8072/</link>
      <pubDate>Wed, 27 Nov 2019 21:18:35 +0000</pubDate>
      
      <guid>/technical/1f8072/</guid>
      <description>因为发现助教给炼丹任务提供了 64 张图片作为训练集, 64 张图片作为验证集, 所以果断放弃了炼丹任务. (update: 发现还是炼丹任务好做)
打算用 buildroot 从底向上 build 一个能跑起 python-gpio 的 linux. 另开一文记录一下坑们.
(补充) 计划 先不管镜像大小, 用 buildroot 搞出一个能跑的系统. (好像 buildroot 部分差不多了.) 实时性补丁 进一步裁剪内核. (即使不栽应该也比 raspbian 小很多了. 毕竟老师那边 raspbian 裁剪纪录是 200M, 而 buildroot 现在才不到 150.) build 使用了默认配置 $ make raspberrypi3_defconfig 节省了很多自己摸索的时间.
配置静态 ip 的时候发现可能是由于 networking 的版本问题, 必需要在 interfaces 配置文件里把 netmask 写在 address 上面, 否则不 work.
另外选装上了 openssh 以支持 ssh 登录. 在折腾了半天之后终于能 ssh 上树莓派上的系统了.
然后发现它有一个轻量级的 dropbear 作为 sshd.</description>
    </item>
    
    <item>
      <title>SCC@SC&#39;19 笔记</title>
      <link>/technical/b1c6c4/</link>
      <pubDate>Sat, 23 Nov 2019 06:05:51 +0000</pubDate>
      
      <guid>/technical/b1c6c4/</guid>
      <description>好的 scc@sc&#39;19 终于没有拿亚军
记个流水账
Benchmarking 好像没啥特别的.
一个新的发现是 HPL 的功耗飘可能是因为 GPU 功耗上升而不是计算 pattern? 回头仔细看看..?
内核的奇怪的锅 导致 idle 状态下 ssh 上一台机器就能跳 200w 的功耗 spike. 通过更新内核版本解决了该问题.
IB 卡烧掉了??? benchmark 本来早晨很早就交了而且数也还行. 然而中午玩着玩着发现 ib 卡没了. 尝试 pci hot reenable 失败之后重启并重新跑了 benchmark. 后来发现是 ib 卡在 gpu 风道里, 而我们给没插卡的节点的 gpu 风扇拔了一半的线, 另一半还是最低速运转的, 于是把 ib 给热傻了&amp;hellip;
SST 人脑挖矿 + 无脑跑 SST 第一个部分是给定 cpu 核心数, l1/l2 cache 的不同搭配之类的总共乘起来 5760 种选择, 让用 SST 搞出一种性能最好且不超过5000块钱的配置.
人脑挖矿 vs 暴力. 测算发现暴力应该能跑完所有点, 于是就暴力了一下.
听说别的队有试图人脑的&amp;hellip;</description>
    </item>
    
    <item>
      <title>Raspberry Pi 折腾记录</title>
      <link>/technical/0ab785/</link>
      <pubDate>Sun, 03 Nov 2019 21:49:27 +0000</pubDate>
      
      <guid>/technical/0ab785/</guid>
      <description>获得一个生日礼物 raspberry pi 已将近一年, 然而因为它只有四个核所以被嫌弃地闲置了很久. 近期因为上了嵌入式的课, 所以又开始了一轮折腾. 把一些有趣的事记录一下.
网络连接配置 老师说让我们先插上显示器配wifi, 之前我也是这么干的, 于是照做了.
然后想拿回家用, 家里没显示器, wifi 密码输入错误, 失联 ovo
后来想起直接给有线网口配个静态ip 就完事了. 和电脑直接对插就能访问 ovo.
延迟测试 发了一个示波器很好玩, 然而只有 windows 的 pc 端驱动差评.
GPIO 管脚控制居然是 python, 严重怀疑效率.
实验本身倒是很简单. 接下来是给 kernel 打实时性补丁. (中断响应优先级? 时间步大小? 感觉 很有趣)
视频流 网上看到一个例子是把 raspivid 的输出用 nc 接起来到 host 上用 mplayer / vlc 播放. 非常有趣就试了一下. cvlc 转发延迟略高. 直接 mplayer 放 h264 格式的视频非常流畅.
Modius NN 计算棒 去 intel 上找到了 openvino 作为 myriad 计算棒的驱动.</description>
    </item>
    
    <item>
      <title>meeting.cc</title>
      <link>/code/bd6efc/</link>
      <pubDate>Mon, 07 Oct 2019 09:39:11 +0000</pubDate>
      
      <guid>/code/bd6efc/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #define _l (long long int)
struct Edge { int t; Edge* ne; };
const int maxn = 100003;
dint f[maxn], g[maxn], ans; Edge epool[maxn * 2], *ebuf(epool), *head[maxn]; int n;
inline void addEdge(int u, int v) { ebuf-&amp;gt;t = v; ebuf-&amp;gt;ne = head[u]; head[u] = ebuf++; }
void DFS(int u, int fr) { f[u] = 1; g[u] = 0; for (Edge* e = head[u]; e; e = e-&amp;gt;ne) { if (e-&amp;gt;t !</description>
    </item>
    
    <item>
      <title>Graph Processing Systems</title>
      <link>/technical/3fd4cd/</link>
      <pubDate>Wed, 25 Sep 2019 16:44:18 +0000</pubDate>
      
      <guid>/technical/3fd4cd/</guid>
      <description>GridGraph 师兄的文章. 主要 idea 是把邻接矩阵切成块 (p*p) 放到磁盘上顺序读来提升 io 性能. 单机.
GraphChi disk-based, parallel sliding windows, single consumer-level computer.
metis 不 work (???)
解决出入边都要考虑和写的问题.
按出边分块 shard. 入边按序存放, 在每个 shard 中为连续一段. 可加载进来.
解决了一些比较麻烦的问题比如数三角形.</description>
    </item>
    
    <item>
      <title>(排名17的何先生的) 一篇站台失败记 -- 19&#39; 长寿湖联赛</title>
      <link>/random/1830a0/</link>
      <pubDate>Sun, 15 Sep 2019 20:52:35 +0000</pubDate>
      
      <guid>/random/1830a0/</guid>
      <description>因为在 LA 爬了俩月坡, 感觉自己功率有所长进, 所以这场比赛以为自己能站个台. 然而事实是刷出了 pw. 这个经历再次验证了 flag 学三大定理 lyzy, 2016.
起源和准备阶段 赛前两周才听说重庆有比赛. 本来下半年没有比赛计划的, 自己的公路车也还没组装好, 但考虑到可以中秋回趟成都过节, 就还是毅然决然地被报名了.
在成都老车迷租到了一台 Trek Emonda 的入门铝公路车, 是前段时间某个比赛的赞助车, 虽然套件轮组辣鸡, 但总之能骑, 而且比在 LA 骑的那台上古 Allez 强. 甚至感觉自己能刷 pb.
回北京第一周早晨倒时差起床跑步, 发现跑六分配速都喘. 三天跑了11km. 游泳训练是和洞pro约在陈明讨论学术顺便划了300米.
赛前 发现20-24被重邮移通铁人队占了绝大多数. 有点方. 听尘尘和红红说他们很菜. 我竟然信了.
去车店取了车准备骑回家, 一路在三环辅路上飙到40kph非常爽. 然而骑了 6km 胎就被扎了. 回家看了半天才发现胎里扎了个钉子. ovo
开自家车带着爹妈和自行车从成都开了四个半小时到长寿湖. 一路定速巡航还挺爽.
审体检报告的时候果然又被短pr间期的问题卡了. 不过这次赛会医疗组很人性化地带了心电图设备, 直接现场复查了. 赞.
看赛道的时候让我爹开车跟着, 体验了一把后援车跟拍. 发现有一段颠颠颠颠的下坡. 以及发现这车变速不太准. 当场调变速.
晚上去吃奇怪的水库鱼, 然后鱼一直没上, 饭都吃完了, 就把鱼退了.
游泳 第一次遇到水下出发. 第一圈还将就就是有点慢. 第二圈下水就游偏了, 被裁判船吹哨赶了回去.
上岸的时候发现岸边有石头甚至差点划破了脚.
到 T1 发现只有我和另一台自行车了.</description>
    </item>
    
    <item>
      <title>Jiaao He</title>
      <link>/cv/</link>
      <pubDate>Tue, 13 Aug 2019 02:36:40 +0000</pubDate>
      
      <guid>/cv/</guid>
      <description>Formal Name: Jiaao He English Name: Rick Ho Common ID: laekov Personal E-mail: laekov.h [at] gmail [dot] com ORCID: 0000-0001-8578-5158 Google Scholar Profile here is a photo of me
Bio Dr. Jiaao He receieved his PhD degree from the Department of Comperter Science and Technology, Tsinghua University in 2025, where he also received his bachelor degree in 2020. His research interests include designing and accelerating distributed systems for tensors with sparsity.</description>
    </item>
    
    <item>
      <title>Leetcode1152 用户行为分析</title>
      <link>/oi/461caf/</link>
      <pubDate>Tue, 13 Aug 2019 02:31:17 +0000</pubDate>
      
      <guid>/oi/461caf/</guid>
      <description>看上去很复杂的一个题. 然而数据范围 ( n \leq 50 )
基础知识0: python 里面 list 可以做 dict 的 key.
基础知识1: python 里面 list 可以直接比较大小, 比较方式就是元素的字典序.
做法是先按照 username 对记录进行归类 (dict of list).
然后把每个 username 对应的所有记录按 timestamp 进行排序. (sorted(&amp;hellip;, key=lambda &amp;hellip;))
然后枚举每个用户的所有访问页面三元组并扔进 list 里面. 因为要求一个用户只算一次, 所以要去除 list 里面重复的元素. 所以把 list 转换成 set (集合) 就好了. 也可以直接用 set.
然后把 set 里面的元素都用一个 dict 做一下记数.
最后从记数的 dict 里面挑出次数最多且字典序最小的就可以了.
代码链接</description>
    </item>
    
    <item>
      <title>Leetcode1130 叶值最小代价生成树</title>
      <link>/oi/967d6b/</link>
      <pubDate>Wed, 24 Jul 2019 05:04:14 +0000</pubDate>
      
      <guid>/oi/967d6b/</guid>
      <description>首先弄清楚中序遍历是什么意思.
中序遍历是一个序列 (list).
不存在的节点的中序遍历是空序 ([]).
以 u 为根的二叉树的中序遍历 = u 的左儿子的中序遍历 + u + u 的右儿子的中序遍历
其中加号就是连接两个序列的意思.
题目里说只考虑叶子节点的中序遍历, 就是把所有非叶子从中序里扔掉就好了.
然后考虑从随便一个序列构造一个满足条件的二叉树. 其实这个二叉树上的任意一个点会对应原序列中的连续一段, 而这个点的值就是这一段的所有数的最大值.
我们考虑自底向上的建树. 也就是说最开始是 n 个单独的点, 然后每次建一个新点, 它的两个儿子分别是原来的两个点. 然后用这个新点代替原来的两个点. 重复 &amp;ldquo;挑选, 替代&amp;rdquo; 的过程直到只剩一个点, 就建成了一棵完整的树.
每次挑选的两个点一定代表原数组上相邻的两个区间. 合并后建成这棵树的 最小 代价为 左儿子的最小代价 + 右儿子的最小代价 + 左边最大值 * 右边最大值. 而我们的最小化目标是根的 最小 代价.
自然想到用 f[l][i] 代表以 i 为第一个数的长度为 l 的区间所代表的点为根的树 的 最小 代价. 首先 f[1][i] == a[i], 而我们的目标是 f[n][0].
进一步想, 最小化 f[l][i] 就是在所有该点的左右儿子分配方式 (就是各有多长, 总之加起来是 l) 中挑一个最小的.</description>
    </item>
    
    <item>
      <title>Leetcode1129  颜色交替的最短路径</title>
      <link>/oi/0529db/</link>
      <pubDate>Wed, 24 Jul 2019 02:51:30 +0000</pubDate>
      
      <guid>/oi/0529db/</guid>
      <description>很基础的 BFS 题目.
BFS 和 DFS 是相对应的两种算法. 其区别在于对于新发现的可能性, BFS 将其放入队列末尾, 稍后进行探索, 而 DFS 立即探索这种新情况, 等探索完之后再回到之前的状态继续枚举.
对于这道题目来说, 具体来讲, 状况可以用 (位置, 距离, 颜色) 这么一个 tuple 来表示. 最开始的时候, 有 (0, 0, blue) 和 (0, 0, red) 这两种情况. 假设 0到1 有一条蓝边, 0到2 有一条红边, 那么新的情况是 (1, 1, red) 和 (2, 1, blue).
如果我们使用 DFS, 那么当新发现 (1, 1, red) 这个状态的时候, 我会立即以 (1, 1, red) 为起点, 继续探索 1 号点的邻居, 比如找到了 (3, 2, blue) &amp;hellip; 直到找完所有通过 (1, 1, red) 可以达到的状态之后, 再继续以 (2, 1, blue) 为基础进行枚举.</description>
    </item>
    
    <item>
      <title>Leetcode5129</title>
      <link>/oi/51d1b4/</link>
      <pubDate>Tue, 16 Jul 2019 12:16:25 +0000</pubDate>
      
      <guid>/oi/51d1b4/</guid>
      <description>先预处理一下, 把 &amp;gt;8h 的变成 +1, &amp;lt;=8h 的变成 -1
现在问题就变成了: 找最长的连续一段使其和 &amp;gt;0
使用前缀和数组, 要求 i~j 的和, 公式是 sum[j] - sum[i - 1].
枚举左端点 i. 对于某个确定的 i, 要找以 i 为左端点的最长一段符合要求的区间, 即找满足条件 sum[j] &amp;gt; sum[i - 1] 的最大的 j
注意到 sum 数组的取值为 [-n, n], 故使用值域数组 values. value[k] 表示 sum[j] == k 的最大的 j. 该数组可以在求 sum 数组时一并求出.
满足条件 sum[j] &amp;gt; sum[i - 1] 的最大 j 即求 values[sum[i - 1] + 1], values[sum[i - 1] + 2], values[sum[i - 1] + 3], &amp;hellip;, values[正无穷] 中的最大值.</description>
    </item>
    
    <item>
      <title>leetcode5129.py</title>
      <link>/code/fbcc0f/</link>
      <pubDate>Tue, 16 Jul 2019 12:15:49 +0000</pubDate>
      
      <guid>/code/fbcc0f/</guid>
      <description>class Solution: def longestWPI(self, hours: List[int]) -&amp;gt; int: for i, h in enumerate(hours): hours[i] = 1 if h &amp;gt; 8 else -1 s = [0] n = len(hours) values = [0] * (n * 2 + 2) for i, h in enumerate(hours): s.append(s[-1] + h) values[s[-1] + n] = i + 1 for i in range(n * 2 - 1, -1, -1): values[i] = max(values[i], values[i + 1]) answer = 0 for i in range(n): answer = max(answer, values[s[i] + n + 1] - i) return answer</description>
    </item>
    
    <item>
      <title>Leetcode5130</title>
      <link>/oi/63d337/</link>
      <pubDate>Tue, 16 Jul 2019 12:14:30 +0000</pubDate>
      
      <guid>/oi/63d337/</guid>
      <description>状压动态规划.
dp[x] 表示 x 状态下的最少人数. 其中 x 是二进制数, 第 i 位表示第 i 项技能是否有人已经拥有. 例如 ( x = (10010)_2 ) 从右往左第 1, 4 位是 1, 表示技能 1, 4 已有人掌握, 而 0, 2, 3 无人掌握.
假设一个人的技巧是 p, 现在的状态是 x, 则加入后的状态是 x|p. 其中 | 即 python/cpp 中的 | 运算符, 意义是取二进制或.
运算过程为最初时只有 dp[0] = 0. 对于每个人的技能集合 p, 可以更新 dp 数组 dp[x | p] = min(dp[x | p], dp[x] + 1)
最后的答案是 dp[((111\dots 1)_2)] 即 dp[(1 &amp;laquo; len(skills)) - 1]</description>
    </item>
    
    <item>
      <title>leetocde5130.py</title>
      <link>/code/be49b0/</link>
      <pubDate>Tue, 16 Jul 2019 00:24:11 +0000</pubDate>
      
      <guid>/code/be49b0/</guid>
      <description>class Solution: def smallestSufficientTeam(self, req_skills: List[str], people: List[List[str]]) -&amp;gt; List[int]: m = len(req_skills) dp = [99999] * (1 &amp;laquo; m) fr = [None] * (1 &amp;laquo; m) dp[0] = 0 for pi, p in enumerate(people): skills = 0 for s in p: try: idx = req_skills.index(s) skills |= 1 &amp;laquo; idx except Exception: continue for i in range(1 &amp;laquo; m): if dp[i | skills] &amp;gt; dp[i] + 1: dp[i | skills] = dp[i] + 1 fr[i | skills] = (i, pi) result = [] stat = (1 &amp;laquo; m) - 1 while stat &amp;gt; 0: result.</description>
    </item>
    
    <item>
      <title>ISC&#39;19 马后炮</title>
      <link>/technical/6a12b3/</link>
      <pubDate>Mon, 01 Jul 2019 09:54:58 +0000</pubDate>
      
      <guid>/technical/6a12b3/</guid>
      <description>ISC&#39;19. 一场大概是退役失败的超算比赛.
我负责的 part 是 AI, 还有万年大锅 HPL, 以及神秘应用. 还有就是订保险订酒店联系赞助商blabla.
本来想帮忙搞 HPCC 的但是没有精力搞不动 ovo
AI AI 题是去年的 GB 论文 + 精调模型. 在解决了组委会提供的脚本里的一些性能上的 bug 之后顺利地训了起来. 而且按照原文里在上千个节点上并行训还能收敛来讲, 是可以在现有机器条件下随便数据并行的. (事实证明直接把整个训练集切成 10 个batch 也没有问题)
因为最终要求是精度, 所以请教了一些人, 得到的思路是 数据增强, ensemble. 数据增强不太写得动, 于是改脚本做了 ensemble 的 inference, 效果还不错. 比原文高了几个点. 但也没有特别闪亮的突破性进展. 唯一发现是 bn 用的是 training mode. (原因应该是 tf 的 bn 一直自带 bug, 如果用推理模式精度就是会炸掉) 于是推理的时候也应该 bs 越大越好. 于是就有了 dummy sample inference + unique 的一个脚本. 然后因为没有处理好 &amp;ldquo;//&amp;rdquo; 于是组委会还怀疑了半天为什么我的脚本有锅. 哭.
然后就是现场出了一个锅: unseen dataset 发下来一看居然是事前给出的 test set.</description>
    </item>
    
    <item>
      <title>Mac微信Bug修复手记</title>
      <link>/technical/f93221/</link>
      <pubDate>Fri, 10 May 2019 16:42:41 +0000</pubDate>
      
      <guid>/technical/f93221/</guid>
      <description>前段时间遇到 mac 微信出了一个锅.
部分微信群和联系人在电脑上收不到消息, 可以发消息, 但发出去一直显示转圈圈 (其实对方已经收到了), 切换窗口再切回来就连之前自己发的消息都不见了ovo
然而因为不太影响使用(可以在手机上看消息, 电脑盲回) 所以没太管. 但是作为一个强迫症还是不太能忍, 于是过了好久还是决定动手修一下.
mac下微信的本地数据文件在 /Users/laekov/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/2.0b4.0.9. 初步估计是本地文件出锅了, 于是对它动手.
首先在mac端不上线的情况下手机拉了一个不影响别人的群, 然后用mac登录, 果然这个群属于bug群.
把 Message 目录移动为 Message_bak, 重新登录, 失去了所有聊天记录. 再次尝试使用上面那个群, 发现可以正常使用. 定位到问题文件在 Message 目录里.
发现 Message 目录下有 msg_[0-9]十种前缀的文件, 估计是对聊天记录进行了分桶. 大胆猜测是某个桶坏了.
于是等了一分钟后在群里发了一条消息, 发现只有 msg_6 开头文件被更新了. 大胆猜想是 msg_6 这个桶炸了.
另有有一个 MessageTemp 目录较大, 目测是数据文件. (比如消息, 图片, 视频) 猜想这里放的是元数据. 于是把旧的 MessageTemp 先拷回来.
然后恢复了 msg_1 开头的几个文件, 发现果然聊天记录回来了一部分.
挨个恢复除了 msg_6 以外的所有 msg_x 文件, 于是除了之前炸掉的记录以外, 聊天记录都回来了.
坏掉的文件就确实没法修了. 鬼知道.data格式是啥玩意. 完结撒花.</description>
    </item>
    
    <item>
      <title>行走的事故现场 -- ASC19 赛记</title>
      <link>/random/34dd44/</link>
      <pubDate>Sun, 28 Apr 2019 16:20:43 +0000</pubDate>
      
      <guid>/random/34dd44/</guid>
      <description>许久没写过博客了.
看到 harry 写了赛记才想起我还有个博客.
随便写一点东西吧.
ASC19. 拿了 &amp;ldquo;大满贯&amp;rdquo; 之后第一场比赛, 拿了个亚军. @大连理工
Sec 0 赛前给自己的定位大概就是, 学学配机器和benchmark这种看上去比较底层的东西. 应用上就划划水好好干别的事.
于是初赛成为了写 proposal 选手 + 装机器选手. 最初装机器闹了很多笑话 比如在R730上把 V100 的挡板拆了然后导致显卡悬空. 感谢戴尔和 NVIDIA 的 PCIe 槽足够结实没有直接坏掉让我赔20万的机器的卡.
然后 proposal 也是写到崩溃 ovo.
然后跑 HPL 发现各种玄学, 以及 32G 的 V100 性能和 16G 的不太一样. 单卡跑不上去, 多卡也有各种问题. 然后 P, Q, NB 有很多玄妙的组合. (后来知道 N 也有很多玄学). 以及连续跑和单独跑是不一样的. 这还是不考虑功耗在四台 R730 上插上 8 张卡裸跑的情况.
HPCG 单卡不压功率也只有 125 的样子.
另一个神奇的情况是直接跑HPL会报 MPI Error: Illegal address. 解决它的方法是, 跑一次HPCG.</description>
    </item>
    
    <item>
      <title>愿望</title>
      <link>/random/a3a526/</link>
      <pubDate>Sun, 27 Jan 2019 14:07:53 +0000</pubDate>
      
      <guid>/random/a3a526/</guid>
      <description>我的愿望真的很简单
如果有一天我变成骨灰了的话
我不想被装进盒子里</description>
    </item>
    
    <item>
      <title>北大毕业生去送外卖了, 我呢</title>
      <link>/random/d00a5b/</link>
      <pubDate>Sat, 26 Jan 2019 09:46:31 +0000</pubDate>
      
      <guid>/random/d00a5b/</guid>
      <description>看了一篇文章叫 &amp;ldquo;北大毕业生去送外卖&amp;rdquo;
以前北大毕业生好像还有去卖猪肉的.
这篇就是, 很真实噢
我们活成了什么样?
我们自己希望活成什么样?
我们被别人希望活成什么样?
我们凭什么要活成别人希望的那样?
再问下去就应该问 &amp;ldquo;我们为什么要活着&amp;rdquo; 了
怎么活着不是活着?
人生苦短, 为什么要干这么多不喜欢干的事?
所谓 &amp;ldquo;幸福&amp;rdquo; 的 &amp;ldquo;未来&amp;rdquo;, &amp;ldquo;前途&amp;rdquo;, 谁知道是不是扯淡?
我大胆猜想, 都是一个更大的坑
因为投入多
期待有收益
但现在没有得到应有的收益
出于愚蠢/拖延
只能天真地期望未来的收益/下一代带来收益
切
还不如活得洒脱一点呢
Historical Comments AInoob at 2019-07-18T13:36:31 活得快乐就不错吧。虽然我还没想好搞什么。
laekov at 2019-07-24T04:49:21 @Alnoob 快乐也没有那么简单吧..</description>
    </item>
    
    <item>
      <title>Cena 用户指南</title>
      <link>/post/fbf425/</link>
      <pubDate>Fri, 25 Jan 2019 16:19:17 +0000</pubDate>
      
      <guid>/post/fbf425/</guid>
      <description> </description>
    </item>
    
    <item>
      <title>DyNet 代码笔记</title>
      <link>/technical/bb68d3/</link>
      <pubDate>Sat, 01 Sep 2018 20:52:52 +0000</pubDate>
      
      <guid>/technical/bb68d3/</guid>
      <description>API角度 Python 功能没有 pytorch 完善. 参数收集等都需要手写.
CPP API 同 Python.
设计理念 类名为 Expression: 表达式 -&amp;gt; 明确定义 未执行.
Graph @xl nodes, parameter_nodes
inplace: forward_inplace_state { NOPE } 完全没支持inplace.
immediate_compute 立即执行.
提供backward方法, 但传入了loss的index.
Tensor 暴力绑定内存. (直接就是一个裸指针)
Expression (Variable) value() 方法真正执行expression并获取值. 调用ee(ExecutionEngine).
Autobatching 在执行cg的时候做. 具体代码在 exec.cc 里一个叫 incremental_forward_no_update的函数里.
使用 signiture 机制. 不同功能的function对应不同的signiture. 相同signiture的 合并.
Optimize 没有做. 只有一个找关键路径的简单算法.
Node(Functions) Spec推断 DimForward 专门维护 shape 信息.
forward 和 backward 放在一个子类里.
所有控制都由 Graph 接管. 包括所有 Variable 和 Nodes (Function)</description>
    </item>
    
    <item>
      <title>汇编 CSAPP Attack Lab</title>
      <link>/technical/6788d3/</link>
      <pubDate>Thu, 30 Aug 2018 08:59:09 +0000</pubDate>
      
      <guid>/technical/6788d3/</guid>
      <description>最近做 attack lab 感到虽然很头大但是很好玩.
主要分为两个 target: code injection 和 return hack
两个实验的原理都是栈向上溢出之后抹掉了一些 return address, 从而可以改写, 做任何你想做的事.
ctarget 比较简单粗暴, 可以直接跳到用户上传的字符串里面, 把用户数据直接当代码执行.
第一个子任务 可以直接跳转.
第二个子任务 需要把 cookie 找出来并写进 %rdi. 我最开始以为cookie是随机的, 于是去gdb里把 cookie 的内存地址给弄出来强行读了. 后来才发现可以直接 hardcode.
第三个子任务 同上, 没有发现这个 trick, 于是就从内存里读之后, 调用它提供的 sprintf 函数. 这个函数有很多的陷阱, 比如一定要把 %rax 设成 0, 不然会跳错. 然后打印的地址也得自己在栈里找. 更坑的是栈空间会被 sprintf 函数给抹掉, 所以必需得先把 %rsp 放低到很远的位置去, 不然就算打对了字符串, 注入的代码段也没有了, 还是会 segmentation fault.
好了现在问题又来了, 注入的栈只有 56 个字节. 如何把上面一长串代码塞进去. 其实有个简单的方法是继续向上溢出, 中间加一条 jmp. 但是懒惰的我强行使用各种办法把代码给压进去了. 比如 subl 比 subq 少一个字节, 于是可以只减 rsp 的低32位 esp.</description>
    </item>
    
    <item>
      <title>DyNet 论文笔记</title>
      <link>/technical/e51049/</link>
      <pubDate>Mon, 09 Jul 2018 11:38:28 +0000</pubDate>
      
      <guid>/technical/e51049/</guid>
      <description>DYNET 1701.03980
ABS cpp backend
lw graph representation
Problems easier debugging / maintaining large proj. express naturally Static vs Dynamic static pre-written model transfered to computation graph
graph can be well optimized
cannot deal with variable input size. NLP RNN
cannot deal with variable input structure. Tree NN, Graph NN
hard for complex flow-contronl logic (interface design)
nontrivial interface.
debug difficulty during execution
dynamic do computation on the fly
can be expensiveo flow control and variable sized inputs are in host language (python?</description>
    </item>
    
    <item>
      <title>CaPiano 基于 FPGA 和摄像头的现实增强钢琴</title>
      <link>/technical/7acc1f/</link>
      <pubDate>Tue, 12 Jun 2018 14:00:36 +0000</pubDate>
      
      <guid>/technical/7acc1f/</guid>
      <description>Queue 了一篇 CaPiano. 上午展示完. 人智课生产力低下. 把它 Dequeue 了罢.
这个项目的最初设想是造一个识别指尖的算法, 然后用它来弹钢琴并发出声音. 还有一个完全没有开动的二期工程是把它变成一个音游 / 录音机.
蓝图是美好的, 实现是丑陋的.
摄像头 过去一个半月的主要工作就是和这个 OV7670 (AL422B) 的摄像头做斗争. AL422B 是一个 DRAM 的 FIFO 队列, 通过巧妙地接 7670 和 422 的管脚可以实现把 422 作为 7670 的一个输出缓冲. 422 本来是用于简化这件事的. 在国外大学的 PA 文档里也是这么说的. 然而 422 这个东西最大的毛病就是没有 dataready 这个信号, 所以根本没法成功探索出什么时候可以读. 挣扎了很久之后我选择买了一个不带 422 的 7670.
7670 通过 SCCB 协议来进行配置, 有一些寄存器. 主要有用的是控制彩色的 12 和控制输出格式的 40. 本来想要 RGB565 加 QVGA 爽歪歪. 然而我的配置模块跑出来结果完全不对, 最后发现根本没设起. 降频到手工时钟都没有办法正常工作. 于是只好放弃, 使用默认的 YUV + VGA.</description>
    </item>
    
    <item>
      <title>人智的另一个作业. 教你 30 分钟写完 MNIST 作业</title>
      <link>/technical/75774b/</link>
      <pubDate>Fri, 18 May 2018 23:55:54 +0000</pubDate>
      
      <guid>/technical/75774b/</guid>
      <description>教你 30 分钟写完 MNIST 作业 laekov 2018.05.20
Overview 题目要求 随便用什么框架去 Kaggle 上做手写数字识别的数据集.
你可以选择自己写一个框架. (谁爱写谁写)
THU PACMAN 实验室最近在筹划写一个框架, 有兴趣的同学可以联系我.
最好多实现几个模型, 调调参, 写报告需要.
需要做的事 找一个框架 抄一遍 Tutorial 写一个处理数据 (csv格式) 的模块 写一个模型 写训练/验证/测试的东西 CNTK 框架 微软的框架. Python 文档见https://cntk.ai/pythondocs/index.html
安装. 见官网. pip, conda, install_cntk.exe 什么的都行.
略.
使用 CNTK 框架.
import os import cntk as C import numpy as np 轻松愉快.
处理 CSV 数据格式
第一行不用管
1234567890,0,0,...,255,0 一行一张图, 第一个是数字, 后面是28x28个0-255的灰度值.
可以用 pandas 之类的又麻烦又难用的库.
不如自己写个小函数.
def csv_reader(filename, batch_size = 1, is_test = False): with open(filename, &amp;#39;r&amp;#39;) as f: f.</description>
    </item>
    
    <item>
      <title>LIRS Plus</title>
      <link>/technical/3e470a/</link>
      <pubDate>Sun, 22 Apr 2018 17:59:13 +0000</pubDate>
      
      <guid>/technical/3e470a/</guid>
      <description>最近在做一个 Cache 替换算法的 PA. 系统结构课.
给的 Baseline 是 2010 年的一个 championship.
看了看现在用得比较多的通用算法叫 LIRS.
在 LIRS 基础上想方法优化.
瞎搞的东西把单核 miss 率降低得有点 surprising.
还没有更多的 benchmark 测试.
感觉有点意思.</description>
    </item>
    
    <item>
      <title>波的传输实验波形</title>
      <link>/random/d81ca0/</link>
      <pubDate>Sun, 15 Apr 2018 10:30:29 +0000</pubDate>
      
      <guid>/random/d81ca0/</guid>
      <description>断路负载波形
短路负载波形
匹配负载波形
纵波和深孔波形</description>
    </item>
    
    <item>
      <title>人智作业展示, 手把手教写拼音输入法</title>
      <link>/technical/fdd853/</link>
      <pubDate>Sat, 14 Apr 2018 20:59:25 +0000</pubDate>
      
      <guid>/technical/fdd853/</guid>
      <description>这篇讲义都是五笔打的
laekov 2018.04.12
Overview 作业要求 写一个拼音输入法, 一行一行地读拼音, 输出对应的汉语句子
84: 两小时就能写完
给出的数据 GBK编码的拼音-&amp;gt;汉字对应表 新浪新闻一年的文章 评分 基础2字模型 扩展3字模型 四字, 双词, 三词&amp;hellip; 需要写什么东西 拼音 2 汉字的 map 快速查找某个字/词词频的 map 估值函数和 infer 的算法 训练数据处理 最常用的16位编码是utf-8, 但是 Python 默认是 ASCII 的
所以在程序第一行写上
# -*- coding:utf-8 -*- Py 内部的 u&#39;一个字符串&#39; 可以用来表示 unicode 格式的字符串. 但是好像用不到.
创建 pinyin to 汉字的 map 读 GBK 文件的最简单的方法 with open(&amp;#39;somefile.txt&amp;#39;, &amp;#39;r&amp;#39;, encoding = &amp;#39;gbk&amp;#39;) as f: for (lineno, content) in enumerate(f): dealWithALine(content) content 的格式 wo 窝 我 握 渥 (五笔党词穷了) python 自带分割 py2ch_map = {} def dealWithALine(c): d = c.</description>
    </item>
    
    <item>
      <title>Lagrange插值, 三次样条插值和最小二乘拟合</title>
      <link>/technical/4aba20/</link>
      <pubDate>Wed, 28 Mar 2018 10:20:59 +0000</pubDate>
      
      <guid>/technical/4aba20/</guid>
      <description>看 paper 看烦了来贴点代码玩.
Lagrange插值就是一个多项式乘.
void genLagrangePoly(int n) { double *x = new double[n + 1]; double *y = new double[n + 1]; double *a = new double[n + 1]; double *tmp = new double[n + 1]; for (int i = 0; i &amp;lt;= n; ++ i) { x[i] = -5. + 10. / n * i; y[i] = f(x[i]); a[i] = 0; } for (int i = 0; i &amp;lt;= n; ++ i) { memset(tmp, 0, sizeof(double) * (n + 1)); tmp[0] = 1.</description>
    </item>
    
    <item>
      <title>Strava heatmap and GPS</title>
      <link>/random/3dcb7f/</link>
      <pubDate>Tue, 30 Jan 2018 15:13:01 +0000</pubDate>
      
      <guid>/random/3dcb7f/</guid>
      <description>发现 strava 出了个 sport heatmap 的功能
于是去看了看
发现奥园有如下神奇现象
呵呵一笑
不说话</description>
    </item>
    
    <item>
      <title>CST DS2017 PA3-3</title>
      <link>/oi/6ca708/</link>
      <pubDate>Wed, 06 Dec 2017 11:19:22 +0000</pubDate>
      
      <guid>/oi/6ca708/</guid>
      <description>PA3-3
题意
一堆字符串判循环相等
做法
最小表示法模板题
也可以直接 hash
不过最小表示了也得 hash.
PA &amp;lt;= 常数优化实习.
可能会在这里贴代码.</description>
    </item>
    
    <item>
      <title>Encode</title>
      <link>/post/a338f5/</link>
      <pubDate>Mon, 27 Nov 2017 17:46:12 +0000</pubDate>
      
      <guid>/post/a338f5/</guid>
      <description> Text Key Encode base64 Ceasar (needs key to be a number) Vigenere (needs key to be a string) MD5 SHA1 </description>
    </item>
    
    <item>
      <title>Logs on setting up Jupyter</title>
      <link>/technical/7422c7/</link>
      <pubDate>Tue, 14 Nov 2017 13:06:54 +0000</pubDate>
      
      <guid>/technical/7422c7/</guid>
      <description>最近在尝试搭 python 的数据分析的环境. 总结一下遇到的一些坑.
用的是 14.04 这个有点老的 ubuntu.
nginx + jupyter jupyter 这个玩意的 web 写得不是很优美. 所以需要转发的地方蛮麻烦的.
本来想直接在 uri 里搞一下. 然后发现过于难受就放弃了, 重新配置了一个域名转发.
nginx 的 server 配置里需要加这么一段.
server { location ~* /(api/kernels/[^/]+/(channels|iopub|shell|stdin)|terminals/websocket)/? { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # WebSocket support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_pass http://127.0.0.1:8888; } } 其中有个Upgrade是这么定义的.
http { map $http_upgrade $connection_upgrade { default upgrade; &amp;#39;&amp;#39; close; } sendfile on; } google 了几个配置文件才弄出这么一个能用的.</description>
    </item>
    
    <item>
      <title>Two key MST</title>
      <link>/post/e61433/</link>
      <pubDate>Fri, 06 Oct 2017 18:55:41 +0000</pubDate>
      
      <guid>/post/e61433/</guid>
      <description>laekov naiiiiiiiiive
问题 一个无向图 (G), 每条边 (e) 有两个边权 (a_e, b_e).
求一个生成树 (T) 使得 ( (\sum_{e \in T} a_e) * ( \sum_{e \in T} b_e) ) 最小.
多项式算法就是胜利w.
原题 搜 bzoj2395.
这网站里搜可以找到代码.
一个未成形的算法 正确性和时间复杂度都待证 qwq.
感觉是对的. 但是严格证明 qaq. 已经脱离理论计算机科学界太久了.
假设我们有一个生成树的序列 ( Q ) 和一个生成树池 ( P ).
算法如下
对 ( a ) 这一个权值跑出一个最小生成树 ( T_0 ). 把 ( T_0 ) 作为 ( Q ) 里的第一个元素. 取出 ( Q ) 里的最后一棵生成树 ( T ).</description>
    </item>
    
    <item>
      <title>CST DS2017 PA1</title>
      <link>/oi/440904/</link>
      <pubDate>Tue, 19 Sep 2017 19:59:11 +0000</pubDate>
      
      <guid>/oi/440904/</guid>
      <description>1 使用数论快速傅立叶变换进行多项式乘法.
要压三位才能过.
2 先把两维坐标分别快速排序
然后每个问题二分
然后建立两个向量, 看它们的夹角是劣的还是优的, 从而判断这个点在线段和坐标轴围成的三角形的内外
3 维护一个栈
如果右边所有数里的最大值都没有栈顶大, 就弹栈, 否则一直压栈到右边最大的数, 输出最大的数, 然后重复执行此操作.
4 在普通的队列里再维护一个单调队列, 对价格单调. 每次从单调队列里选择当前持有的股票, 用普通队列维护添加 / 删除.
5 替罪羊树维护序列.
至今 90 的数据有一个点 wa 掉不知为何. 可能满跑速度有点悬.
6 利用双向链表进行操作.
链表并不记录前后, 而是只记录两个端.
每个光标记录左右.
然而还是被卡常了.</description>
    </item>
    
    <item>
      <title>Web 爬虫二三事</title>
      <link>/technical/e522cb/</link>
      <pubDate>Fri, 15 Sep 2017 16:13:51 +0000</pubDate>
      
      <guid>/technical/e522cb/</guid>
      <description>最近 get 了一个技能叫爬虫. (可能早就 get 了只是没有实践过?)
然而我是用 js 写的. 毕竟自带异步而且瓶颈是延迟.
任务大概是说抓 wiki 的 list of people 上的人的 info.
然后发现可能它是一个不规则的索引结构.
每个二级索引都长得不太一样.
没事我们直接当作它就是二级索引结构.
然后发现有的企业也有 infobox. 这就很无语了?
没事我们判断一下它是不是有 occupation, born 这样的关键字吧.
然后大概就比较能看了? (才怪)
另外在看资料的时候才发现一种把 html plain 化的方式. 直接把所有的标签去了.
之前沉迷剥标签的我突然觉得自己真是蠢哭了.
嗯就是这么愉快.</description>
    </item>
    
    <item>
      <title>docker-compose DHCP and DNS</title>
      <link>/technical/f07783/</link>
      <pubDate>Tue, 08 Aug 2017 21:54:05 +0000</pubDate>
      
      <guid>/technical/f07783/</guid>
      <description>docker-compose 的网络
会自动加一些解析
把服务名和 ip 给绑起来
所以根本不用去搞 static ip
好像被这事坑了一万年了</description>
    </item>
    
    <item>
      <title>World is Strange</title>
      <link>/random/98b42d/</link>
      <pubDate>Thu, 13 Jul 2017 09:39:03 +0000</pubDate>
      
      <guid>/random/98b42d/</guid>
      <description>Life is strange.
World is even more strange.
推这游戏的时候对所谓平行宇宙有了更多的想法.
游戏里每个分枝点你只能选一个, 但是另一个分枝点的剧本都写好了! 也就是说不管你怎么选择, 它都是存在的.
那么世界是不是也是一样的呢? 任何选择都是同步进行的.
或者说平行时间是存在的, 然而存在的形式并不是物质, 而是逻辑.
那么新的问题是, 以逻辑的方式存在算不算存在呢?
Historical Comments Bakser at 2017-07-14T15:05:44 建议了解一下free-will问题，会很有趣XD
laekov at 2017-09-15T15:53:13 留言有问题?</description>
    </item>
    
    <item>
      <title>Rule-based Regular Routing Method</title>
      <link>/technical/4dc587/</link>
      <pubDate>Sun, 11 Jun 2017 20:35:19 +0000</pubDate>
      
      <guid>/technical/4dc587/</guid>
      <description>Upd: 代码来了 https://github.com/laekov/rbrrm
来 mark 一下我的 oop 组队大作业中窝肝的部分.
姚氏大作业果然有趣.
大概问题是这样的.
现在一个 pcb 上面有 (n*n) 的元件矩阵(忽略元件面积). 然后你要布线让每个元件都单独连着一条通往边界的电线, 我们管它叫这个点的 escape 路线. (最边上的就直接算作逃出去了)
然后电线只能横竖沿着格线走. 显然直接走是走不出去的. 所以你要找一个最小的 ( w ), 把原来的每行每列的中间都插上(w)条格线, 然后找一个总长最小 (或者如果你有其它的 feature 的话可以是尽量小) 的方案.
官方的的范围是 ( 80 ), 然后我算出来的 (80) 对应的 (w) 是 (23). 这个范围直接二分建图跑网络流已经非常吃力了. (或者直说要跑几天才跑得出来).
一个比较小的例子如图.
这个问题的标题叫作_rule based regular routing path_, 也就是说有某种直接用规则布线就可以了?
然后窝的第一个想法是神贪心, 然而在和大树讨论了很久之后也没有找到一种能让我们两个觉得靠谱且简洁优美的贪心.
然后窝就在想网络流是否有救. 在和 czr 讨论了一阵以及 czr 帮窝去 ieee 找了几篇 paper (btw, 校内网可以免费直接下 ieee 的论文不能更赞) 后发现了这么一个结论. 对于每个 ( w*w ) 的格子, 它的承载上限 (也就是说穿过这个格子的线的条数) 是 ( w ).</description>
    </item>
    
    <item>
      <title>关于戴森球和黑暗森林假设</title>
      <link>/random/ea4d1d/</link>
      <pubDate>Wed, 24 May 2017 13:04:11 +0000</pubDate>
      
      <guid>/random/ea4d1d/</guid>
      <description>有个科学发现说观测到一个疑似戴森球的东西. 于是寝室里引发了如下讨论.
lr: 泥觉得外星文明存在么.
众: 存在.
lr: 有没有一种低级文明间交流的方式? 比如运气好的虫洞?
可能有.
lr: 高级文明间一定有_三体_里描述的_黑暗森林法则_吗?
黑暗森林法则的原理在于文明之间无法充分交流来取得互相信任. 两方如果都具备 (或者可能具备) 直接摧毁对方的能力. 那么选择 &amp;ldquo;摧毁&amp;rdquo; 和 &amp;ldquo;不摧毁&amp;rdquo; 将是一个类似于纳什均衡的博弈问题.
每个回合, 两者都可以选择摧毁或不摧毁. 如果两方都选择不摧毁, 都欢喜. 如果两方中的任何一方选择摧毁, 那么游戏结束.
根据四年前 lyd 在 wc 上讲的课, 如果游戏在有限轮内结束, 那么两方都会选择在第一轮就摧毁. 如果游戏可以无限继续, 那么两方就会一直选择不摧毁.
而宇宙的寿命相对来说可以认为是无限的. 所以法则错误了么?
原作中有进一步假设: 摧毁所消耗的成本几乎可以忽略不记, 而不摧毁几乎不能带来任何好处. 与对方交流并获取收益的期望可以认为是极低的. 所以直接摧毁依然是最佳决定.
然而这步假设与人类的现状显然不符合.
所以说假设没错, 但是也不一定适用.
Historical Comments Bakser at 2017-07-14T15:13:01 你们就没怀疑过“生存是文明的第一需要”吗// 晓智太强辣!!!!</description>
    </item>
    
    <item>
      <title>bzoj2118.cc</title>
      <link>/code/c6433f/</link>
      <pubDate>Sat, 29 Apr 2017 19:55:40 +0000</pubDate>
      
      <guid>/code/c6433f/</guid>
      <description>#include #include #include using namespace std;
typedef long long qw; typedef pair &amp;lt;qw, int&amp;gt; dpair;
#ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif
const int maxn = 13; const int maxw = 400009;
int n, w[maxn]; qw b0, b1, d[maxw]; dpair hp[maxn * maxw];
void dijkstra() { int th = 1; memset(d, -1, sizeof(d)); hp[0] = dpair(0, 0); while (th) { dpair g = hp[0]; pop_heap(hp, hp + (th &amp;ndash;)); if (d[g.</description>
    </item>
    
    <item>
      <title>20161219</title>
      <link>/diary/7bd6ed/</link>
      <pubDate>Mon, 19 Dec 2016 23:55:26 +0000</pubDate>
      
      <guid>/diary/7bd6ed/</guid>
      <description>好像一天都在做视频, 剪视频, 整理bgm, 被批斗.
晚上去听讲座然后居然睡过去了.
FAST好像很厉害的样子. 但是老师说 &amp;ldquo;我们是做实验科学的, 我们才是少数派&amp;rdquo; 感觉好辛酸. 为什么社会是这个样子呢.
时隔若干个月去刷ingress任务. 被自己军dalao问是哪个学校的. 汗. 然后半路手机被冻僵关机. 无知的我就直接回来了.
想去拆盖发现没有武器. 在蓝绿形势严峻的thu我还是很无力呀.
然后好像我无意中干了什么不好的事情 &amp;gt;_&amp;lt;. 为什么每次试图帮助别人都会发生如此奇怪的事情呢.
还是及时 &amp;ldquo;止损&amp;rdquo; 比较好吧. 不过大家都要坚强呀. 好好刷题才是硬道理呢.</description>
    </item>
    
    <item>
      <title>20161129</title>
      <link>/diary/00e552/</link>
      <pubDate>Tue, 29 Nov 2016 19:17:50 +0000</pubDate>
      
      <guid>/diary/00e552/</guid>
      <description>想起好像很久没有写过什么东西了.
在thu的生活真是充实呢.
tuoj上周末去扛了ccsp. 这周末又要扛清华集训. 这么个满是bug的oj真是药丸. 当初让没有经验的萌新去写后端我也是醉了.
ccsp前一天晚上淦到凌晨四点半, 睡了一个小时起来接着淦. 好像总共四十个小时没睡觉. 不过总算没有被领导发现地扛过去了.
以及每天有人道早安晚安的感觉很幸福.
然后作业做不完了. 快要堕落去抄作业了qaq. 不过总算做完了上周的微积分和离散. 高三被积分虐了, 现在还是被虐. 我怎么就没有长进呢.
不过作业是做不完的qaq.
现在的情况是我十分zz地用dd去备份硬盘. 然后明明只有30g的使用它非要给我写80g. 我怎么可以如此智障. 心疼我的硬盘.
嗯我是不是要在网管的不归路上越走越远了.
然而离散还没写完. 啊啊啊.
Historical Comments lyzy at 2016-11-30T13:49:27 把积分拿给我做吧 顺便说一句 你是不是线代打成离散了……</description>
    </item>
    
    <item>
      <title>NOIP2016 DAY2 简要思路</title>
      <link>/oi/fc5d4b/</link>
      <pubDate>Sun, 20 Nov 2016 14:35:52 +0000</pubDate>
      
      <guid>/oi/fc5d4b/</guid>
      <description>组合数 求n和m都各在一个范围里的组合数里能被k整除的数的个数.
用熟悉的组合数的公式.
\( C_n^m = C_{n-1}^{m-1} + C_{n-1}^m \)
把组合数先处理出来.
对于多组询问, 求出上面那个数组的二维前缀和即可.
蚯蚓 你有n只蚯蚓. 每秒把最长的蚯蚓砍成同比例的两段, 且其它蚯蚓变长. 求m秒中每一秒被砍的蚯蚓和最后所有的蚯蚓.
\( n \leq 10^5, m \leq 7*10^6 \)
目测那个t只是为了输入输出不超时.
正常的暴力是用堆来维护蚯蚓长度.
发现一个性质, 下一次被砍的蚯蚓被砍之后两段肯定会分别短于本次被砍的蚯蚓的两段.
仔细想想没有低于\( O(m) \) 的做法.
所以我们把堆换成若干个队列, 每次只取队首的蚯蚓来比较, 砍, 然后塞回队尾. 保证队列中的元素单调.
这样时间复杂度就变成线性了.
小鸟 平面上有若干只猪. 你可以从原点发射一个抛物线并消灭抛物线上的所有猪. 求最小发射多少次.
\( n \leq 18 \)
我们知道两点确定一条过原点的抛物线. 所以枚举两只猪就能得到所有能消灭至少两只猪的消灭方式. 剩余的猪只能直接消灭.
可以使用状态压缩型动态规划来解决这个问题. 只需要记录下当前已经消灭了哪些猪, 就可以进行转移了.
ps 题目难度还是比去年高. 祝各位好运.
laekov版权所有, 未经允许不得转载. 侵权必究. </description>
    </item>
    
    <item>
      <title>NOIP2016 DAY1 简要思路</title>
      <link>/oi/5402cd/</link>
      <pubDate>Sat, 19 Nov 2016 13:51:22 +0000</pubDate>
      
      <guid>/oi/5402cd/</guid>
      <description>简单看了看NOIP2016的题. 口糊一下自己的想法吧.
玩具 描述好乱. 反正就是一群人围成圈, 若干次左走右走问最后到哪.
加加减减取模就好了.
水水水水过.
跑步 一棵n个点的树, m条路径, 问对于每个点, 经过本点且起点距离本点为本点点权的路径条数.
\( n, m \leq 3*10^5 \)
我感觉这个题有点难呀. 很有可能是我想复杂了.
把每条路径从lca处拆成两段.
考虑对于每个点的询问.
对于起点到lca这段, 询问就是询问子树里lca深度小于等于当前深度的深度刚好为某个值的路径起点个数.
对于lca到终点这段, 询问就是询问子树里lca深度小于等于当前深度的 (长度-深度) 刚好为某个值的路径终点个数.
然后就成了一个比较简明的数据结构问题.
一种思路是平衡树启发式合并, 但是时间可能会炸.
另一种思路是用dfs序式树链剖分, 每条路径会被拆分为不超过lg个dfs序上的子段. 在路径的每个子段的起点和终点处分别打上标记. 然后对dfs序进行一次扫描即可得出答案. 复杂度比较优.
换教室 n节课, v间教室. 每节课有两种教室位置选择, 其中一种是已定的. 你有m次机会申请换掉其中一节课的教室位置, 每个请求有独立的p的概率成功. 教室在一张图上, 求最小总奔波路期望.
\( n, m \leq 10^3, v \leq 3*10^2 \)
个人认为这题比上一题水.
先用floyd处理出任意两间教室间的最短路.
然后用dp.
\( f_{i,j,k} \) 表示前i间教室, 用了j次交换机会, k表示上一次有没有换. 存答案.
转移就是一个概率的算式, 较为简单. 略.
ps 八年来第一次没有在赛场上考noip. 今年题目描述好长好长好长.</description>
    </item>
    
    <item>
      <title>20161113 ICPC Qingdao</title>
      <link>/diary/3ed1b2/</link>
      <pubDate>Mon, 14 Nov 2016 10:22:27 +0000</pubDate>
      
      <guid>/diary/3ed1b2/</guid>
      <description>补mark.
去青岛欢度周末然而没吃到任何海鲜差评.
想带点纪念品回来然而一直没机会. 最后只有在高铁站里乱逛感觉东西不行于是啥都没买qwq.
所以说好的acm旅游呢.
头天试机的时候感觉自己状态好差, 仔细分析发现是头天晚上在火车上没洗澡所致.
而且现在头发的长度已经有点不能忍了啊. 又开始纠结要不要去剪头发了.
试机晚上和zhx去打台球. zhx一直在跳球真是有毒qaq. 然而我的台球水平还是竦么菜.
睡前看板发现这都是些smg啊qaq. 为什么你们的板子大括号要换行啊qaq. 果然以后还是得自己备板.
考试日起来感觉满血满状态复活.
打vimrc的时候手僵.
听说有些区的pc方在开场的时候挂了半小时. 还好我们运气不错, 只有榜挂了.
上来zhx先切掉了a.
然后觉得c可以推一推然后发现这个微分方程我还没学啊喂.
于是我就去写b的魔方了. 魔方这玩意真是有毒好么.
然后发现zhx和mhy还在推c还是f来着. 然后我发现g是个裸裸的费用流于是去写. 好久不写这玩意都手生了. 然后强行看错题意乘二. 第一次是直接把概率加起来了. 第二次是把有向边看成了无向边还yy了一个蛮麻烦的建图方法.
然后zhx终于把c给淦出来了. 结果方程凑一下就出来了, 式子炒鸡简单.
然后我和mhy都想到d题只算轮数较少的情况就行了. 然后zhx就写挂了过不到样例.
于是我就去开k的kd-tree做法.
过了一会zhx发现他sb了, 改了一下就过了还喊了一句 &amp;ldquo;woc&amp;rdquo;, 技惊四座.
然后我就把kd-tree给debug了一下也过了.
然后就发现没题可做了. 我把m转化成平面上放点, 区间改点区间查询. 想用二维线段树感觉标记不好维护. zhx写一半弃疗了.
然后我们看了一下h插头懒得写, f大模拟懒得写, i式子太复杂不知道是啥鬼, l想了半天没有思路.
zhx和我又想了想可以用象限四分树. zhx写了半天. 然后我灵机一动为什么不直接用kd-tree艹过去呢. 然后半粘半写的搞了一份.
zhx和mhy则开始想j. 然后zhx搞了一个乱七八糟的dfs.
然后我的m开始tle, zhx的j开始wa.
这时候已经封榜了. 我对着我打印的代码找bug, zhx和mhy用gdb debug.
然后我发现我的m写得太匆忙好多细节都没想清楚. 最后写了个data generator拍了一下, 发现因为忘剪标记所以死循环了. 然后就wa了. 然后再改个brute force出来拍了一下发现还是标记没打对. 然后最后终于在还有9分钟的时候a掉了. 后来发现还是first blood.</description>
    </item>
    
    <item>
      <title>20161103</title>
      <link>/diary/ba67d7/</link>
      <pubDate>Thu, 03 Nov 2016 18:11:37 +0000</pubDate>
      
      <guid>/diary/ba67d7/</guid>
      <description>qaq. 我有说过10天要更新一次么.
时间过得真是快qaq. 就要半期考试了qaq.
沉浸在微积分和线代的恐怖中.
感觉acm也药丸.
练了场cf, 被队列卡成poi.
神tm补考.
gg.
Historical Comments lyzy at 2016-11-04T19:41:42 hh</description>
    </item>
    
    <item>
      <title>PD大作业</title>
      <link>/technical/bd3e8b/</link>
      <pubDate>Sun, 23 Oct 2016 11:05:13 +0000</pubDate>
      
      <guid>/technical/bd3e8b/</guid>
      <description>据说本学期程设的大作业是写个魔方.
看到别人都开动了, laekov就有点方.
所以laekov也开动了. 为了表现laekov很弱就随手记录一下好了.
10.21 晚上9点左右开始写魔方类. 支持三轴整体转动和四种八向扭动. 其实是用两轴转动和一种扭动组合出来的. 然后发现写得不太对. debug到12点搞定.
10.22 早上有运动会. 九点左右开始写层洗ai. 中午随便吃了点然后接着写. 全程没make. 大概一点左右写完开始debug. 两点惊闻有项目. 直到晚上六点半去听心理讲座接着debug. 晚上回寝室接着debug. 很多公式和判定都有小小的问题. 不过幸好函数都分开写了, 调试还算方便. 晚上九点左右能跑过随机了. core部分基本完结撒花. 顺手完善了一下document. 准备开始看qt.
10.23 懒死了不想看qt. 晚上决定图形还是就用h5写吧.
Historical Comments lyzy at 2016-10-26T20:22:21 膜Qt大神 至今不会release
lyzy at 2016-10-26T20:27:43 我还是没有名字 I still have no name Todavia no tengo un nombre.
lyzy at 2016-10-26T20:28:57 怎么办 What to do ¿Cómo？
lyzy at 2016-10-26T20:29:21 太年轻 too young muy joven</description>
    </item>
    
    <item>
      <title>20161020</title>
      <link>/diary/d0ec33/</link>
      <pubDate>Thu, 20 Oct 2016 22:43:58 +0000</pubDate>
      
      <guid>/diary/d0ec33/</guid>
      <description>唔, 最近剁了两次手.
第一次买了个超级廉价的windows平板然后发现连跑跑卡丁车都玩不了. 不过至少可以上课的时候看pdf以及听文素的时候写写程设作业. 这里就要吐槽为什么这个板子的各种符号都被压缩到fn+主键区了qaq. 不过总之还是不错的. win10有了ubuntu之后终于有点能用了.
然后又去剁了一架廉价死飞, 配了个很sao气的颜色. 现在很担心明天早上还能不能见到我的车.
中午很激动地装了车下去骑. 然而我真的不具有绑手胶的技术啊qaq. 虽然我绑网球拍很熟练.
跑起来呼呼生风很爽啊. 然而手机架还没到货也不知道哪里可以有足够的空地给我测速. 目测30-40码还是可以的.
不过心里很虚啊. 自己作死不装刹车. 然后刹车的时候很痛苦啊. 这个杠杆加速的时候是优势, 减速的时候就很不开心了.
总之还是要练一练技术的. 现在这样停车都停不下来还是很惨痛的.
所以我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20161010</title>
      <link>/diary/8982c3/</link>
      <pubDate>Mon, 10 Oct 2016 23:04:31 +0000</pubDate>
      
      <guid>/diary/8982c3/</guid>
      <description>好久没有写过东西了. 军训完了之后突然就好忙好忙呢.
试图干些惊天地泣鬼神的事情不过失败了.
试图认真学习然后失败了.
试图过一种悠闲的生活然后失败了.
试图征服人生然后失败了.
接了不少锅, 感觉生活很充实.
都没有什么可以虚度的时间.
依然很想吐槽.
很纠结要不要去买个好玩的自行车.
很纠结要不要买hhkb.
很纠结要不要买个显示器.
很纠结要不要买个平板.
很纠结要不要买个主机.
很纠结不要要买个女朋友.
然而我穷死了什么都买不起&amp;gt;_&amp;lt;
还是乖乖地沉迷学习和背锅吧.
Historical Comments ArtemisLiu at 2016-10-11T22:49:55 你加了多少社团啊
ArtemisLiu at 2016-10-11T22:52:05 你加了多少社团啊</description>
    </item>
    
    <item>
      <title>pineapple.vim</title>
      <link>/code/pineapple/</link>
      <pubDate>Wed, 28 Sep 2016 15:29:24 +0000</pubDate>
      
      <guid>/code/pineapple/</guid>
      <description>&amp;quot; local syntax file - set colors on a per-machine basis: &amp;quot; vim: tw=0 ts=4 sw=4 &amp;quot; Vim color file &amp;quot; Maintainer:	laekov laekov@163.com &amp;quot; Last Change:	2015 Feb &amp;quot; hi clear set background=dark syntax reset let g:colors_name=&amp;lsquo;pineapple&amp;rsquo; if has(&amp;lsquo;gui&amp;rsquo;) hi Normal guibg=#000000 guifg=white hi SpecialKey term=bold ctermfg=4 guifg=Blue hi Directory term=bold ctermfg=4 guifg=Blue hi ErrorMsg term=standout cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red hi IncSearch term=reverse cterm=reverse gui=reverse hi Search term=reverse guibg=Blue guifg=White hi MoreMsg term=bold ctermfg=2 gui=bold guifg=White hi ModeMsg term=bold cterm=bold gui=bold hi LineNr term=underline ctermfg=3 guifg=Pink guibg=#222222 hi Question term=standout ctermfg=2 gui=bold guifg=White hi StatusLine term=bold,reverse cterm=bold,reverse gui=bold guifg=White guibg=Grey35 hi StatusLineNC term=reverse cterm=reverse gui=bold guifg=Grey10 guibg=Gray85 hi VertSplit guibg=Pink guifg=Black hi Title term=bold ctermfg=5 gui=bold guifg=DeepPink3 hi Visual term=reverse cterm=reverse gui=reverse guifg=Grey80 guibg=fg hi VisualNOS term=bold,underline cterm=bold,underline gui=bold,underline hi WarningMsg term=standout ctermfg=1 gui=bold guifg=Red hi WildMenu term=standout ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow hi Folded term=standout ctermfg=4 ctermbg=7 guifg=Black guibg=#e3c1a5 hi FoldColumn term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=Gray80 hi DiffAdd term=bold ctermbg=4 guibg=White hi DiffChange term=bold ctermbg=5 guibg=#edb5cd hi DiffDelete term=bold cterm=bold ctermfg=4 ctermbg=6 gui=bold guifg=LightBlue guibg=#f6e8d0 hi DiffText term=reverse cterm=bold ctermbg=1 gui=bold guibg=#ff8060 hi Cursor guifg=black guibg=white hi lCursor guifg=bg guibg=fg hi CursorLine guibg=#222222 hi CursorLineNr guibg=#222222 guifg=red hi NonText guifg=green guibg=#1a1a1a &amp;quot; Colors for syntax highlighting hi Comment term=bold ctermfg=4 guifg=Cyan hi Constant term=underline ctermfg=1 guifg=Yellow hi Special term=bold ctermfg=5 guifg=#ff9c3a hi Identifier term=underline ctermfg=6 guifg=#9999ff hi Statement term=bold ctermfg=3 gui=bold guifg=#09f93f hi PreProc term=underline ctermfg=5 guifg=#888888 hi Type term=underline ctermfg=2 gui=bold guifg=#598ff9 hi Ignore cterm=bold ctermfg=7 guifg=bg hi Error term=reverse cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red hi Todo term=standout ctermfg=0 ctermbg=3 guifg=Blue guibg=Yellow else hi Normal ctermfg=white ctermbg=0 hi ErrorMsg cterm=standout cterm=bold ctermfg=7 ctermbg=1 hi IncSearch cterm=reverse ctermbg=1 ctermfg=7 hi Search cterm=reverse ctermbg=7 ctermfg=blue hi Visual cterm=reverse if $TERM == &amp;lsquo;xterm-256color&amp;rsquo; &amp;quot;	hi NonText cterm=bold ctermbg=232 ctermfg=2 &amp;quot;	hi Type cterm=bold ctermfg=4 &amp;quot;	hi Special cterm=bold ctermfg=172 hi NonText cterm=bold ctermbg=234 ctermfg=2 hi Type cterm=bold ctermfg=4 hi Special cterm=bold ctermfg=1 else hi NonText cterm=bold ctermbg=8 ctermfg=2 hi Type cterm=bold ctermfg=32 hi Special cterm=bold ctermfg=1 endif hi LineNr cterm=bold ctermfg=5 hi ModeMsg cterm=bold hi StatusLine cterm=bold ctermfg=7 ctermbg=8 hi StatusLineNC ctermfg=7 ctermbg=8 hi VertSplit ctermfg=0 ctermbg=5 hi Folded cterm=standout ctermfg=3 ctermbg=4 hi FoldedColumn cterm=standout ctermfg=3 ctermbg=4 &amp;ldquo;For syntax hilighter hi Comment cterm=bold ctermfg=6 hi Constant ctermfg=yellow hi Indentifier cterm=bold ctermfg=2 hi Statement cterm=bold ctermfg=2 hi PreProc cterm=bold ctermfg=darkgrey hi Ignore ctermfg=7 hi Error term=reverse cterm=bold ctermfg=7 ctermbg=1 hi Todo term=standout ctermbg=6 ctermfg=0 endif</description>
    </item>
    
    <item>
      <title>轮子们</title>
      <link>/technical/38ac37/</link>
      <pubDate>Mon, 19 Sep 2016 12:32:51 +0000</pubDate>
      
      <guid>/technical/38ac37/</guid>
      <description>一些可以用的轮子.
passportjs 用户登陆/管理模块
zmq 消息队列. 处理后台各种不能异步的请求.
openjudge-sandbox oj评测沙箱(还没搞懂)
react 前端框架
angularjs 更重量更强大的前端框架
bootstrap css板子
nodegit 顾名思义
grunt 开发自动化
threejs h5的3d绘图
phoria 另一个h5的3d绘图 // 似乎star比上一个多, 然而没有文档, 玩ball喽
// 开始考虑要不要重写srk了然而没有时间&amp;gt;_&amp;lt;</description>
    </item>
    
    <item>
      <title>20160910</title>
      <link>/diary/92b8f2/</link>
      <pubDate>Sat, 10 Sep 2016 17:02:21 +0000</pubDate>
      
      <guid>/diary/92b8f2/</guid>
      <description>军训完了.
看别人送教官的时候哭了.
唔.
今天acm大连网赛.
零输出.
唉.
我还是太年轻了.
难测者, 人心.
还有收到了迷之包裹的mhy好强.</description>
    </item>
    
    <item>
      <title>20160821</title>
      <link>/diary/cbf84a/</link>
      <pubDate>Sun, 21 Aug 2016 08:12:25 +0000</pubDate>
      
      <guid>/diary/cbf84a/</guid>
      <description>早。
人生多艰。
还是老老实实地在跪系跪着吧。
只是突然觊觎别人的机会和资源，怎么可能被接受。
本来只是想着考着玩玩的。怎么就认真了呢？
所以我啊，还是太naive了。
hello, real world.
Historical Comments ArtemisLiu at 2016-08-24T13:36:07 qwq</description>
    </item>
    
    <item>
      <title>20160820</title>
      <link>/diary/a8c335/</link>
      <pubDate>Sat, 20 Aug 2016 08:59:11 +0000</pubDate>
      
      <guid>/diary/a8c335/</guid>
      <description>感觉很久不更新要被婊了。
辣鸡laekov来到了帝都的thu。
然后就不准在寝室里用电脑了。laekov决定当个乖宝宝所以把键盘接手机上玩了。恼火ing。
laekov发现自己终于有了床po好开心啊。
laekov去考茶园不小心进了面试然后被d了一顿好郁闷啊。然而明天才出结果。
你清又红又专可为啥总是要我从寝室走路出去啊。我明明有自行车嘛qaq
听说thu军训好无奈ovo。
所以laekov还是太辣鸡啦。</description>
    </item>
    
    <item>
      <title>人类为什么要自相残杀</title>
      <link>/random/cb9485/</link>
      <pubDate>Mon, 15 Aug 2016 13:43:10 +0000</pubDate>
      
      <guid>/random/cb9485/</guid>
      <description>这是一篇乱七八糟的瓦尔登湖读后感. 可能要花很多天才能写完&amp;gt;_&amp;lt;
一湖一林一屋一人, 就是一个世界.
人们常常抱怨这个世界过于喧嚣, 却没有发现世界的喧嚣源于自己的索求. 如梭罗自己所实验的, 如果你不需要整日辛勤劳作开荒种田, 你就不需要厚实的衣服鞋子. 如果你不需要为了咖啡和茶而赚钱, 那你就不需要用它们来支撑你的体力. 正所谓世上本无事, 庸人自扰之. 虽然东西不同, 但是梭罗的思想和中国古代的道家不谋而和. 人类的麻烦都是自找的.
我们明明可以选择一种悠闲而优雅的生活方式, 浪迹山林, 仰观蓝天, 坐看清湖.
然而啊, 存在即合理. 为什么人类是这样而不是那样啊? 明明全人类都可以退隐山林, 回归原始人. 即环保, 又悠闲. 然而, 发展是人类的必然趋势.所以我们必然也必需社会化, 工业化, 以及未来的信息化, 宇宙化. 如果不求上进, 和那些动物一样只会吃吃吃睡睡睡, 那么人凭什么能有今天如此悠闲的生活? 上进是人类的必需品. 环保, 回归, 可以是人类的幻想, 也有如作者一般的人会追求它, 赞扬它, 但是他们永远只能是少数.
另一方面讲, 人们从梭罗研究环保的先驱. 然而这样的环保是真正的环保吗? 未必. 真正的环保应该是尽量减少资源的浪费. 即最大化资源利用效率. 可是我们的梭罗先生呢? 伐木为柴, 折枝为箭. 他才是真正挥霍资源的人. 他所谓的情怀, 不过是文人式的矫情的无病呻吟罢了.
以上.
20160829
Historical Comments lyzy at 2016-10-26T20:21:16 膜laekov
lyzy at 2016-10-26T20:21:27 hahahaha 成功了</description>
    </item>
    
    <item>
      <title>20160810</title>
      <link>/diary/21c66f/</link>
      <pubDate>Wed, 10 Aug 2016 22:28:52 +0000</pubDate>
      
      <guid>/diary/21c66f/</guid>
      <description>laekov成为了司机.
上午去考科三然后拿证. 整个节奏就是办个事等半个小时干三分钟正事.
虽然车上四个人只过了两个但是我过了.
然后就开自家车到浦江去了.
然后又去跑三环.
自动档开起来就是倍爽.
在某条路上飚到了100码.
看到街上练科三的教练车就一脚老油超过去. 叫你们前两天超我, 口哼.
其实很多人都已经拿到驾照了呢.
好想开车去ingress啊.
亦可赛艇.</description>
    </item>
    
    <item>
      <title>CF703E Mishka and Divisors</title>
      <link>/oi/7a9bc3/</link>
      <pubDate>Sun, 07 Aug 2016 09:46:02 +0000</pubDate>
      
      <guid>/oi/7a9bc3/</guid>
      <description>题意:
给你n个数和一个k. 求这n个数的一个最小子集, 使得元素乘积为k的倍数, 且元素之和最小.
要输出方案.
\( n \leq 10^3, k \leq 10^{12} \)
结局:
死在输出方案上了.
思路:
首先发现k的质因数不会很多, 最多有14个.
然后k的因数也不会很多.
所以就dp一下. \(f_i\)表示当前积与k的gcd为i的时候的元素个数.
然后就像个背包一样嘛. 输出方案? 记录从哪里转移来的不就好了.
然后.
考虑这个例子.
3 9 3 24 21 你会先拿24从3更新到9.
然后21就会把3和9的转移都更新.
然后就炸了.
因为3应该是从原来的状态更新的. 但是现在被覆盖了.
然后发现状态是棵树. 可以把状态可持久化记下来.
更新一个状态的时候, 不是直接覆盖, 而是新建一个状态来保证从原来的状态转移出去的情况不会出错.
这样空间复杂度应该和转移次数有关?
然后怎么就糊过去了.
另一个细节是k=1是答案不能是0. woc.
依然感觉很鬼蓄.
代码</description>
    </item>
    
    <item>
      <title>cf703e.cc</title>
      <link>/code/c868c5/</link>
      <pubDate>Sun, 07 Aug 2016 09:36:53 +0000</pubDate>
      
      <guid>/code/c868c5/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #define _l (long long int) #ifdef WIN32
define lld &amp;ldquo;%I64d&amp;rdquo; #else
define lld &amp;ldquo;%lld&amp;rdquo; #endif
const int maxs = (1 &amp;laquo; 22) + 1; const int maxf = 23; const int inf = 0x3f3f3f3f; const int maxn = 1003;
typedef pair &amp;lt;dint, int&amp;gt; item;
item a[maxn]; dint k, kf[maxf], fs[maxs]; int f[maxs], ff[maxs], cs[maxs], fv[maxs], n, m, t, cf[maxf], v[maxf], vn[maxf], c;</description>
    </item>
    
    <item>
      <title>20160805</title>
      <link>/diary/ac19c2/</link>
      <pubDate>Fri, 05 Aug 2016 01:38:50 +0000</pubDate>
      
      <guid>/diary/ac19c2/</guid>
      <description>大半夜的.
要是我写完开始system test了我就等它完.
上午在银行排了很久的队. 然后就给夏令营的小朋友们出了个造排队机的奇怪的题目. 听说讨论得很诡异.
下午打了奇奇怪怪的多校. 只输出了一个题然后就开始爆炸qaq.
晚上还是耐不住去打了cf.
打开aoao那个号想把friends copy过来. 才发现已经没有什么friends了.
就像acm组队一样. 总像是在等什么, 然而什么都没有.
然而cf这种游戏已经不适合我这种看错题还交了好多好多遍的老年人了.
数据结构题也是想了好久, 比赛最后才生死时速. 没拍过感觉药丸.
明天早上还要去学科目三. 真是药丸.
所以我真是一只辣鸡呢.</description>
    </item>
    
    <item>
      <title>20160802</title>
      <link>/diary/282c65/</link>
      <pubDate>Tue, 02 Aug 2016 23:01:25 +0000</pubDate>
      
      <guid>/diary/282c65/</guid>
      <description>玄妙的一天.
第一次正经参加MU.
上午睡啊睡. 然后雨好大还忘了家里有吃的, 跑出去湿身淋得焦湿.
于是就错过了抢水题fb的机会&amp;gt;_&amp;lt;.
yjq: 03比较好写啊.
hja: 我来.
几分钟后.
hja: 卧槽wa了. 卧槽看错题了.
yjq: 辣鸡hja滚一边去.
hja: TAT我去搞辣鸡dp题1011.
几分钟后.
hja: 过掉了1011. 这个1012看上去很清真啊. 不就是容斥一下嘛. 刚才浪费的树状数组代码也可以用上辣.
几分钟后.
hja: 过掉了1012. 这个1005似乎是个回文串的题? 作为讲字符串的老师尊严何在? 撸!
十几分钟后.
hja: 过掉了1005. interesting. 然而被抢走了fb. 这个1002的数据范围怎么那么小? 很像是暴力嘛.
mhy: 资瓷啊. 搞暴力啊.
十几分钟后.
hja: 果然暴力走next树就艹掉了这题.
hja: 这个1008很清真啊. 也就是一个dfs序+主席树+dfs乱搞? 你们有谁要接这个锅啊?
yjq: 艹了半天1010这题有毒.
lxl: 别用主席树. 我这有高效平衡树.
十几分钟后.
hja: 还没人接锅? 那我自己背好了.
几十分钟后.
hja: 多年不写ds手生了. wtf? 居然tle了?
lxl: 主席树肯定会火暴. 你可以试试写对顶堆合并? 我这有高效平衡树你要不要.
hja: 我去写个对顶左偏树算了.
几十分钟后.
hja: 差点忘了怎么写了. WTF!</description>
    </item>
    
    <item>
      <title>20160730</title>
      <link>/diary/6a6cb2/</link>
      <pubDate>Sat, 30 Jul 2016 22:14:34 +0000</pubDate>
      
      <guid>/diary/6a6cb2/</guid>
      <description>和瑞触一起在广州参加了中国历史上第二场Ingress MD.
早上队友懒床ovo. 在酒店吃早餐的时候看到了UFC.
然后就坐地铁先去广州tower. 出站发现满街都是agents. 据说广州塔有地方见鬼了不过我们机智地飘过去了. 幸好没有到要用铁锅的地步ovo.
然后一路向北一直到天河体育场. 图书馆和体育场两个mission走得都有点远差评.
然后去做西边. 博物馆的po过马路好烦. 公园里爬山又爬了半天. 一律差评.
然后吃了个麦当劳. 喝了杯冰汽水.
然后去签退点北边补最后几个mission.
然后去签退. 好热闹. 然而人都不熟啊. 然后也没有收到几张卡. sad. 我还是太naive了.
往回的路上就下雨了.
本来打算去补3个mission的. 然而走出珠江新城地铁站的时候就发现风力堪比台风啊. 伞直接被吹翻. 玩不动啊只好折回来. 鞋子湿完了sad.
在回酒店的路上开始痉挛. madan.
晚上出去吃饭的时候发现自己养成了边走路边瞟路人手机屏幕的习惯.
所以我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20160720</title>
      <link>/diary/e9614e/</link>
      <pubDate>Wed, 20 Jul 2016 21:42:32 +0000</pubDate>
      
      <guid>/diary/e9614e/</guid>
      <description>早上起了个大早去机场. 然后拿到了飞机上的最后一个座位ovo.
于是就在大雨中离开了帝都, 来到了晴朗的贵阳.
原来的计划是去贵阳北站坐高铁去铜仁南再去铜仁.
然而下飞机发现只有晚上8点的高铁了. 很生气.
然后决定在机场咸鱼半晚上, 在火车站咸鱼半晚上.
然后在机场吃了个贵到坑的饭.
然后走之前抖了个机灵, 看了一下铜仁南的地图. 坐车去县城要一个半小时? Excuse me?
sb的我把地图看错了. 于是决定在贵阳市咸鱼一晚上.
然后就去开了个火车站附近的酒店. 坐出租坐了老半天, 花掉了五十大洋.
然后咸鱼下来开始研究明天怎么玩. 发现可以坐飞机去铜仁凤凰机场啊woc.
早知道就住机场附近了.
然而市区也挺好玩的.
酒店居然是智能(电子化)的. 花了一刻钟才搞明白如何关上窗帘QAQ.
晚上出去浪了一会. 然而一个人在外面浪还是不方便ovo. 尤其是背了一个巨大的包的时候.
早知道就不背包出去了.
这个包没有发挥任何用处.
街上似乎有不少穿着校服的妹子ovo. 不是放暑假了么.
奇奇怪怪的.
所以我还是太naive啦.</description>
    </item>
    
    <item>
      <title>20160719</title>
      <link>/diary/3563ba/</link>
      <pubDate>Tue, 19 Jul 2016 19:09:17 +0000</pubDate>
      
      <guid>/diary/3563ba/</guid>
      <description>终于把课都讲完了happy.
今天在高端班讲字符串, 然而依然花了一个上午才讲完kmp. 感觉讲字符串让同学们很难理解啊qaq.
以及讲课会让嗓子冒烟.
一定是我的讲课水平太弱了.
昨天晚上都要睡觉了才接到任务出今天晚上的考试题. 然后熬到快十二点. 今天早上起来整个人感觉要废了.
于是难度完全没有把握好. 出的题乱七八糟七八糟八糟糟.
还是拿昨天的最后一题防ak.
感觉我会炸.
然而现在看成绩表似乎没有爆炸.
似乎到处都在下暴雨. 连北京都看海了. sad.
感觉这回出去玩要gg.
然后今天收到录取通知了(不是录取通知书).
所以我真的是太弱了.</description>
    </item>
    
    <item>
      <title>20160716</title>
      <link>/diary/5f5007/</link>
      <pubDate>Sat, 16 Jul 2016 23:50:46 +0000</pubDate>
      
      <guid>/diary/5f5007/</guid>
      <description>来到了帝都. happy.
中午坐787过来的. 新飞机就是高端. 窗户好大啊ovo 然后还是高档的电子变色窗户. 高空要拉遮阳板的时候它是电控变成深色的orz.
第一次正经坐first class. 比较爽. 然后随手发了个空间假装我是土豪.
北京好堵好堵好堵. 遇到了来自成都金堂的出租车师傅&amp;gt;_&amp;lt;.
zhx居然留了个洗剪吹的发型. 我被惊呆了.
这边学员人好多啊ovo.
mhy好神啊.
所以我还是太弱了.
Historical Comments ArtemisLiu at 2016-07-18T01:09:28 哈哈哈哈我看到钟神也惊呆了，变帅了有木有！</description>
    </item>
    
    <item>
      <title>20160713</title>
      <link>/diary/1bb2d4/</link>
      <pubDate>Wed, 13 Jul 2016 21:24:16 +0000</pubDate>
      
      <guid>/diary/1bb2d4/</guid>
      <description>最近两天在cdqz讲课.
感觉我还是弱啊.
第一天的时候准备课件没想清楚, 把讲算法的部分当成题了. 然后讲得飞快. 我真是没救了.
第二天出题把数据出错了qaq. 然后还出了个别人都做过的原题. 只好换了个高数题来考. 我真是没救了*2.
然后还要研究如何用电脑录像ovo.
然后开心地发现七中多了一个年轻的ingresser. 然而是res. 炸res最好玩啦.
惊讶地发现我的暑假快要只剩不到一个月了. 然而我还没被任何大学录取啊摔.
嗯, 我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20160709</title>
      <link>/diary/d6f4ef/</link>
      <pubDate>Sat, 09 Jul 2016 22:31:01 +0000</pubDate>
      
      <guid>/diary/d6f4ef/</guid>
      <description>唔白天去扎针了. (明明叫造菊花嘛)
然而根本不懂规矩啊尴尬.jpg. 以及选了po少还难走的棕北. 真是自作死不可活. 下午还喝了瓶冻怡宝导致想吐qaq.
中午去找mhy蹭饭. 然后就有了迷之饭局. 讲课什么的, 感觉好厉害呢. 然而我真能讲得好吗? 心中充满了怀疑qaq.
晚上坐在奶奶家用手机流量去群上 &amp;ldquo;答疑&amp;rdquo;. 同学们都好强啊. 感觉我并不需要讲什么啊. 锋芒毕露的年轻人. 莫名想起了自己那时的样子呢. 年轻真好.
然而为什么会有这么多人听课啊. 我现在开始觉得工资太少了. sad.
所以我依然太年轻了.
Historical Comments ArtemisLiu at 2016-07-10T23:47:53 何姥爷拿到工资请饭ovo</description>
    </item>
    
    <item>
      <title>20160707</title>
      <link>/diary/8b3b8f/</link>
      <pubDate>Thu, 07 Jul 2016 16:50:41 +0000</pubDate>
      
      <guid>/diary/8b3b8f/</guid>
      <description>考过了科目二, 浑身舒畅.
考试车上坡的时候比平时那个cng车动力充足得多. Duang地一下就爬上坡了.
幸好我跑进去得飞快占到了前面的位置进场就考. 过了一会车管所的破网络就爆炸了. 同去考科目一的小伙伴都被网给水掉了. 什么破玩意.
昨天还在雨里模拟考试2333.
然而最近几天身上全是湿的. 这天气太见鬼了.
突然变成咸鱼了, 虽然没几天ovo.
所以我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20160702</title>
      <link>/diary/72000b/</link>
      <pubDate>Sat, 02 Jul 2016 10:04:18 +0000</pubDate>
      
      <guid>/diary/72000b/</guid>
      <description>被催更了. 说好的心情更呢.
最近真是没啥好心情ovo.
凭什么科目一和科目二要隔10天啊? 交管部门脑子进屎了吧. 还有科目三要30天又是什么鬼. 开车去绵阳的计划泡汤了. very sad.
还得隔几天去场地跑一天. 要热死啊. 不准踩油门的日子还有多久啊sad.
不过昨天看到了付和付的妹妹. 说好的青梅竹马怎么就变妹妹了. 搞不懂.
一代车神付, 练车第二天就开始倒库了. 佩服.
总算是定下来下周四考科二了. 据说考前集训特别恐怖.
然后因为背了在七中和北京讲课的锅, 所以要备课. 刷了那么多年的题然而到想找道题来用的时候就发现啥都想不起来了. 要死啊.
完全没讲过课呢. 听mhy众说听课的人水平低所以要讲得慢. 然而一上午才讲完那么几张slides是不是太过分了? 然后我又总是担心准备的东西太少, 讲完了就没得讲了. 效率爆炸.
然后出题也完全把握不到难度嘛. 有的题感觉出得有点bt有的题感觉水到暴. 真是没救了.
反正就是在太难和太水之间纠结ing.
就酱. 心累.
所以我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20160622</title>
      <link>/diary/851f34/</link>
      <pubDate>Wed, 22 Jun 2016 23:21:34 +0000</pubDate>
      
      <guid>/diary/851f34/</guid>
      <description>高考出成绩.
感冒了. 颓废了一整天.
然后就上一本线了.
不考虑语文的话和我估分完全一样.
然而语文居然比估分高了4分.
数学和中考一个分.
英语是高三一年唯一一次上140.
物理估高了. 最后一题最后一问看来是被扣完了. madannnnn.
化学差不多. 错一个选择题太划不来了.
生物差不多.
今年题好简单啊. 排名太低了. 丢脸.
唉. 看到好多人. 大家. 好运.
所以我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20160620</title>
      <link>/diary/2a78a2/</link>
      <pubDate>Mon, 20 Jun 2016 21:27:54 +0000</pubDate>
      
      <guid>/diary/2a78a2/</guid>
      <description>maya居然会被催更.
昨天去outlets的时候发现居然有po. 然而都是绿的&amp;gt;_&amp;lt;. 现在更喜欢蓝po.
今天去毛家湾考科目一居然又有po, 然而不是绿的就是灰的. Unhappy.
话说lv8了感觉就是不一样. 炮姐你才lv5太弱了. (大雾)
然后就随随便便地考过了科一.
还要等10多天啊. Sad.
然后下午倒个车下车的时候就发生了惨剧. 手机飞出来砸到了石头上, 然后屏幕就碎了sad.
明天要过一天没有手机的生活了?
晚上补完了_电磁炮_第一季. 炮姐好帅!
所以我还是太年轻了啊.</description>
    </item>
    
    <item>
      <title>20160617</title>
      <link>/diary/328630/</link>
      <pubDate>Fri, 17 Jun 2016 22:24:39 +0000</pubDate>
      
      <guid>/diary/328630/</guid>
      <description>连续6天去了驾校. 明天不去了.
终于学完了科目二的所有内容. 然而离科目二考试至少还有12天. very sad.
听说mhy准备让老爸教开车? 感觉并不科学. 毕竟考试和实际驾驶有区别诶.
科目二的五个项目的一点心得.
直角弯. 在直道要靠右一点. 打死可以早不能晚. 早了还能修. 最好还是一步到位.
坡道定点和起步. 在直道上要把横向距离先比好. 然后上坡基本可以不踩离合. 停车的时候先踩完离合滑一下再踩刹车(反正速度是连续函数). 这样以免脚乱. 起步的时候松离合要连续且慢. 靠感觉车身震动比较靠谱. 以及一定要打起步灯. 上去之后左打四分之一圈盘子迅回正来关灯. 不要用手去扳, 不然显得好菜&amp;gt;_&amp;lt;. btw如果天气太热没有空调, 可以趁教练不在, 离合踩到底不踩刹车强行冲坡吹风.
s弯. 慢, 靠外侧行进, 基本不需要打死. 最后一个左弯要靠右.
侧方停车. 视野比较好, 直接到位打死打死打死就搞定了. 可以小修.
倒库. 点位什么的并不是很靠谱. 每次座位的高矮角度都会影响. sad. 所以还是要早一点打死然后修. 修的时候要培养一点感觉. 然后今天下午一直在车上倒库差点被烤熟&amp;gt;_&amp;lt;.
下周一考科目一啦. ovoovovoovo.
上午lmy发来了奇怪的apk. 然后机智的我就没有开. 果然是个恶意程序. 想起了我初一的时候做的那个恶意软件. 其实思路都一样. 这种传播途径嘛, 水平和我一样菜. 如果如lmy所说这是一个毕业设计, 那我想重点是发起者想研究人们为什么在受骗的情况下, 还会把这种东西继续散布给其他人. 迷之低骗233333.
晚上似乎吃西瓜吃多了肚子好难受QwQ.
化学笔记的字被吐槽啦. 其实我自己写完笔记之后就再也没有看过, 也没有打算过看它. 真是对不起嘛.
骗钱大会那边还是没有给我回复啊. 突然意识到&amp;quot;清华学生&amp;quot;这个身份还是有点含金量的. 对不起我太弱了.
Historical Comments ArtemisLiu at 2016-06-20T13:18:31 骗钱大会是啥</description>
    </item>
    
    <item>
      <title>20160613</title>
      <link>/diary/9548c2/</link>
      <pubDate>Mon, 13 Jun 2016 19:59:15 +0000</pubDate>
      
      <guid>/diary/9548c2/</guid>
      <description>laekov努力成为老司机第二天.
坡道起步-&amp;gt;熄火-&amp;gt;打火-&amp;gt;熄火-&amp;gt;打火-&amp;gt;熄火. 无限循环中.
其实就是控制离合. 发动机只要稍微吃阻力吃猛一点就要gg. 所以必需一点一点慢慢来.
感觉科目二要gg的样子.
左脚和右脚千万不能同时动否则gg.
一定, 要, 记得, 打, 起, 步, 灯!!!!!!!!!!!!!!!!!!!
还有侧向停车和倒库没学qwq. 老jeta真是太鬼畜了.
趁教练不在偷偷挂2档开到10码爽了一下qwq.
骑自行车去学开车的路上花了几乎一半的时间在, 修, 车. 郁闷.
就酱.
Historical Comments ArtemisLiu at 2016-06-14T12:03:10 能在一个月内拿到驾照么</description>
    </item>
    
    <item>
      <title>20160612</title>
      <link>/diary/f9bcca/</link>
      <pubDate>Sun, 12 Jun 2016 20:27:17 +0000</pubDate>
      
      <guid>/diary/f9bcca/</guid>
      <description>laekov在努力地成为一个老司机.
说人话就是去驾校day1.
早上说好的去体检呢. 然后就233了.
然后就直接开始开啊233.
刚上去有点方. 脚和手没有配合好ovo. 然而教练对我熟练的松手刹打火挂档技术感到吃惊.
原来驾校就是踩着半离合在小路上3码转圈. qwqwqwq.
同车的居然是个大叔, 大叔的女儿今年也是高三毕业ovovovovovovo.
还有一对川大来的cp. 女生高三暑假就成老司机了, 男生还没过科目二. 2333333.
方向什么的. 感觉和游戏差距有点大.
科目一模考还是要背一背啊ovo. 回到了高三的美好时光.
晚上颓死了.
我还是太年轻了.
Historical Comments yeguanghao at 2016-06-12T20:43:42 羡慕你们这些毕业就满了18的人&amp;hellip; 我开始对我的高三生活充满担忧</description>
    </item>
    
    <item>
      <title>20160610</title>
      <link>/diary/07b697/</link>
      <pubDate>Fri, 10 Jun 2016 22:19:50 +0000</pubDate>
      
      <guid>/diary/07b697/</guid>
      <description>今天挺开心ovo.
上午去了太升南路, 搞了个包括铃铛在内全身都很响的二手自行车(怀疑是贼车).
管它呢就上路了. 有自行车跑得就是快啊happy.
去天府广场玩了一圈. 然而警察叔叔会把我从街边赶走. 画个图都不让啊qwq. 所以只好去科技馆停车走过去. 然后炸了几个po. 然而满广场条子都不敢说话. 更不敢说&amp;quot;我要炸了这个po&amp;quot;. 估计这样就直接吃防暴枪枪子了.
然后骑回林荫街. 腿要散架了.
然而上楼才发现钦妹已经跑掉了unhappy.
中午去连了个政正菊花.
估计下午已经被炸了.
有车跑得就是快啊.
然后和mhy约在scu里见. 然而一不小心捏刹车捏劲狠了, 前刹就tm脱了. (这还不是夹式前刹. 不知道是多少年前的车了). 诚惶诚恐地骑了一会终于找到了修车的地方. 修车师傅也是暴力直接拿鎯头砸开接上再砸回去. 要是我的话就肯定是拿钳子夹半天qwq.
然而scu里在修. 到处都是工地差评.
然后转了半天终于找到了mhy.
然而scu拼图真是**的烦啊. 各种需要飘移. 差点就跳荷塘了.
跑到第6个任务的时候悲伤地发现出不了小北门. mdzz绕了半天终于从十二中那边绕过去了.
然后回来发现tm飘雨了? madan.
于是干脆跑去百联看电影得了. scu拼图暑假重新找个时间接着做qwq.
然后去看了x战警. 一如既往地神奇.
然后吃了饭. 没喝酒ovo.
然后又骑车回家.
腿要断了.
晚上似乎还有一堆锅要背(比如写离散剧).
所以我还是太年轻啦.
Historical Comments yeguanghao at 2016-06-10T23:06:14 拼图任务跑断腿是常态2333</description>
    </item>
    
    <item>
      <title>20160608 ncee2016 day2</title>
      <link>/diary/7d76c9/</link>
      <pubDate>Wed, 08 Jun 2016 21:12:55 +0000</pubDate>
      
      <guid>/diary/7d76c9/</guid>
      <description>高考day2.
终.
于.
考.
完.
了.
考英语的最后, 像noi的时候一样, 盯着挂钟看着最后两分钟溜走.
然后就结束了.
早上mhy来送考. 感动.
早上理综只花了2个小时就做完了. 后来下午英语开考前发呆的时候发现物理最后一题做错了.
中午懒得连po都没摸完.
下午英语. 作文是原来四川卷语文的节奏啊. 其它无感.
下来就和家长走了.
路上娘亲给我看数学的答案. 感觉, 做答案的人是zz吧? 晚上又找答案, 结果第9道选择题硬是看到了2种不同的答案, 还和我的都不一样.
晚上回家整理书. 高中三年的卷子和书摞起来比我都高.
然后出去烧掉了过去. 其实这件事已经憋了三年了呢ovo.
发现一个严重的问题叫我不知道玩什么了ovo.
所以我还是太年轻啦.
以后不会再每天写diary了.
Historical Comments yeguanghao at 2016-06-09T00:23:03 为什么没有diary了啊qwq 我以后彻底没有连续剧看了
ArtemisLiu at 2016-06-10T16:01:34 不能停更啊(๑′°︿°๑)</description>
    </item>
    
    <item>
      <title>20160607 ncee2016 day1</title>
      <link>/diary/318b53/</link>
      <pubDate>Tue, 07 Jun 2016 19:27:06 +0000</pubDate>
      
      <guid>/diary/318b53/</guid>
      <description>离高考还有-1天.
诶诶计时器忘return啦233.
其实昨天晚上并没有完全在颓啊. 睡觉之前看了一眼语文默写. 然后今天就考到了.
但是我还是不知道窈窕之诗是上句还是下句还是背错了. 于是写了2遍.
感觉走进考场的时候就像是走了很多遍的程序一样.
不是考生的人似乎多数觉得作文不好写然而我觉得还行啊.
就是写到最后发现批驳反面那一段已经在前面写过了. 于是只好临时改了一个分论点.
现代文做的小说. 然而题都答完了才搞明白主题.
然后就出去了.
开心地巧遇岚妹儿orz. 挨捶的感觉还是三年前的原味.
中午去奇怪的地方吃饭休息. 正好wifi定位在一个po上. 然而手残插了个盾. 然后再插了一个multihack. 于是五分钟起来hack一次233. 最后机智的我通过数key的数量确定了不能再hack了.
下午考数学好想上厕所然而我告诉自己一定是下丘脑的小把戏于是没去.
做得挺顺的. 除了解几最后多算了几遍才算出一个看似正确的答案. 函数题参变分离试了一下发现不行.
今年数学有点简单啊连我都能做完. yzy肯定要不开心了.
然后检查的时候发现做错了算法题ovovovo. 要是没检查真错了我就神作了.
然后就回家辣. 明天考理综&amp;gt;_&amp;lt;.
所以我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20160606 ncee2016 day0</title>
      <link>/diary/9ca3bc/</link>
      <pubDate>Mon, 06 Jun 2016 21:19:55 +0000</pubDate>
      
      <guid>/diary/9ca3bc/</guid>
      <description>离高考还有0天. (100天处心积虑地构造了这句话)
还是按照搞oi的习惯给日子命名吧. 今天是day看考场.
早上在家颓电竞.
中午睡觉的时候感觉好紧张啊ovo. (我总是不在正确的时间紧张)
下午到十二中发现时间还早. 打开手机发现有一堆po. happy. 顺手炸了一把蓝军的cf.
感觉现在更喜欢炸cf. 暴力狂的laekov.
然后进考场的时候才知道不能带手机. 于是把手机交给了一个不认识的阿姨. 以至于整个期间心都在抖. 幸好阿姨认识我妈ovo. 我真是zz.
然而并没有&amp;quot;偶遇&amp;quot;唯一的初中同学. sad. 感觉三年了是不是长变了都要不认识了?
坐在考场里听一个普通话不标准的校领导瞎扯了辣么久ovo. 都是看过和听过好多遍的东西了.
晚上接着颓电竞. 顺手给自己和yzy报了noi的网络同步赛, 感觉自己萌萌哒. 啊喂是不是该复习一下? 似乎是.
唉.
我.
还.
是.
太.
年.
轻.
了.
明天考完就可以找工作了happy.
Historical Comments ArtemisLiu at 2016-06-06T23:05:48 找到工作拿到工资请我吃饭ovo</description>
    </item>
    
    <item>
      <title>20160605</title>
      <link>/diary/46e729/</link>
      <pubDate>Sun, 05 Jun 2016 21:38:25 +0000</pubDate>
      
      <guid>/diary/46e729/</guid>
      <description>离高考还有1天.
写下这行字的时候心情好复杂.
大概是因为时间的大浪终于要把我冲走了吧.
然而今天似乎任何和文化课有关的事都没干.
noi之前似乎也是差不多地颓ovo.
上午出去摸了一下别人的po搞回来几个6炸. 然后在某鼎门口被善良的保安哥提醒&amp;quot;你要不要进去坐坐&amp;quot;. 然而ovovovoovo.
下午好热. 于是躲在家打电竞. ed终于飞回文明区了. 搞了个高配viper开始刷res. 然而viper终究是viper, 不能当作vulture来用. sad.
晚上想到了一个关于ingress的oi题. 感觉萌萌哒. 然而我的oi水平已经废了呢. sad.
为啥lk的周更跳票了呢sad.
所以明天就要看考场啦. excited.
所以我还是太年轻啦.</description>
    </item>
    
    <item>
      <title>由Ingress想到的oi题0</title>
      <link>/random/258fa2/</link>
      <pubDate>Sun, 05 Jun 2016 21:33:15 +0000</pubDate>
      
      <guid>/random/258fa2/</guid>
      <description>Ps: 在思考ingress自动规划连边的时候顺便想到的一个题.
题:
Ingress里要连多重来刷ap. 这是一种简化的情况.
假设平面上有点(A), (B), (C_1, \dots , C_n).
其中(C_1 , \dots , C_n)在直线(AB)同侧.
要连一个多重就要选一些点( { C_{a_i} } ), 使得( \Delta ABC_{a_1}, \Delta ABC_{a_2}, \dots \Delta ABC_{a_m} ) 依次包含. 即( C_{a_i} )在( \Delta ABC_{a_{i-1}} ) 内.
然后每个(C_i)都有个权值( W_i ), 求所有方案中最大的权值和.
另:
把权值和最大改成权值积最大, 对( 998244353 )取模. 让一群人写高精去然后再随便把高精卡T掉哈哈哈哈哈哈哈.
解法: (口糊的请打脸)
大概是个dp题.
把(C_i)按照离直线(AB)的距离排序即可保证拓补序. (其实这题我觉得有意思的地方就是这个了. 然而太简单)
然后就是找平面上某个三角形里的最大(f)值. KD树搞之. (AFO太久的我已经不知道KD树是什么了. 似乎有人告诉过我KD树这么用保证不到时间复杂度.)
印象中KD树常年被用来打脸和被打脸.
也许有更方便的搞法? 然而我的数据结构实在太渣ovo.
就酱.</description>
    </item>
    
    <item>
      <title>20160604</title>
      <link>/diary/61d29d/</link>
      <pubDate>Sat, 04 Jun 2016 21:14:13 +0000</pubDate>
      
      <guid>/diary/61d29d/</guid>
      <description>离高考还有2天.
在成都七中上课的最后一天了.
水坝哥永远是话最多的.
就结束了呢.
高考就来了呢.
听说明天钦妹儿众考thusc? gl. 祝荡气回肠的ak.
中午回家路上炸了政正ovo. 莫名地攒了一把炸盾po的自信.
下午太热在家玩电竞和ed. 两次掉进恒星引力圈ovo. 打算飞回文明区然而半路上网断了.
晚上本来不是很想出去散步的.
然而发现居然看不了intel了? 蓝军这nm是连了多少层?
泸县, 绵阳, 重庆. 成都被包围了ovo.
I am unhappy. I am going to zha po!
于是就去神仙树炸po. 那边有一堆上了axa的po.
炸第一处的盾花掉了上百个67xmp. mdzz.
炸第二处盾花了10个左右的67ultra. mdzz. 然后, 问题来了. 为什么我炸了之后角能自动回血啊? 难道有人在充? madan!
今天本来地图就卡成傻b了还有人和我充能?
瞬间我会的不会的所有脏话都给骂出来了.
于是在我花完了所有7炸6炸5炸和大部分4炸的情况下终于把这给端了.
mdzzmdzzmdzz.
我真是太年轻了.
Historical Comments yeguanghao at 2016-06-05T02:12:51 Orz 为什么不先破盾再炸啊
laekov at 2016-06-05T08:29:13 因为我naive啊ovo 拿5炸直接炸掉绿盾, 于是莫名自信</description>
    </item>
    
    <item>
      <title>20160603</title>
      <link>/diary/c0ee7e/</link>
      <pubDate>Fri, 03 Jun 2016 22:27:13 +0000</pubDate>
      
      <guid>/diary/c0ee7e/</guid>
      <description>离高考还有\((11)_2\)天.
唉唉晚上突然发现高考就在眼前了呢.
即使是二进制也无法让那个数字显得大一点.
看着洒进走廊里的夕阳仿佛看到了自己落山的高中生活.
已经没有什么心思学习了ovo.
所以一天都在不知道干什么中度过.
中午的时候去了南虹村, 然后下午又被打回来了.
不会再在中午1点急匆匆地往学校跑了.
最后一个晚上最疯. 拉着cyl去望江推po. 迟到了至少20分钟.
所以也并没有回教室去上晚自习. 毕竟我高中三年超过50%的晚自习是在科技楼3楼和4楼度过的.
熟悉的机房已经没有了熟悉的味道. 四个和机房格格不入高三党怎么也无法填充出回忆中的欢声笑语.
人总是要向前走的.
结束就是结束. 何苦用一种仪式的行为仪式的心态去面对?
大概是我自认为太了解结束了吧.
所以我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20160602</title>
      <link>/diary/8ca1c7/</link>
      <pubDate>Thu, 02 Jun 2016 22:31:02 +0000</pubDate>
      
      <guid>/diary/8ca1c7/</guid>
      <description>离高考还有\((100)_2\)天.
越发近了呢.
考了理综和英语.
物理第二个大题鬼畜了. 然而算错了第一个大题是什么情况qwq.
看来主要还是给信心的题.
于是花了今天剩下的时间来做视频. 终于让强迫症队友满意了qwq.
然而收视频的孩子为什么不回短信啊ovo.
都没出去摸po. 似乎磨子桥这个po的竞争很激烈啊. excited.
然而最近是没机会大攒ap了.
红桶确实比较鸡助qwq.
所以我还是太弱啦.
Historical Comments ArtemisLiu at 2016-06-03T11:18:45 视频已经在官微挂出来辣(快去看我微信) 何姥爷好帅orz</description>
    </item>
    
    <item>
      <title>20160601</title>
      <link>/diary/537f71/</link>
      <pubDate>Wed, 01 Jun 2016 22:40:41 +0000</pubDate>
      
      <guid>/diary/537f71/</guid>
      <description>离高考还有5天.
儿童节.
热身考试呢. 然而. 似乎. 已经. 麻木. 了.
上午语文作文还比较好写.
下午数学最后一题后俩问都没做出来ovo. 那个超越方程不会逗啊.
中午去找水坝哥审查视频. 然后. 表示. 不. 开心.
为啥非要把我们班成绩多优秀拿出来说啊.
说就说吧. 于是就去让may念了一下有多少人进省队多少人进集训队多少人进国家队ovo.
然后去各种找照片凑了两张墙. lwx的表情好厉害.
然后. 晚上我在组里提醒lql要下下来看不然laekov的服务器流量就炸了.
lql: 怎么下下来是个gv啥的啊?
laekov: 这是graduation video的缩写啊.
lql: 已经删了.
laekov: qwqwqqwqwqwqwqwqwqwqwqwqwqwqwqwq.
以及今天在南虹雅园那边的po几度易主. 我辛辛苦苦立的5po诶. ovo还没怎么摸就炸了.
所以我还是太年轻啦.</description>
    </item>
    
    <item>
      <title>20160531</title>
      <link>/diary/cabb9c/</link>
      <pubDate>Tue, 31 May 2016 22:49:24 +0000</pubDate>
      
      <guid>/diary/cabb9c/</guid>
      <description>离高考还有6天.
然而那只laekov还在颓视频.
早上居然自动起床了真是奇迹.
上午逃掉了最后一节课. 碰到了出去上自习的yzy. 回教室的时候发现生物老师在讲题.
下午逃掉了最后一节课. 带上了萌萌的cyl. 回教室的时候发现数学老师在讲题.
我: f***.
于是晚上饭都没吃就跑妇儿院去拿了个桶. 然后我就把桶还回去了然后我就听说桶是不用还的&amp;gt;_&amp;lt;.
于是晚上接着淦视频.
然而试图在mac os上找一个能用的不要钱的音频处理软件然后失败了sad. 只好投奔了windows. 感觉我做了一件非常恶心的事情. 我要向教父忏悔.
付老那个强行要我站远点录真是sad. 最终也没学会如何消掉鸟叫. 而且声音, 就像在浴室里录的一样.
get了新的技能, 在chrome缓存里找视频文件.
晚上做完视频顺手打了一局csgo官匹, ping居然只有100+, 瞬间感觉整个人都精神了. 开心. 也许机房那个低得鬼畜的鼠标灵敏度也有contribution. 以后是不是想打cs官匹的时候就去机房蹭网呢?
所以我还是太年轻啦.
钦妹儿太强啦.</description>
    </item>
    
    <item>
      <title>20160530</title>
      <link>/diary/e252d6/</link>
      <pubDate>Mon, 30 May 2016 22:37:22 +0000</pubDate>
      
      <guid>/diary/e252d6/</guid>
      <description>离高考还有7天.
我, 居然, 帅气地, 发烧了. qwqqwqwqwqwqwqwqqwqwqwqwq.
果然是考前病么? 想起去年夏天的长沙qaq.
于是早上到底干了什么呢?
imovie用起来好奇怪啊. 一定是我的打开方式不对.
倒是发现下午刷物理效率异常高.
然后下午的采访怎么同学们都辣么害羞啊.
于是差点都没采集全数据.
zjr的迷之单反我也是醉了. 其实我觉得手机就能拍出不错的效果吖.
翘掉晚自习去淦视频然后面到了ygh orz. 二话不说就把我的po都给炸掉了.
拖了达达过来帮忙. 感觉耽误了正经高考党复习. 不安ing.
然后还摆拍了两段233.
然而淦视频淦得我更想吐了.
还有论bgm的重要性. 没有bgm的时候各种声音都是离散的好难受, 加了bgm瞬间耳朵就舒服了ovovoovovo.
所以我还是太年轻啦.
感觉明天一定会跪在床上起不来.</description>
    </item>
    
    <item>
      <title>20160529</title>
      <link>/diary/a47edf/</link>
      <pubDate>Sun, 29 May 2016 19:00:50 +0000</pubDate>
      
      <guid>/diary/a47edf/</guid>
      <description>离高考还有\(2^3\)天.
我不好好学习于是被嫌弃了qaq.
那么我来写点干货? 然而并没有干货可写嘛qaq.
怎么学好高二化学? 如果你有一个像廖老这样的老师的话&amp;hellip;
没有动过笔的一天呢ovo.
早上睡到10点. happy.
中午去吃了奇怪的自助餐.
发现家的旁边有好几条蓝色的link和cf. 被包围了十分不爽. 下午去紫荆炸它们. 然后发现那蓝军的axa盾粉盾就像不要钱一样插. 根本炸不动还消耗了我宝贵的7炸. f**k.
所以今天都没有攒多少ap.
唉懒死了.
cs水平还是不行qaq.
已经不会写程序了qaq.
简单地学习了一下mongoose. 感觉就是懒人的mognodb client. 不用自己处理各种各种了比较爽.
czr太强辣.
我太年轻了.</description>
    </item>
    
    <item>
      <title>20160528</title>
      <link>/diary/1e0c75/</link>
      <pubDate>Sat, 28 May 2016 21:35:27 +0000</pubDate>
      
      <guid>/diary/1e0c75/</guid>
      <description>离高考还有9天.
十进制进入一位数.
周六注定是拿来颓废的嘛.
早上被水坝哥的怒吼惊醒.
除了水坝哥以外的所有老师上课都进入了闲扯状态.
为什么不能说&amp;quot;非常罕见&amp;quot;呢? ovo.
中午去龙江路玩. 然后发现被地图的定位偏移给骗了.
下午数学考试好难啊. 然而已经弃疗了ovo.
然后沿着科华路去玩.
ygh就lv7了呢跪烂了.
我在望江里面正准备做多重. 就剩一个po的最后两条边了. 然后, 就发现整个区域都被绿色盖掉了ovovovovovo.
真是神一样的队友啊orz.
因为中午发现我居然hack到了复制桶, 所以突然觉得生活不愁了呢.
于是把6炸当粉笔头扔. 随随便便就炸了蓝军的菊心po. happy.
晚上各种翻照片. 感觉, 我们班, 再正经的照片也是黑照ovovovovoovo.
所以我还是太年轻啦.
Historical Comments yeguanghao at 2016-05-28T23:33:25 我红桶一个月就出了一个axa&amp;hellip;</description>
    </item>
    
    <item>
      <title>20160527</title>
      <link>/diary/3fa3a6/</link>
      <pubDate>Fri, 27 May 2016 22:28:19 +0000</pubDate>
      
      <guid>/diary/3fa3a6/</guid>
      <description>离高考还有10天.
**的一天ovo.
早上.
水坝哥: 同学们要是觉得不开心了可以出去走一走散散心.
水坝哥(转身要走): hja你出来.
laekov: 这&amp;hellip;
水坝哥: 看你这么闲毕业典礼那个视频你去做吧.
laekov(泪奔): 高三一年, 我干过水管工, 投影维修工, 电脑清理工, 打字员, 现在终于升职当视频编辑了orz.
中午去莱福士转po. 然后发现两个粉色的盾一上, 我连4角都炸不到ovo.
于是只好把林荫街到一环路的区域全部涂绿了.
晚上去跑了个mission. 然而感觉跑mission并不赚ap.
还是应该多搞cf和炸cf. 然而别人的cf一般炸不到. ovo.
下午似乎是社团文化节呢. 年年都去签了道于是今年也去签了个道. 想起去年社团文化节那天下午acm训练被yjq众怒艹几道题.
整个高三第一次翘晚自习去了机房.
本来是因为在教室看小说不安全的. 然而去了之后就改淦程序了ovo.
yjq太强啦orz.
yjq太萌啦orz.
所以我还是太年轻了.
Historical Comments yeguanghao at 2016-05-27T23:20:56 ……跑任务当然是为了那个好看的牌子啊 还有一点是为了拿成就…… L8及其以后的等级不只有AP要求</description>
    </item>
    
    <item>
      <title>20160526</title>
      <link>/diary/2e12b6/</link>
      <pubDate>Thu, 26 May 2016 22:24:52 +0000</pubDate>
      
      <guid>/diary/2e12b6/</guid>
      <description>离高考还有11天.
又是个吉利的数字ovo.
今天早上睡觉啊睡觉. 然后睡醒了开始看书. 然后水坝哥进来抓睡觉的正好逃过一顿d. ovo.
中午去各种逛连了几个多重.
下午体锻课试图拉hobo入坑. 然后走来走去地刷磨子桥. 毕竟学校里只能勉强摸到这一个po.
以及占别人床po多好玩啊.
晚上出去又连了几个. 第一次去了那个啥李时珍. 那明明是个公共厕所嘛ovo.
于是今天的收获大约有10w?
happy.
然后晚自习看完了_霍乱_觉得心情复杂于是去操场散步. 然后, 就, 遇, 到, 了, 跑步的, 水坝, 哥!
laekov(回头): 刘老好!
水坝哥(跑过): hja你怎么逃课呢!!!!!!!!!!!!!!
maya.
我还是太年轻了.
Historical Comments yeguanghao at 2016-05-27T02:36:05 maya你怎么每天都10w啊…… 我现在只求去hk前能到L7 QwQ</description>
    </item>
    
    <item>
      <title>20160525</title>
      <link>/diary/94f7ef/</link>
      <pubDate>Wed, 25 May 2016 22:34:55 +0000</pubDate>
      
      <guid>/diary/94f7ef/</guid>
      <description>离高考还有0xc天.
似乎又把日期搞错了? 0xc真的不是\((12)_{10}\)? mdzz.
早上好困. 不能再晚上颓cs了.
各种做卷子ovo. 雨中去摸了磨子桥.
中午雨中忍不住出去把林荫街附近的po给占了一遍还毒掉了铁柱的政正. 然后被铁柱怒斥了ovo.
然后被铁柱报复了ovo.
铁柱好强啊ovo.
然后另外的po又被**Su给拔了.
晚上又去补了一波然后又被拔了.
打来打去何时了. ap得多少.
今天还是收获了7w+吧?
然而我还是太弱了.
晚上看完了级数. 感觉最后泰勒展开的部分有点醚. 感觉好厉害.
我还是太年轻啦.
Historical Comments yeguanghao at 2016-05-26T00:20:00 窝只会套(\sum^{\infty}_{i=0}{\frac{f^i(a)(x-a)^i}{i!}})这个公式Orz
yeguanghao at 2016-05-26T00:20:55 干人家床po不管怎么说都是&amp;hellip; 只比干人家的成就好那么一点</description>
    </item>
    
    <item>
      <title>20160524</title>
      <link>/diary/10dd40/</link>
      <pubDate>Tue, 24 May 2016 22:41:05 +0000</pubDate>
      
      <guid>/diary/10dd40/</guid>
      <description>离高考还有0xd天.
又是颓废的一天.
睡了一个早读.
然后做了会语文.
然后化学时间强行做物理. 物理的最后几题好奇怪ovo.
中午匆匆吃面. 在校门口强行拍钦妹儿. 然后出去占po.
在华西连了一大片cf. lv1的po的距离实在是太短了啊ovo.
下午做上个暑假的数学作业发现还是有好多题做不起. 药丸的节奏啊.
体锻课全年级活动等于不活动, 还不把我放出去占po. 真是*了水坝哥了.
于是坐在看台上盯着某个素不相识的女生打球for 10分钟. 感觉我这个猥琐大叔好奇怪的样子.
要不要说其实是我在发呆.
都是水坝哥的锅.
终于等到放学惊闻要5:45才开门. 于是又和钦妹玩耍了一会.
然后又去华西把下午被打散的po占回来.
于是终于lv6啦happy. lv6的xmp就是爽.
回来的时间很紧差点迟到.
晚上发现我吃饭的时候占的po被另一个人在4分钟内全部打散ovo.
然而都学我放lv1的res. 多谢了.
晚上做幂级数. 感觉要死了.
但是还是很有意思啊.
主要是各种判别公式比较迷. 以及我的运算能力qaq.
晚上放学发现政正被洗过了? 于是二话不说打下来.
十字路口等红灯发现几个弱po, 二话不说打下来.
有6炸就是爽.
所以我还是太年轻啦.</description>
    </item>
    
    <item>
      <title>yzy的计算器</title>
      <link>/random/49fe08/</link>
      <pubDate>Tue, 24 May 2016 22:33:00 +0000</pubDate>
      
      <guid>/random/49fe08/</guid>
      <description>yzy给的题. 感觉挺有意思.
听说是thu的自招题.
题:
yzy有个计算器, 只有一个按键.
计算器上有一个自然数n, 每按一次按键这个数就会等概率变成区间[0,n)中的一个自然数.
现在的数字是2333, yzy不停地按直到变成0. 问同时出现过999, 99, 9的概率.
解法:
首先随便想个dp类似的递推.
然后推一下前几项就发现规律了.
然后就完了.
答案是(\frac{1}{10^6}).
可以拿来出题用.</description>
    </item>
    
    <item>
      <title>20160523</title>
      <link>/diary/d9b20b/</link>
      <pubDate>Mon, 23 May 2016 22:21:17 +0000</pubDate>
      
      <guid>/diary/d9b20b/</guid>
      <description>高考倒计时0xe天.
开始自习了呢.
刷题啊excited.
其实有些科的题还是辣么boring.
就数学题最interesting啦.
感觉立了这么多flag我高考数学肯定要挂啊.
比如遇到一道把旁边人都给坑懵了的题.
求证:
$$ \sum_{i=1}^{n} \frac{lni}{i^4} &amp;lt; \frac{1}{2e} $$
以及小国洋发现的它的加强版
$$ \sum_{i=1}^{n} \frac{lni}{i^4} &amp;lt; \frac{1}{9} $$
还有拿计算器按出来的炒鸡加强版
$$ \sum_{i=1}^{n} \frac{lni}{i^4} &amp;lt; \frac{1}{14} $$
国洋太强啦orz.
晚上接着看霍乱ovo.
磨子桥的po被蓝军拔掉了呢. 现在我的位置似乎被蓝色link给包围了? unhappy.
晚上去蹭磨子桥, 遇到某君结果该君当场表示要入ingress坑并且不希望ygh知道.
该君太强啦orz.
水坝哥表示某老师无法复制我pdf打的作文? 然后我走过去盯着该老师把文字正确地复制了出来23333.
晚上突然想起一件事. 为什么我总是担心别人会生气呢? 原来是从小养成的奇怪的习性233.
唉唉.
我还是太年轻了呢.
Historical Comments yeguanghao at 2016-05-23T23:27:14 写在博客里面我几乎能猜到是谁？
yeguanghao at 2016-05-23T23:31:40 又在磨子桥又知道我在颓这个的人不多啊= =</description>
    </item>
    
    <item>
      <title>20160522</title>
      <link>/diary/894cf4/</link>
      <pubDate>Sun, 22 May 2016 21:44:13 +0000</pubDate>
      
      <guid>/diary/894cf4/</guid>
      <description>高考倒计时0xf天.
一位数倒计时了.
然而今天下雨. very unhappy.
早上在家做作业. 效率真是太低了.
于是搞了一下午的电竞. 买了一堆皮肤. 最终放弃了练ak的想法, 改练m4了.
晚上觉得不行啊不能这么颓废还是出去逛一逛吧.
于是就在雨里走了一大圈. 鞋子都打湿完了. 好久没有这么愉快地ca过水了.
总是必需要顾虑到更多, 也许就是长大的意义吧. 担心衣服会打湿, 担心被车撞, 担心娘亲生气&amp;hellip; 真是烦. 宁愿不长大呢.
下午为了开(an)导(li)某人而抖出了自己初中那点破事. 想想也真是naive. 就像现在的自己一样. 所以我根本没有从naive长得不naive嘛. 唉唉.
每次和娘亲赌气的时候就会想到从家里跑路之后应该怎么活. 然后觉得还是死了简单些呢.
然而死也不简单啊. 怕痛. sad. 唉真是烦.
然后磨子桥under attack了. 感觉明天中午又是一阵疯跑ovo.
所以我还是太年轻了. sad.</description>
    </item>
    
    <item>
      <title>20160521</title>
      <link>/diary/45a5fb/</link>
      <pubDate>Sat, 21 May 2016 20:57:19 +0000</pubDate>
      
      <guid>/diary/45a5fb/</guid>
      <description>高考倒计时0x10天.
天数很吉利诶.
早上好困.
中午出去占po. 面到了qzh和一堆人.
然而周末蓝军的攻势很猛呢. 根本打不过.
下午理综. 发答案的时候全班的心情都是崩溃的. 然后发现我错了整整六个选择题. 幸好是发答案ovo.
放学去望江打了个酱油.
带了充电宝而没有带充电线. 去买了根线然后是坏的. poi.
晚上大概会颓废过去了sad.
所以我还是太年轻啦!</description>
    </item>
    
    <item>
      <title>20160520</title>
      <link>/diary/e8a32c/</link>
      <pubDate>Fri, 20 May 2016 22:44:37 +0000</pubDate>
      
      <guid>/diary/e8a32c/</guid>
      <description>高考倒计时17天.
又水过一天呢.
高中正式行课的日子就再见了.
数学课为啥老师讲的东西这么麻烦啊.
语文课写作文. 高中三年唯一一次作文上50分. happy.
下午物理课老师花一节课讲了一道题. 然而因为我第一问弄错正负号导致错完qaq.
中午出去打作文顺便绕旅游村两周. 把磨子桥给拔了. 然后把旅游村给占成绿色的了. 第一次占这么大一团领地. excited.
然后回去发现望江的蓝军在做一个巨型扇形? 好虚啊. 当时看到的图形就是他们要把我的地盘吃掉的样子.
然后下午的时候果然几个po都被人给推了. sad.
然而蓝军还是很奇怪推成白色之后就不管了. 要是放几个高级的res我基本就gg了啊. 难道在故意帮我刷ap?
顺便开心地发现在游泳池楼下角落里可以蹭到磨子桥. 虽然不太稳定而且还要对角线穿越校园.
晚上的时候去把磨子桥修了. 然而街口被保护起来了, 于是去把海外学院的po给占了又把磨子桥利用起来.
顺便去华西里面占空po. 然后发现似乎与ai学长擦肩而过了?
晚自习的时候果然磨子桥, 旅游村, 华西都被炸掉了.
晚上放学去修磨子桥然后发现旅游村剩下的po被打残了没法link. sad.
于是我并没有get到收集key的正确方式.
3天lv4好开心, 然而明天并没有机会升到lv5 sad.
看来我还是太年轻啦.
Historical Comments yeguanghao at 2016-05-20T22:53:10 不然为什么我们叫懒军呢2333 key的话多画图。 你应该认识tzh，去抱他大腿吧😂</description>
    </item>
    
    <item>
      <title>混乱的变加速运动位移</title>
      <link>/random/810ef0/</link>
      <pubDate>Thu, 19 May 2016 22:39:31 +0000</pubDate>
      
      <guid>/random/810ef0/</guid>
      <description>(madan打到一半不小心把浏览器关了)
(微分方程挺有意思的. 要是暑假有人找我出oi题我就出数学题吼吼吼)
题:
一维空间里有个质点.
速度为\(v\)的时候加速度为\(-k\sqrt{a^2-v^2}\) (即与速度方向相反).
求速度从\(v_1\)变成\(v_2\)的过程中的位移\(x_m\).
其中\(0\leq v_2 \leq v_1 &amp;lt; a\).
歪:
仔细看看这不就是简谐振动么? mdzz题.
算都不用算随便看看就出来了.
下面的东西不用看了.
解:
根据题意列个方程.
$$\frac{dv}{dt}=-k\sqrt{a^2-v^2}$$
整理.
$$\frac{dv}{\sqrt{a^2-v^2}} = -kdt$$
两边积分.
$$arcsin\frac{v}{a} = -kt + C_1$$
顺手整理.
$$v = -a*sin(kt-C_1)$$
$$t = \frac{C_1 - arcsin\frac{v}{a}}{k}$$
再对\(v\)积分求位移.
$$x=\int vdt = -\frac{a}{k} \int sin(kt-C_1)dkt$$
$$x=\frac{a}{k}cos(kt-C_1)=\frac{a}{k}cos(arcsin\frac{v}{a})$$
再定积分.
$$x_m = \int_{v_1}^{v_2}vdt$$
$$x_m = \frac{a}{k} [cos(arcsin\frac{v_2}{a})-cos(arcsin\frac{v_1}{a}) ] $$
顺手化简.
$$x_m = \frac{a}{k} ( \sqrt{1-(\frac{v_2}{a})^2} - \sqrt{1-(\frac{v_1}{a})^2}$$
$$x_m = \frac{\sqrt{a^2-v_2^2}-\sqrt{a^2-v_1^2}}{k}$$</description>
    </item>
    
    <item>
      <title>20160519</title>
      <link>/diary/19fe56/</link>
      <pubDate>Thu, 19 May 2016 22:29:03 +0000</pubDate>
      
      <guid>/diary/19fe56/</guid>
      <description>离高考还有\(3^2*2\)天.
又在颓废呢.
晚上在看小说ovo.
数学卷子居然是五道函数加一道解几.
然后发现解几怎么直接用极坐标就秒了啊.
怎么函数题一道比一道水啊.
怎么函数题随便参变分离一下就完了啊.
药丸.
除了数学题, 毫无做其它题的心情.
今天把ingress升到3级了呢happy.
中午跑去捡了scu望江大门的po. 然后下午就被打回来了还被也许是报复性地拔了几个po.
感觉蓝军的行动方式很奇怪啊. 晚上的时候拔掉了我连续3个po中的1个, 然后打残了1个, 却没有占领. 什么鬼? 我觉得对面应该是完全能把我打废的啊. 难道是他们在照顾萌新laekov?
晚上出去修po的时候. 林荫街和旅游村街路口.
laekov(冲): maya我的海外学院大门被拔了.
(一个蓝衣男子低头走过)
laekov(回头): 这人怎么这么像是在玩ingress啊? 一看蓝绿黑的屏幕果然是呢. 穿着一身蓝色t恤.ovo.
laekov(怕挨打继续走): 咦怎么我的po被绿军的兄弟占回来了? 一定就是刚才那人.
laekov(回头): 这人还没走啊肯定是在刷po.
laekov(走上去): 同学你好请问你是绿军吗? (感觉laekov好傻)
学长(愣了一下): 是吖是吖. 你是laekov吧. balabala(新手教程略)
感觉好开心居然能在街上面到学长.
正在纠结星期六是去望江逛一圈还是去玉林逛一圈.
看来我还是太年轻啦.</description>
    </item>
    
    <item>
      <title>20160518</title>
      <link>/diary/5e8211/</link>
      <pubDate>Wed, 18 May 2016 22:39:55 +0000</pubDate>
      
      <guid>/diary/5e8211/</guid>
      <description>离高考还有19天.
时日不多了啊.
玩了一天的ingress.
为什么我加入了奇萌军呢? 只是因为我在选阵营的时候觉得绿色比蓝色好看啊233.
仔细算算其实出去玩ingress的时间就是之前待在教室里无聊的时间. 其实这样也挺好的呢.
第一次正确地占po. 然后发现拿lv2的xmp揍lv8的res真是作死. 去scu里转了一圈倒是感觉不错. 要不是玩了ingress我这三年都不知道Scu华西里面长什么样子呢.
然后回来的时候发现怎么占的po又变灰了? 幸好我是原路返回的2333.
于是产生了毛病, 走在路上看到低头看手机的都觉得是蓝军2333333.
然而真的很好玩呢.
谁说今天白天要下雨来着. 没带衣服结果遇到晴天还是最后一节体育课. 于是打了球没衣服换. 淦.
晚上的时候努力地学习了微分方程. 感觉自己萌萌哒233.
想到一个好玩的东西.
两条水平光滑超导平行金属导轨间距为\(L\), 匀强磁场垂直于水平面向上, 场强为\(B\), 左边接一个电阻为\(R\)的定值电阻. 一个质量为\(m\)的足够长的超导金属滑杆以\(v_0\)的初速度向右水平滑动, 求最大位移.
推一推积一积就粗来啦. 感觉挺神奇的. 周参表示是无穷远处2333.
最后验算的时候只算了单位都算了5分钟ovo.
所以我还是太年轻啦.</description>
    </item>
    
    <item>
      <title>20160517</title>
      <link>/diary/2003f2/</link>
      <pubDate>Tue, 17 May 2016 22:27:51 +0000</pubDate>
      
      <guid>/diary/2003f2/</guid>
      <description>离高考还有20天.
咦时间有点快啊.
昨天晚上睡觉之前才发现作文忘打了. 是说有什么事没做. 于是今天困死了.
因为换了课所以没有化学, 四科都有两节ovo.
困的时候做物理的正确率变高了然而做生物错得一塌糊涂.
中午顶着太阳去磨子桥hack. 然而根本没有找到正确的打开方式.
于是加了四川的群. 然后发现怎么有熟人. 怎么七中的学长居然认识我而我还不认识他ovo.
smg.
于是吃完晚饭又去hack川大, 晚上放学又去了一次. 然而还是不能掌握正确的姿势 sad.
感觉要中毒了呢. 好想有辆自行车啊.
所以我还是太年轻了呢.
今天晚上要早点睡觉才是.
zhx的广告
Historical Comments yeguanghao at 2016-05-18T01:19:28 看起来加入绿军了啊&amp;hellip;为什么来我懒军啊&amp;hellip;
yeguanghao at 2016-05-18T01:19:29 看起来加入绿军了啊&amp;hellip;为什么来我懒军啊&amp;hellip;</description>
    </item>
    
    <item>
      <title>20160516</title>
      <link>/diary/6dc065/</link>
      <pubDate>Mon, 16 May 2016 22:25:49 +0000</pubDate>
      
      <guid>/diary/6dc065/</guid>
      <description>离高考还有21天.
最后一周上课的时间了.
好多课都处于半自习状态.
体育课的时候发现因为手痛所以投篮命中率为0. very sad.
于是整天都各种不开心.
晚上被数学虐.
最初学洛比达, 感觉还不错. 到了积分开始懵了. 到了微分方程开始炸了.
原来那个很好玩的东西叫ingress. 然而墙墙真烦. mdzz还让不让人好好玩耍了.
少壮不努力, 老大留内地.
药丸.</description>
    </item>
    
    <item>
      <title>20160515</title>
      <link>/diary/a68e9b/</link>
      <pubDate>Sun, 15 May 2016 21:38:17 +0000</pubDate>
      
      <guid>/diary/a68e9b/</guid>
      <description>离高考还有22天了.
星期天.
早上撸作业.
下午撸数学.
积分的姿势还是不对.
sad.
晚上打cs. 已经弱到没救了. 要再打怕是我要剁手了.
花了几毛钱买了个最便宜的ak的涂装. 然而技术&amp;ndash;. mlgj.
是不是太颓废了点.
唉我还是太弱了.
今天整个手臂都在痛. 手指用力也很痛. 拿个筷子就像元首一样. nlgxp.
所以我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20160514</title>
      <link>/diary/6374e3/</link>
      <pubDate>Sat, 14 May 2016 21:16:43 +0000</pubDate>
      
      <guid>/diary/6374e3/</guid>
      <description>人工高考倒计时\(23\)天.
都是lym的锅. 右手要断掉了. 右手中指和无名指打字都不利索了.
早上对理综答案正常炸. 然而至今不知道上周理综的成绩是什么鬼喽?
中午去打球. 然而都不想打于是就投了会. rp暴发打532虐了hj和ls. 然后比三分若干个都没进, 于是hj来防, 一防就进了233. 果然是我在有人盖的情况下后仰更容易进球?
下午考英语. 做完还有40分钟忍不住看了答案然后内心是绝望的.
然后就去和lym打羽毛球. oi退役之后第一次打羽毛球已经不太会打了ovo. 14班众打羽毛球的热情好高啊. 然而我已经不会打了呢. 地滑得像滑冰ovo.
打完回家发现手抖死了. 右手手腕gg了. 等会试试这样打cs是什么效果.
晚上出去逛坐在车上看到了从双流起飞的飞机和红绿的翼尖灯. 唉.
我还是太年轻了呢.</description>
    </item>
    
    <item>
      <title>20160513</title>
      <link>/diary/7081a9/</link>
      <pubDate>Fri, 13 May 2016 21:18:52 +0000</pubDate>
      
      <guid>/diary/7081a9/</guid>
      <description>人工高考倒计时\(3*2^3\)天.
学校停电了诶. happy. 是不是电网炸了就要改造限改造了就可以装空调了? 反正都轮不到我们这届了呸.
然而老楼居然有电. 于是去鸠占雀巢进攻高二出国党教室做作业. 为毛12班众有台灯啊ovo.
坐在长着爬山虎的窗台边吹着微风. 这又是什么感觉呢?
喂这么浪漫的时候居然没有一个妹子陪着真是太浪费表情了. 其实旁边是有妹子的呢然而又不是我的ovo. 幸好没有cp再来进行二次伤害. 新楼的监控也暴掉了他们应该正在黑暗里happy吧233.
走在街上觉得似乎很久没有这样悠闲了. 已经不会玩了. 唉.
然而白天还是困.
下午理综各种心力憔悴.
唉. 我还是太年轻了.
还是去颓cs吧.</description>
    </item>
    
    <item>
      <title>20160512</title>
      <link>/diary/f47ffc/</link>
      <pubDate>Thu, 12 May 2016 22:24:35 +0000</pubDate>
      
      <guid>/diary/f47ffc/</guid>
      <description>人工高考倒计时\(3^2+4^2\)天.
汶川八周年.
又是妖风天. 每次这个时候刮妖风就想起泸山地震. 然后又想起湖南同学的问题: 你们四川是不是天天地震啊?
早上困死了睡睡睡睡了4节课.
中午开始刮大妖风. 发现老楼侧面的爬山虎会随风出现波纹. 然而静态的照片似乎很难表现这种效果, 以及拍视频也不太爽. 加之今天光线也不好. sad.
下午接着睡.
晚上发现作业略少于是接着看_霍乱_. 怎么到中\(\frac{1}{3}\)就成乱爱了ovo. 怎么别人走在街上都能勾搭到鸟.
回家的时候发生了有趣的事.
在桥下, 因为A柱档视线差点撞上一位交警同志.
上面不是重点.
交警同志(示意把窗户摇下来, 左手拿着酒精测试仪, 右手拿着电筒, 把右手伸到爹面前): 吹一口气.
爹: 呼.
交警同志(挥手): 好了. 走吧.
五秒后.
爹, 我: 怎么不太对啊!
交警同志您醉了吧?
所以我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20160511</title>
      <link>/diary/aa3e41/</link>
      <pubDate>Wed, 11 May 2016 22:35:04 +0000</pubDate>
      
      <guid>/diary/aa3e41/</guid>
      <description>人工高考倒计时\(26\)天.
似乎MathJax在渲染公式的时候有时候会见鬼? smg.
早上困.
中午吃完饭遇到了老司机yjq. 问起实验操作和thusc, 猛然发现又是一届了呢. 其实呢, 开心就好.
听说cyz和flaze在一起了? 恭喜orz.
下午体育课32度太阳下打篮球我都觉得自己好拼. 出了一身臭汗.
考数学的时候整个人都是昏的. 最后一题迷之简单ovo.
晚上课间坐在科技楼门口的长凳上看人. 已经有大半年没有走上过那个楼梯了吧. 内心依然是拒绝的.
难得做完作业于是高三第一次翘晚自习. 躺在操场吹风看星星月亮.
还真有一颗孤星呢. 以我的斗鸡眼.
上一次这样躺在操场上都是一年前的事了. 那时我有没有想过今天呢? 大概已经忘了吧.
然而回忆过去有个ball用啊.
然而未来我也想不清楚.
然而当下真是无药可救了.
高考前自暴自弃的不怕开水烫的死laekov还是太年轻了.</description>
    </item>
    
    <item>
      <title>20160510</title>
      <link>/diary/8efe3c/</link>
      <pubDate>Tue, 10 May 2016 22:34:51 +0000</pubDate>
      
      <guid>/diary/8efe3c/</guid>
      <description>人工高考倒计时\(3^3\)天.
@yeguanghao MathJax的反括弧是&amp;quot;\)&amp;ldquo;喂.
还有hht造的新闻是什么鬼啊. 根本不知道.
然而今天very unhappy.
清早去没认真清洁然后被水坝哥d了一顿.
早上做操的时候发现有个数独? 有T恤? 然后就hold不住了. 搞个暴搜就能有T恤.
然而没有电脑. 痛苦了两节课. 在草稿纸上写了cpp代码课间去电脑上打, 然后发现没有输出smg. 果然是程序能力变弱了么.
没有吃饭接着调程序. 然后发现程序毫无问题啊又是smg.
急匆匆地跑下去, 发现那张数独上已经写上了&amp;quot;数竞&amp;quot;两个大字. mlgj. 唉.
怎么不来十张呢? 一百张都没有问题.
我解数独只要两分钟. 一分钟用来输入, 一分钟用来抄.
然而我太naive了.
sad.
中午颓得不行于是去zhihu上开了&amp;quot;高考之前自暴自弃&amp;quot;这个坑.
下午做数学作业发现一道挺好玩的题.
求证\( (x-1)(e^{-x}-x)+2lnx &amp;lt; \frac{2}{3} \).
打错了ovo
中间有高能代换.
吃完晚饭去晒夕阳. 觉得自己为什么这么废柴啊sad.
晚上发现物理作业真**多. 强行假装我没看到卷子有两面好了.
这就叫所谓的自暴自弃.
所以我还是太年轻了.
Historical Comments laekov at 2016-05-10T23:26:35 ( f(x)=\frac{1}{x^2}+\frac{1}{x}+a\ lnx )
yeguanghao at 2016-05-11T00:40:45 ( (x-1)(e^{-x}-x)-2lnx&amp;lt; \frac{2}{3} )
yeguanghao at 2016-05-11T00:41:00 我果然还是太年轻了
yeguanghao at 2016-05-11T20:17:07 ( (0.5-1)(e^{-0.5}-0.5)-2ln(0.5)=1.33303 &amp;gt; \frac{2}{3} ) ?</description>
    </item>
    
    <item>
      <title>20160509</title>
      <link>/diary/a65785/</link>
      <pubDate>Mon, 09 May 2016 22:38:43 +0000</pubDate>
      
      <guid>/diary/a65785/</guid>
      <description>人工高考倒计时28天.
昨天又把倒计时搞错了幸好今天就发现了.
然而我真的是智障呢.
昨天晚上帮zhx做推广然而似乎没有人看. 我的造新闻水平还是太低了啊.
不得不感叹时光飞逝啊. 还感觉当年和zhx在305打森林冰火人的时候就是昨天呢.
于是早上升旗的时候好困.
数学课被题虐了. 下课才发现mdzz.
体育课考1000. 非要在这种时候这种天气考试么. 于是果断水了个4分钟. 想想我当年是3分钟的男人呢. 唉唉好汉不提当年勇. 然而. 就让那些东西消散在风里吧.
然而腿痛. 打球还和nuzzi撞了一下膝盖. 感觉内伤了sad.
中午在zhihu上看到一个奇怪的脑洞小说于是忘了做作业. 手机果然是生产力杀手.
下午听说物理老师开车开到交警大队去了. 233.
于是3节连续的英语课.
晚上做数学再被虐一遍. 我的数学真是没救了.
然而qbq也是效率杀手.
还有那啥yjq虽然你心里难受但是要装出一副很正常的样子嘛不然招打啊.
第一次看到钦妹儿打滚撒娇. 已截图.
所以我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20160508</title>
      <link>/diary/50c565/</link>
      <pubDate>Sun, 08 May 2016 20:48:42 +0000</pubDate>
      
      <guid>/diary/50c565/</guid>
      <description>人工高考倒计时29天.
最近心情好狂暴啊好想打人啊.
早上睡到10点ovo.
中午在家里玩到2点. 我真是没救了. 还是做完了作业.
然后&amp;hellip;
我真是智障.
就是这个坑爹东西.
\(\int\frac{dx}{1+sin^2x}\)
居然想了一个小时.
我真是没救了. 找块豆腐撞死算了.
玩cs颓得不亦乐乎.
我真是没救了.
Historical Comments yeguanghao at 2016-05-09T00:41:50 上下同乘$csc^2 x$?
laekov at 2016-05-09T22:29:08 @yeghuanghao 是的就这么一个智障玩意我对着看了一个小时才看出来. MathJax行内公式用(
yeguanghao at 2016-05-09T23:58:48 (csc^2 x$)\</description>
    </item>
    
    <item>
      <title>20160507</title>
      <link>/diary/955cb6/</link>
      <pubDate>Sat, 07 May 2016 22:21:19 +0000</pubDate>
      
      <guid>/diary/955cb6/</guid>
      <description>人工高考倒计时0x1e天.
居然有人催更啊. 受宠若惊.
今天发生了什么呢?
早上那么好的天气应该待在家里睡觉啊. 然而要去上学. 梦游去了当然是可以原谅的喽.
中午发现似乎有什么事情没有做? 然后就下去打球去了. 晚上回来才发现是没有打照片.
和班上大腿去打球就是爽啊. 虐暴野场啊. 然而水坝哥并没有出现.
下午考语文好鬼畜. 我一直以为&amp;quot;主要看气质&amp;quot;的意思是空气质量啊!!! 然后就开始乱批. 感觉最近特别有批判精神, 看到什么东西都想批判一番 ovo.
zhihu上的问题越发鬼畜了.
下午下课被lym拉去接着打球. fjm还是fjm的同学的妹子居然坐那陪男朋友打球. 被秀了一脸啊摔.
然而平行班的同学打得真的好拼. 而且大腿不够粗被虐惨了.
中途抢了张玉棍(不知道张老师的名字怎么写雾)老师的球, 于是被同学提醒&amp;quot;小心张老师扣你的分&amp;quot;. 233333. 然而张老师又不教我啊.
再说了, 球场上体现对对手的尊重, 难道不就是应该拼尽全力把对方虐得体无完肤?
然而悲伤地发现我的篮球技术和cs技术一样差得体无完肤. sad.
所以我还真是一无所长啊.
所以我还是太年轻了.
Historical Comments yeguanghao at 2016-05-07T22:30:09 何姥爷周末还上课？ Orz
laekov at 2016-05-07T22:57:26 @yeguanghao 高三周六一直都要上课啊&amp;hellip;</description>
    </item>
    
    <item>
      <title>20160506</title>
      <link>/diary/e3816e/</link>
      <pubDate>Fri, 06 May 2016 22:41:53 +0000</pubDate>
      
      <guid>/diary/e3816e/</guid>
      <description>人工高考倒计时0x1f天.
今天忘撕计时纸了sad.
早上起来下雨然而并不凉快.
出门的时候居然真的听了娘亲的话没拿充电宝. wtf. 手机电压根本不够一点也不凉快.
英语课并不敢吹风扇.
花了一节数学课加一节语文课还是没想对那道数学sb题.
然后yzy一句话就点醒了orz. 我太弱啦. 其实之前做过的模型, 不过. ovo.
中午去打作文的时候发现校门口有莫名其妙的街访. 然后低头闪过.
下午考理综爆炸了呢. 错了一堆选择题sad.
晚上忙着做作业都没对答案ovo.
教室里真是吵得要死. 还闷.
同桌玩手机被值班的班主任捸到了. 然而我在几分钟前嫌音乐吵扔掉了耳机233.
所以我还是太弱啦sad.
说好的五月可以玩呢? 现在真的有点期望明天就高考了ovo.
然后就可以愉快地去货站当搬运工啦~</description>
    </item>
    
    <item>
      <title>20160505</title>
      <link>/diary/a54e1f/</link>
      <pubDate>Thu, 05 May 2016 22:21:37 +0000</pubDate>
      
      <guid>/diary/a54e1f/</guid>
      <description>人工高考倒计时0x20天.
要热死了. 淦.
听说11班比我们更惨. 对面2班关着门闷声吹空调. 现在后悔没有去对面勾搭几个妹子了.
于是糊了个风车玩了至少半个小时ovo.
明天还是带个风扇去吧.
热天会莫名想起在404吹空调的日子呢. 还会有些伤心呢.
热的后果是智商下降sad.
于是又要打作文, 还要给语文老师背锅. unhappy.
所以我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20160504</title>
      <link>/diary/d28f20/</link>
      <pubDate>Wed, 04 May 2016 22:41:12 +0000</pubDate>
      
      <guid>/diary/d28f20/</guid>
      <description>人工高考倒计时33天.
希望没把天数算错.
yjq你站出来&amp;hellip; 你数数我到底上过几次140. QaQ.
然而我写的本来就是离散剧嘛.
上午好困zzz.
中午收到了书happy. 然后做了一中午解析几何题.
之前觉得函数题比算几题更烦. 现在觉得算几题比函数题烦. ovo.
下午更困zzzzzz.
虽然嗓子痛还是去打球.
然后热死了.
然后热死了.
然后数学考试就把最后俩题都搞错了. sad.
晚上偷偷看小说. 然而水坝哥没有出现怎么感觉亏了呢.
hosts又炸了呢. sad.
所以我还是太年轻啦.</description>
    </item>
    
    <item>
      <title>20160503</title>
      <link>/diary/08b892/</link>
      <pubDate>Tue, 03 May 2016 22:38:04 +0000</pubDate>
      
      <guid>/diary/08b892/</guid>
      <description>人工高考倒计时34天.
成人礼.
其实穿西服一点都没有t恤运动裤舒服嘛. 人类为什么要发明这么奇怪的衣服来为难自己呢?
在操场上听乱扯的时候感觉好热好热好热.
也没有妹子来和我合影啊. 唉. 果然是**.
还有, 爹被别人当作哥哥是怎样一种体验?
对面班的妹子穿了汉服感觉好好看233. 尤其喜欢某个妹子的头绳. 我也想扎好看的头绳~ 然后中午+2同学试图给我别发卡233. 首先我要能忍受超过1厘米的头发啊. 唉算了.
在穿了一上午衬衣之后放弃了.
下午被化学老师怒斥&amp;quot;你需要补习基础&amp;quot;. 唉, naive.
晚上试图提高自己的积分水平, 然而还是蠢哭.
晚上还研究了一下上午发的宪法, 得出的结论是, 这玩意就是一装饰嘛.
唉, 所以我还是太年轻了.
Historical Comments ArtemisLiu at 2016-05-04T09:14:03 何姥爷快把头发留长，你爹好帅😍</description>
    </item>
    
    <item>
      <title>20160502</title>
      <link>/diary/4f07d2/</link>
      <pubDate>Mon, 02 May 2016 20:31:02 +0000</pubDate>
      
      <guid>/diary/4f07d2/</guid>
      <description>人工高考倒计时35天.
颓废啊颓废.
上午睡到10点ovo. 然后把极坐标grapher搞了. 顺便发现了为什么昨天去掉换行之后就挂掉了.
有极坐标就可以画出好看的曲线啦.
然而cs技术还是废柴.
花了几乎整个下午来提高自己的积分能力. 感觉自己要弱暴了. 主要是基础积分表不熟悉. 主要就是sec和csc这两个严重不熟. sad.
晚上才发现maya还有个成人礼的信没写. 然后听说别人班只有家长写不用学生写? maya.
然后看电影玩. 再打cs估计就要砸键盘了.
听说百度推广的医院出事了? 好开心啊. 赶紧闹闹闹把百度闹垮了最好. happy.
所以我还是太年轻了.
Update:
晚上看完了语文老师推荐的电影. 高考前推荐这电影是什么心态ovo. 只要努力学习, 就算智障也能上pku? 到最后才开始觉得女主还是有点漂亮的233. 跑题了ovo.
教训是, 考试之前才不要立flag, 喝什么&amp;quot;合格咖啡&amp;quot;.</description>
    </item>
    
    <item>
      <title>20160501</title>
      <link>/diary/4ac71e/</link>
      <pubDate>Sun, 01 May 2016 21:14:40 +0000</pubDate>
      
      <guid>/diary/4ac71e/</guid>
      <description>人工高考倒计时36天.
五一了呢.
又过去一个月.
然而又颓废过去了.
早上睡得挺晚.
然后做作业.
然后做作业.
然后做作业.
下午去写了个grapher, 然而我的程序水平已经捉鸡到不能看了. 不过这回至少把东西都封闭成类了感觉挺萌的. 然后就没有时间刷数学题了.
晚上去理了个发. 好想留长头发啊然而每次头发稍微长了就不能忍QwQ.
我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20160430</title>
      <link>/diary/f17346/</link>
      <pubDate>Sat, 30 Apr 2016 21:54:29 +0000</pubDate>
      
      <guid>/diary/f17346/</guid>
      <description>人工高考倒计时37天.
又颓废了一天.
早上似乎在发卷子和发卷子和发卷子.
廖老师: &amp;ldquo;睡不着的时候就换个姿势. 我喜欢伸展开睡.&amp;rdquo; (开始伸手)
众: &amp;ldquo;你夫人真惨, 成天被打得鼻青脸肿.&amp;rdquo;
10s后.
众: &amp;ldquo;有毒.&amp;rdquo;
下课. &amp;ldquo;yzy哥哥~&amp;rdquo;.
中午他们去打球, 我在打作文QaQ.
下午自习, 以为可以和周末作业缠绵一番了, 然后就发了一堆英语卷子. 做了老半天才做完. sad.
放学搬桌子的时候强迫症犯了. 然后就没有然后了.
回家正在和娘亲闲聊, 三诊成绩就来了. 居然比二诊分还高. 只能说改得真是水.
物理小数位数不对不扣分, 电路图把V表画成A表加电阻不扣分. 化学方程式少写了氮气根本没有配平不扣分. 1-甲基丙烯写成了1-甲基-2-丙醇, 这都没扣分. 真是醉了.
yzy: &amp;ldquo;我真是*了poi了.&amp;rdquo;
后来听说cdqz有一堆上700的然而平均分还是被树德吊打. 呵呵哒. cdqz要毁在我们这届手里喽.
晚上打cs. 我的水平真是越来越差了啊啊啊. 呵呵呵. sad.
晚上出去散步, 鬼使神差地又去天桥上逛了一圈. 那天的事留下了深刻的印象啊. 虽然成七的音乐厅, 比这个高到不知道哪里去了.
其实我也挺喜欢那天桥的. 站在机场高速上面, 看车以100码的速度向我撞来然后从脚下闪过去跑远. 浪漫max. 然而从来都是一个人去吹风的嘛. ovo. 以后应该在右手上套个假发.
所以啊, 我还是真的太年轻了.</description>
    </item>
    
    <item>
      <title>20160429</title>
      <link>/diary/8f0658/</link>
      <pubDate>Fri, 29 Apr 2016 22:26:03 +0000</pubDate>
      
      <guid>/diary/8f0658/</guid>
      <description>人工高考倒计时38天.
颓废的一天.
周围一群打游戏的人到了自习课真是吵死了sad.
理综比想像中的错得多.
晚上和付老聊天说到能听课的日子还有三个星期了.
然而以后语文课还要被检查笔记了呢. ovo.
然后lk同学的&amp;quot;大型情感连续剧&amp;quot;并没有断更嘛. @yeguanghao. 只是从看心情更变成了周更而已. 然而idy怎么这么强啊orz.
发现我写的东西大概可以叫&amp;quot;离散剧&amp;quot;? happy.
晚上喝了一杯西瓜汁然后装了一肚子水去跑步QaQ. 然而并没有遇到昨天那对小情侣. 然而看到了更颠覆感观的事, 一对cp骑自行车, 女生, 搭, 男生!!! 这男生真幸福啊我也想被搭啊. 然后想想能搭得动我的女生得有多重才能平衡, maya还是算了吧我应该苦练车技.
想起了当年在thu搭zhx歪歪扭扭差点撞人撞树233.
所以我没救啦.
Historical Comments yeguanghao at 2016-04-30T00:35:01 不管，反正你不断更
Miles at 2016-04-30T11:37:48 不管,反正你不断更
ArtemisLiu at 2016-05-03T15:14:17 不管，反正你不断更</description>
    </item>
    
    <item>
      <title>20160428 三诊day2</title>
      <link>/diary/4ea595/</link>
      <pubDate>Thu, 28 Apr 2016 22:47:50 +0000</pubDate>
      
      <guid>/diary/4ea595/</guid>
      <description>人工高考倒计时39天.
三诊day2.
昨天考完语文感觉自己萌萌哒. 考完数学觉得完了要滚粗前100了. 考完理综发现昨天立了个flag明明是要滚粗前200了. 考完英语觉得自己应该回家研究一下上哪个二本了.
我觉得这回化学题又要被廖老婊了呢. 好奇怪啊. 同分异构只有2个还只让写数字, 害得我纠结了好久.
物理实验题忘了取2位小数了啊.
生物那个更多的无机盐是什么情况?
考完理综去打球好热还出了一身汗还遇到了水坝哥. sad.
中午坐在台子上晒太阳. 突然发现高中的日子也不剩几天了莫名伤感. 似乎是虚度了时光呢.
下午英语. maya怎么阅读题都不确定的样子. 完型打了3个问号, 结果对答案发现三处问号都选错了QaQ.
晚自习颓废过去了. 毕竟没人管.
晚上跑步回家, 然后, 在, 天桥, 上, 就, 看到了, 一, 对, 校, 服, c, p, 在, k, i, s, s !!!!!!!
当我想描写一下的时候就感到自己的语文功底zhuoji了.
阅av无数的我从没见过如此深情的kiss. 嘛, 就是一副就要负距离接触的样子.
btw校服是我不认识的校服. 有点像玉林中学那种蓝黑配色, 但是蓝色要偏灰一些.
心中受到一万点暴击的laekov面无表情地走过去了.
然而好后悔啊. 当时应该走上去拍拍那哥们, 然后递上一包杜蕾丝, 曰, 哥们, 开这辆车要注意安全啊, 不要像我一样车没毁人先亡. (雾, 怎么能这么没节操呢)
然而并没有这么高端的道具.
23333333333.
所以我还是太年轻啦.</description>
    </item>
    
    <item>
      <title>20160427 三诊day1</title>
      <link>/diary/76c3c6/</link>
      <pubDate>Wed, 27 Apr 2016 21:59:39 +0000</pubDate>
      
      <guid>/diary/76c3c6/</guid>
      <description>人工高考倒计时40天.
三诊昂. 早上不用辣么早到校, 然而还是只有辣么早去教室坐起. 幸好教室不是考场. 幸福ing.
于是一觉碎到考试. 原来考前不能进考场啊瞬间幸福感++.
语文考试似乎很奇怪? 真的把散文当成传记了幸好没做它. 多材料把分值看错了真是**. 作文也不是时评啊. 感觉三诊语文就是给大家娱乐的?
中午太阳蛮不错的然而不敢打球. 去操场逛了几圈之后颓废地睡觉.
下午数学. 开考之前先看最后一题, 从没见过如此轻松愉快的最后一题. 然后, 就, gg, 了.
所以说flag不要立得这么厉害啊.
被一道立几填空卡了至少10min还算错了. 幸好最后检查的时候检查出来了.
最后一道填空也没做对. 最近太痴迷于求导以至于忘记了正常的做题方法.
解几题真不是让我们开心的? 然而真的还算错了. 俩整数搞出了\(\sqrt{2}\). 幸好检查了一下发现了.
最后一题求导的时候忘了\(e^x\)的分母上还有x了啊我摔.
晚上打cs. 感觉自己的技术真的差到家了. QwQ.
然后去把MathJax造成了公式编辑器. 然而辣么简单的东西我居然造了辣么久. 没救了. QwQ.
打算再造个画图的玩意. 但是突然懒癌发作不想造了.
所以我还是太弱啦.</description>
    </item>
    
    <item>
      <title>20160426</title>
      <link>/diary/86bf7f/</link>
      <pubDate>Tue, 26 Apr 2016 21:17:34 +0000</pubDate>
      
      <guid>/diary/86bf7f/</guid>
      <description>人工高考倒计时41天.
明天三诊呐. 都已经没有什么感觉了.
白天被数学题卡了好久. 最后发现自己真是zz.
太阳不错可惜没有机会打球.
晚上接着颓cs. 有人表示我应该找一个能督促我学习的GF? QAQ
又颓废过去了好伤心. 明天考试需要找一点事干. (雾)
然而我的心还是会跳啊. 真是大新闻.
ygh表示srk评论会变成空的? 然而我真的什么也没有做啊?
所以我还是太年轻啦.
Historical Comments yeguanghao at 2016-04-27T01:21:44 并不是会变成空的，只是显示Error了……看来是被据掉了啊，明明140字都不到qwq
yeguanghao at 2016-04-27T01:22:14 何姥爷三诊加油</description>
    </item>
    
    <item>
      <title>20160425</title>
      <link>/diary/58a1f3/</link>
      <pubDate>Mon, 25 Apr 2016 22:36:44 +0000</pubDate>
      
      <guid>/diary/58a1f3/</guid>
      <description>人工高考倒计时42天.
早上升旗的时候国旗班交接. 这个交接没有太阳.
想起去年的交接. 一年过去了. 手动骨灰.
体育课打球happy. 成功地对lym反帽虽然我感觉运气成分很大. 求lym以后不要每场专门来帽我啊qwq.
下午的时候有个奇怪的心理辅导. 某些人真是破坏气氛啊. 在地上滚的时候好痛qwq.
晚上发现从没见过如此水的导数题.
然后看杂志看了一个小时ovo.
晚上回家终于记得了刮胡子.
还要打作文ovo.
btw @yeguanghao, 说周末穿校服在外面混的多半是高新的是有道理的啊.
例证一, 我高一的时候去嘉祥参加一个多校活动. 高新坐的那边全体整齐的白色校服. 林荫这片一副社会中学的着装. 印象深刻.
例证二, scoi2015在uestc的集训. 当年穿校服混的多半也是高新的吧.
结论, 高新的同学比林荫的同学遵章守纪爱学校.
Historical Comments yeguanghao at 2016-04-26T02:23:46 yeguanghao at 2016-04-26T02:24:42 yeguanghao at 2016-04-26T02:25:08 为什么我只能发空回复，触发了什么奇怪的bug吗
yeguanghao at 2016-04-26T02:25:22 我可能是太久没有去学校，也太久没有穿校服，完全无感ovo
yeguanghao at 2016-04-26T02:25:37 回复有字数限制的吗ovo
yeguanghao at 2016-04-26T02:26:13 不要在意我刷回复啊……迷之字数限制
yeguanghao at 2016-04-26T02:26:22 而且现在没有lk的大型情感连续剧可以看了，只有看您的了ovo
laekov at 2016-04-26T19:24:07 @yeguanghao 你发了什么? 超长应该会被直接拒绝掉啊
laekov at 2016-04-26T19:26:34 还是说奇怪的标点会爆炸? ~!@#$%^&amp;amp;*()_+{}|:&amp;quot;&amp;lt;&amp;gt;?`1234567890-=[];&amp;rsquo;,./
laekov at 2016-04-26T19:27:01 毫无问题啊.</description>
    </item>
    
    <item>
      <title>20160424</title>
      <link>/diary/0f02ca/</link>
      <pubDate>Sun, 24 Apr 2016 23:43:07 +0000</pubDate>
      
      <guid>/diary/0f02ca/</guid>
      <description>人工高考倒计时43天.
晚上折腾桥接路由器. 然后差点忘写qwq.
早上在图书馆做作业, 对面居然坐了一个穿cdqz校服的女生. 好神奇. 我猜周末还穿校服的多半是高新的?
下午接着做作业. 然后学习了一下进阶的洛比达, 还有taylor的一系列东西. 感觉好神奇好神奇好神奇. 姿势水平++. 然而高考并不能用拉格朗日中值定理什么的qwq. 外国人名好难记
晚上打cs的ping都100+了, 不时还能上200, 玩ball啊. 只有单机打bot了. 感觉这个网络已经坑废我两个游戏了sad. 后来发现似乎ping局域网网关都要100? 然后去折腾路由器桥接. 好烦啊. 最后发现两个的ssid要一样才行. 然后就感觉好鬼蓄. mac过滤也没法同步, 只好退回密码时代ovo.
然而流量不够必需等到11点之后再上网TAT.
姐姐说最后一个月左右巴不得明天就高考了, 想想还挺有道理的ovo.
所以我还是太年轻了.
Historical Comments yeguanghao at 2016-04-24T23:51:37 高新的周末也不穿校服好吗，手动再见
ArtemisLiu at 2016-04-27T23:07:27 我上镜了诶ovo
ArtemisLiu at 2016-04-27T23:08:35 我上镜了诶ovo</description>
    </item>
    
    <item>
      <title>20160423</title>
      <link>/diary/a77dad/</link>
      <pubDate>Sat, 23 Apr 2016 21:48:15 +0000</pubDate>
      
      <guid>/diary/a77dad/</guid>
      <description>人工高考倒计时44天.
ovovoov.
上午好颓.
然后就喝了白花蛇草水. 整个人都发神经病了.
中午去打了会球. 感觉还是有点准啊. 怎么打起来就不行了呢?
下午考数学ovo. 同学们你们要不要这么夸张啊ovo.
晚上又练习英语作文ovo. 然而高考英语打死上不到140 sad.
所以, 我还, 是, 太, 年轻, 了.</description>
    </item>
    
    <item>
      <title>20160422</title>
      <link>/diary/d6e0d8/</link>
      <pubDate>Fri, 22 Apr 2016 22:31:41 +0000</pubDate>
      
      <guid>/diary/d6e0d8/</guid>
      <description>人工高考倒计时\(3^2*5\)天.
白花蛇草水到货了happy. 最近作死技能++. 明天先拿去让yzy试试毒2333.
早上依然好困.
下午理综又爆炸了. 明明中午还给了门口拉二胡的老爷爷整整1元钱诶. 生物3道选择题gg. 物理倒数第二题总觉得多给了条件, 最后五分钟才看出坑然后生死时速算错了失败sad.
晚上听到了久仰的罗晓辉老师的课orz. 罗老师真是生动形象orz.
所以我真的是太年轻了.
Historical Comments ArtemisLiu at 2016-04-27T23:05:50 魏总说，一元钱也想考好理综hhh~</description>
    </item>
    
    <item>
      <title>20160421</title>
      <link>/diary/1c72b2/</link>
      <pubDate>Thu, 21 Apr 2016 22:32:48 +0000</pubDate>
      
      <guid>/diary/1c72b2/</guid>
      <description>人工高考倒计时46天.
依然是颓废的一天.
早上数学课半节课做6道导数题. 然后发现自己经过上周末的练习之后似乎求导技巧++? 然后又算错了一大堆弱智地方. 最后一个题不能用参变分离硬上失败 sad.
化学乐学某中做完辣hahaha.
下午生物实验题感受到了绝望.
晚上花了一个小时颓废_哑舍5_. 没救辣.
所以我真的是过于年轻了.</description>
    </item>
    
    <item>
      <title>20160420</title>
      <link>/diary/9146b8/</link>
      <pubDate>Wed, 20 Apr 2016 22:32:26 +0000</pubDate>
      
      <guid>/diary/9146b8/</guid>
      <description>人工高考倒计时47天.
接着颓废的一天.
上午做数学卷子ovo了.
下午又做适应考试数学卷子错了一pala一副要下100分的样子啊. 3道填, 三角函数搞错定义域, 概率题没考虑概率, 立几题算错了, 解几题没算出来 23333333 没救啦.
体育课作死地在阳光下打球然后差点中暑. 命中趋近于0好痛苦. 好**累. 主要是还没习惯夏天的节奏.
然后去买了瓶汽水结果导致整个晚上都想吐. 一定是汽水里的有机酸和\(H_2CO_3\)导致我体液里的离子平衡移动, 缓冲合体系中的大量\(HCO_3^{-}\)与\(H^{+}\)结合生成碳酸, 碳酸分解为\(CO_2(g)\)导致胃里一股要冲出来的感觉. 如果手边有一瓶\(NaOH\)我一定甘之如饴一饮而尽. 想想晚自习的时候廖老师说他拿酸性\(KMnO_4(aq)\)泡脚, 感觉这也挺温和的吖.
晚上尝试跑步回家. 夜幕下的城市也另有一番味道ovo 等窝有空了晚上跑远点去拍夜景玩. 然而真的有1km么? 感觉地图测距逗了? ovo
今天在zhihu上看到若干强行orz的文章笑疯了.
总之啊, 我还是太young了.</description>
    </item>
    
    <item>
      <title>20160419</title>
      <link>/diary/73a189/</link>
      <pubDate>Tue, 19 Apr 2016 22:31:51 +0000</pubDate>
      
      <guid>/diary/73a189/</guid>
      <description>高考倒数\(2^4*3\)天.
cyl太神辣.
早上数学课. 然后发现窝的数学还是很捉鸡啊. 最近智商严重下降怎么办.
下午考英语. 很难得听力有错, 而且还错了两道. 专注力太低了以及听不清啊声音太大了摔. 还有各种神奇的题. grow up the back fence是什么玩意.
晚上立了个flag叫作业太少. 然后做化工做了一节课, 然后物理课代表写作业, 于是做物理做了两节课. 心力憔悴ing. 而且物理没有做对a single大题. 真是*了poi了.
btw光腚局封papi酱真是脑子进noi了.
所以我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20160418</title>
      <link>/diary/7ef389/</link>
      <pubDate>Mon, 18 Apr 2016 22:23:30 +0000</pubDate>
      
      <guid>/diary/7ef389/</guid>
      <description>人工高考倒计时\(7^2\)天.
maya今天忘撕倒计时纸了.
一张解几卷子做得心力憔悴sad. 其实就是自己老是把简单的数值运算搞错或者是符号搞反什么的. 以及有个题确实想麻烦了.
上周末理综正常炸tat.
中午钦妹请客吃饭excited. 肿么感觉小白被带了这么久还没被带坏啊. lyx太神啦. hobo的生活似乎比我还惨233.
英语课jby迷一样地背锅了. &amp;ldquo;jby你好讨厌啊&amp;rdquo;. 2333333. 明明就是自己点到ppt左下角的控制条啦. 都发生了好多次了居然都没发现? or水坝老师只是在卖萌? 感觉后者也有道理诶.
唉所以我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20160417</title>
      <link>/diary/571a72/</link>
      <pubDate>Sun, 17 Apr 2016 22:30:25 +0000</pubDate>
      
      <guid>/diary/571a72/</guid>
      <description>离高考还有50天.
半百了. 高三下过去一半了.
似乎也没发生什么大不了的事.
昨天和姐姐交流人生之后发现自己是不是太颓废了一点. 以及找妹子这种事真的就是随缘. 单着也挺好ovo.
然后发现今天似乎过得挺不颓废的.
刷完作业刷微积分然后发现教材习题答案是错的.
发现自己的微积分太差了.
yzy发来了zhihu的链接, 于是研究了一下随机游走问题. 然而感觉自己智商不足啊. 主要是数学功底不行. 以及zhihu上那个大大的算法真的好机智orz.
晚上代写英语作文发现自己英语zhuoji了. 以及pigai.org的雷同查询居然辣么厉害.
czr安利的react.js和flux也灰常厉害的样子. 感觉这样有两个巨大的好处. 一是可以给服务器省一大把流量. (其实这个思路有点像我做srk的时候想的&amp;quot;把渲染工作交给前端&amp;quot;的味道). 二是造移动端app会非常方便.
然而今天都没有运动.
想起一句很久没有说过的话.
毕竟我还是太年轻了.</description>
    </item>
    
    <item>
      <title>空间随机游走位移平方期望及证明</title>
      <link>/random/a71b9d/</link>
      <pubDate>Sun, 17 Apr 2016 19:31:42 +0000</pubDate>
      
      <guid>/random/a71b9d/</guid>
      <description>原问题: 从数轴原点开始, 每次抛一枚正反概率相等的硬币, 如果是正面就沿正方向走1单位长度, 否则沿反方向走1单位. 设走n步之后的位移为x, 求(x^2)的期望(E(x^2)).
答案是n. 即随机游走时, 位移的平方的期望为步数. 并且这个结论可以推广到k维.
(因为我的三角函数太捉鸡所以只推了2维, 但是目测了一下更多维都是对的)
看了zhihu上的一篇答案是关于一维情况的证明, 我受到了启发. 链接在这. 答主用的我不认识的东西有点多. 所以他证明过的部分我还是用自己的语言重新写一遍.
设第i次移动的位移为(x_i).
引理: 对于两次不同的位移(x_i)和(x_j), ( E(x_i*x_j)=0).
这个很好想, (x_i)的有0.5的概率为1和-1, 列个分布列(雾), 答案显然为0.
证明:
$$E(x^2)=E((\sum_{i=1}^n x_i)^2)$$
$$E(x^2)=E(\sum_{i=1}^n x_i^2) + 2E(\sum_{i=1}^n\sum_{j=i+1}^n(x_ix_j))$$
后面那坨的E可以扔进里面去, 根据引理该部分值为0.
前面那部分显然有
$$x_i^2=1$$
于是得证
$$E(x^2)=n$$
然后是向高维推广. 这里是二维的证明.
只需要改引理.
对于两次不同的位移(\vec{a_i} )和(\vec{a_j} ), (\vec{a_i} \cdot \vec{a_j} = 0 )
证明: 设两个向量的角度分别为( \theta_i )和( \theta_j ).
$$ \theta_i , \theta_j \in [0, 2\pi) $$
因为它们都是单位向量, 所以 $$\vec{a_i} \cdot \vec{a_j} = cos(\theta_i - \theta_j) $$</description>
    </item>
    
    <item>
      <title>20160416</title>
      <link>/diary/84e1c7/</link>
      <pubDate>Sat, 16 Apr 2016 22:02:15 +0000</pubDate>
      
      <guid>/diary/84e1c7/</guid>
      <description>高考还有51天.
a day.
上午昏昏欲睡昏昏欲睡昏昏欲睡.
下午理综内心是绝望的.
然后去打球. 平行班的同学好厉害的样子. 打不过啊tat.
然后接着颓废qaq.</description>
    </item>
    
    <item>
      <title>20160415</title>
      <link>/diary/8d781c/</link>
      <pubDate>Fri, 15 Apr 2016 22:41:11 +0000</pubDate>
      
      <guid>/diary/8d781c/</guid>
      <description>人工高考倒计时52天.
今天晚上终于找到了倒计时天数的bug. 已经出现了两次计数器没有&amp;ndash;的情况了tat 然后真的就人工改了.
什么时候寄快递都要用身份证了啊喂.
下午去了一个奇怪的采访. 问我想像一下十年后自己在干啥. 当然是在找bug啦. 感觉没救诶.
本来为了晚自习被喝茶而狂做作业的. 然而语文老师表示没空喝茶. 晚自习空虚寂寞冷啊. 然后就在那搞周末作业. 周末作业好神啊tat. 我猜结局是明天发现自己漏做了作业.
于是一天又过去了.
为什么我的心还会跳?
多半是我太naive了.
strange.</description>
    </item>
    
    <item>
      <title>20160414</title>
      <link>/diary/3d13f5/</link>
      <pubDate>Thu, 14 Apr 2016 22:46:16 +0000</pubDate>
      
      <guid>/diary/3d13f5/</guid>
      <description>NCEE倒计时53天.
啊喂tyh你想要invite code直接找我要不就得了ovo
又是迷之一天.
早上颓.
中午出去买了一瓶红色尖叫. 酸爽. 喝一口就像被充了电一样. 然后一下午加一晚上总共喝了\(\frac{1}{5}\)瓶.
然而找了半天没有地方卖邮票. sad.
下午充电很有效.
似乎明天有个奇怪的锅. 烦.
晚自习. 杜老: f**k, 我电脑死机了文档没保存. 求恢复.
众人看向laekov.
laekov: @sf 你怎么不见了?
laekov: 你们windows世界的东西我怎么知道.
laekov掏出手机百度了一下.
laekov在windows某个文件夹里找到了缓存的文档.
杜老: 信竞同学修电脑水平就是高.(口糊的)
laekov: f***.
Historical Comments tangyuhao at 2016-04-16T12:44:39 2333</description>
    </item>
    
    <item>
      <title>20160413</title>
      <link>/diary/7709d6/</link>
      <pubDate>Wed, 13 Apr 2016 22:30:03 +0000</pubDate>
      
      <guid>/diary/7709d6/</guid>
      <description>高考前54天.
上午颓.
上周五理综似乎全科班上倒数. 怕挨批怕了一天.
下午颓.
打球出了一身汗, 然后, 就, 结晶, 了qwq 然而命中率几乎为0.
晚上吃完饭遇到f, 然后和他出去逛书店结果遇到了一脸震惊的jh和sf.
然后才知道发生了奇怪的事.
然而我也不知道这件事.
唉. 真正的结束么.
还没看. 等会夜深人静再看.
反正她也不会看我写日记了吧.
事实上I turned down everyone.
没错我就是一朝被蛇咬, 十年怕井绳.
所谓长痛不如短痛. 人长大了, 就应该懂得现实.
活在梦里真是不可取呢.
然而现在连自己要做什么都不知道呢. 真希望哪天走在街上我就被车撞去和上帝谈人生了.
唉怎么能这么想呢.
qwq</description>
    </item>
    
    <item>
      <title>20160412</title>
      <link>/diary/71c156/</link>
      <pubDate>Tue, 12 Apr 2016 22:30:39 +0000</pubDate>
      
      <guid>/diary/71c156/</guid>
      <description>高考前55天.
早上数学考试真**生死时速啊. 然而最后一题还是搞错了sad.
然后中午去交表结果又背了个奇怪的锅. 三氧化萌说退役竞赛党就是被班主任嘲讽的然而我怎么就直接升级成班主任的苦力了呢.
然后发现这啥鬼啊adam你没说清楚选人的要求啊填ball喽.
还有早上起来收到一发匿名来提神醒脑ovo 这几天明明就是因为脑子烧坏了所以神经不正常嘛.
鉴于对面的人自称是妹子, 据说妹子说话是反的. 叫我不要猜的意思就是要我猜一猜是谁?
所谓言多必诗?
说那么多话就是方便我猜啊. (猜错了求不打我)
首先对面是个女生.
然后对面管我叫&amp;quot;学神&amp;quot;, 这就能排除掉15班的所有人和搞oi的所有人.
而且对面还知道我会天天写日记. 在床上滚来滚去似乎是前两天回忆起去年scoi? 知道这个网站而且不搞oi的人. 想了想似乎只有一个了.
再说啊对面知道我晚上睡觉的时间比较早, 知道我学习不认真是因为被钦定了, 话里面明显一股文科生的味道, etc.
总之不要成天东想西想的啦认真学习把高考考好才是硬道理. 这句话我肯定不是在说我自己是吧.
其实嘛完全没有必要匿名啊. 我大概也就是会感到受宠若惊for 10分钟吧.
猜对了请点个赞啦(虽然不知道对面什么时候会看到). 猜错了请点15个dislike.
鄙站注册邀请码在这16aa0e1bb8a91303.</description>
    </item>
    
    <item>
      <title>20160411</title>
      <link>/diary/a1dc7f/</link>
      <pubDate>Mon, 11 Apr 2016 22:25:36 +0000</pubDate>
      
      <guid>/diary/a1dc7f/</guid>
      <description>高考前56天.
二诊踩noi造成了深远的影响.
上午好困. 数学课心不在焉不在焉在焉焉. 然后没做完卷子sad.
打球开始向外面蹭开始搞眼神防守233.
qbq居然还没来? 要孤单寂寞冷了.
下午考英语. 作文好长好长好长.
晚上换坐位. 同桌开脑洞说每个人都有若干愿意坐的位置问存不存在使每个人都满意的方案. 我: 这不是最小割裸题么. 然后开始莫名伤感.
乱死了.
做白日梦的时候想抱着妹子睡觉. 然而并看不清妹子的脸qwq 没救啦.</description>
    </item>
    
    <item>
      <title>20160410</title>
      <link>/diary/3de88f/</link>
      <pubDate>Sun, 10 Apr 2016 22:28:57 +0000</pubDate>
      
      <guid>/diary/3de88f/</guid>
      <description>高考57天.
今天是他们的scoi. yjq虐场了. 去年预言对了一半呢. 然而我不是坐着看的而是跪着看的. zms也进队了呢. 然而zms居然没拿到a队? 真是太丢脸了. (雾)
上午做作业.
下午打cs.
晚上本来还打算打cs的然而被拉去打球了.
想想上次打乒乓都是高二的事情了呢. 后来就再也没有打过羽毛球和乒乓球. 想到上回在这打乒乓还抱着pad啃猫疼死函数快速求值的论文原版. hhh
似乎早就死了呢. 退役之前从来没有一个周末像现在这样用全部时间来打游戏. 每天至少一道bzoj从noip坚持到noi. hhh 然而现在真的是没有任何事干.
当年的JuNe现在连42都拿不稳了. 当年的laekov现在拒绝看任何oi题. 在不断的被kill中学会了麻木地接着该干啥干啥. 不要相信自己是unique的这种骗人的鬼话. 一个人就是应该淹没在人海里. 我的期望是0.5. 知足吧.
唉某些人还是退役了呢. 所以说啊不要去给自己立flag. 没关系心若在梦就在. 即使梦没了随风去远方也是一种解脱呢(向往脸).</description>
    </item>
    
    <item>
      <title>20160409</title>
      <link>/diary/fccc15/</link>
      <pubDate>Sat, 09 Apr 2016 19:31:48 +0000</pubDate>
      
      <guid>/diary/fccc15/</guid>
      <description>高考倒计时58天.
昨天理综explode了啊sad. 有机居然错了一堆虽然是看错题了但是还是很伤心.
物理最后一题辣么水qwq.
下午考语文那神奇的作文题ovo.
然后去打球. 小朋友防守的时候怎么打人啊ovo.
然后看到了cdqz众的省选成绩.
我表示目瞪口呆.
目瞪口呆.
目瞪口呆.
目瞪口呆.
目瞪口呆.
为了表示我的目瞪口呆
然后入了csgo. 感觉我要颓得没救了.
然而要下一个半小时. 说好的10m下载速度呢?
而且因为自己手贱把callback网页关掉了所以复了两份钱. 把自己蠢哭了. 坐等还钱(没还也没有救了)</description>
    </item>
    
    <item>
      <title>20160408</title>
      <link>/diary/b81b50/</link>
      <pubDate>Fri, 08 Apr 2016 22:27:11 +0000</pubDate>
      
      <guid>/diary/b81b50/</guid>
      <description>高考倒计时59天.
好像有点热啊.
玩似乎一天都不知道在干什么.
下午考理综. 然后发现自己电磁感应大题似乎很糟糕的样子. qaq.
还错了一pala选择题已爆炸qwq
晚上居然找不到数学卷子了抓狂ing. 真**丢脸.
唉 ovo</description>
    </item>
    
    <item>
      <title>20160407</title>
      <link>/diary/919557/</link>
      <pubDate>Thu, 07 Apr 2016 22:20:10 +0000</pubDate>
      
      <guid>/diary/919557/</guid>
      <description>高考倒计时60天.
又打作文ovo.
白天发生了什么么? 就是感觉时间变得有点快ovo
教室的网迷之好了. 难道之前一直是yjq在搞ddos? @yjq
变身打字员形态laekov. qwq</description>
    </item>
    
    <item>
      <title>20160406</title>
      <link>/diary/b99eae/</link>
      <pubDate>Wed, 06 Apr 2016 22:20:43 +0000</pubDate>
      
      <guid>/diary/b99eae/</guid>
      <description>高考前61天.
依然没劲. 中午抢饭都跑不动. 晚上做化学作业做得想吐.
土神表示窝最近很&amp;quot;犀利&amp;quot;. 明明是无精打采嘛.
体育课和cyl和ymw坐在曦园晒太阳. cyl回忆起搞oi的时光表示自己太浪. 然后晚自习就被adam水表了23333.
然而搞oi的那群孩子怎么都不写日记了啊ovo难道是没网qwq去年窝们省选的时候那家酒店的网好好的啊.
想起了去年省选一个人住大床房在床上滚来滚去好开心233. 以及考前的flag大会啥的. 也许现在想起比较后悔的一件事情就是没有和大家好好颓废吧.
事实上华迪楼下的那家酒店比uestc门外那家好些2333. 反正uestc毕竟too young.
一年都过去了诶ovo
Historical Comments Miles at 2016-04-06T22:28:15 我发现刷新一下visit就会多一个&amp;hellip;smg
Miles at 2016-04-06T22:28:41 好好玩ovo
laekov at 2016-04-06T22:30:22 求不刷访问量qaq</description>
    </item>
    
    <item>
      <title>20160405</title>
      <link>/diary/cda6f7/</link>
      <pubDate>Tue, 05 Apr 2016 22:28:05 +0000</pubDate>
      
      <guid>/diary/cda6f7/</guid>
      <description>高考62天.
到底是我穿多了还是我穿少了啊f***.
整个人的脑子都不好用了.
如果有来生
我要当一只鸽子
在名叫自由的天空里盘旋
没有智商去思考
为什么要飞翔
然后变成了红杏的烤鸽子(逃)
晚上发现科技楼应该是有故事的昂. 然而每天急着回家并没有机会去探寻. 其实是怕挨打不敢2333.
爹的竞聘题居然是小学奥数? smg.
听说hnsdfz进了四科五个国家队. 膝盖已烂.</description>
    </item>
    
    <item>
      <title>20160404</title>
      <link>/diary/c2b4cd/</link>
      <pubDate>Mon, 04 Apr 2016 16:02:47 +0000</pubDate>
      
      <guid>/diary/c2b4cd/</guid>
      <description>高考还有63天. 好想回去扯这个整数啊.
清明节. 呐, 请祝我节日快乐.
又晕又烧还要做作业qwq
尤其是做的还是生物作业. 生物作业还辣么多. 内容还是调节woc. 一边感受自己的下丘脑和各种腺体在抽搐一边做调节题的感觉真是太美妙了.
czr似乎又造出了厉害的东西太强了orz. 然而我连打开终端的力气都没有. 我就是一个只pull不push的主感觉没救了.
maya一定是rp被守衡了.
Update:
晚上没事被完了一部电影叫_左耳_. 这, 原来别人的高三100天这么开心啊还可以去酒吧勾搭妹子还成天到处跑23333. 还有高考584的女主居然可以去一个北京的好大学? 别急女主你去上理是学什么专业的? 难道女主是搞oi的?
原来我上小学那个年代的生活是那样的. 原来放学之后还可以去废弃作坊楼顶看海. 互联网浪潮早就开始了. 男主拿vc6搞工程感觉好厉害的样子(看到了各种恶心的win api) 手速被完暴了maya. (是不是关注点都跑偏了)</description>
    </item>
    
    <item>
      <title>20160403</title>
      <link>/diary/7da6ac/</link>
      <pubDate>Sun, 03 Apr 2016 18:53:06 +0000</pubDate>
      
      <guid>/diary/7da6ac/</guid>
      <description>NCEE64天.
似乎生病了wtf.
早上说晚点起然而还是起来做作业去了然而没做完.
czr写的东西好神啊.
下午去剪了个头发. 出去逛了一圈. 回家玩了一下steam上的某个有点像bf2的游戏.
然后开始头痛了. 然后开始冷. 多穿了一层都还是冷. qaq
这个冬天一场烧都没发过啊. 难道是要我还回来么?
很怀疑是不是剪头发之后头部温度不正常导致下丘脑温觉感受器不正常了?
sad.
update
一吐为快￣へ￣</description>
    </item>
    
    <item>
      <title>20160402</title>
      <link>/diary/a6f602/</link>
      <pubDate>Sat, 02 Apr 2016 19:50:03 +0000</pubDate>
      
      <guid>/diary/a6f602/</guid>
      <description>高考前65天.
好无聊啊. 什么都不想干.
早上ovo
中午ovo
下午考理综. 感觉题有点难. 感觉要爆炸了要被骂了. 然后就发答案了. ovoovoovo
想玩ed然后发现好无聊wifi还不停地爆炸.
没救了qwq</description>
    </item>
    
    <item>
      <title>20160401</title>
      <link>/diary/83b064/</link>
      <pubDate>Fri, 01 Apr 2016 22:27:46 +0000</pubDate>
      
      <guid>/diary/83b064/</guid>
      <description>人工高考倒计时66天.
April fool! 本来想匿名去乱搞来着 = = 然后就搞忘了. 真是瞬间老了10岁.
作业没做完qwq
中午去拍花遇到adam. adam鼓励我下回进年级20. 这&amp;hellip; 当时觉得真是得寸进尺啊. 下次不出前200就烧高香了. 他说有目标就有动力? kidding?
在学生节看到了嘉祥的校服. 本来想说熟悉来着再想想似乎不熟悉啊. 现在的校服样式是我走之后才换的我怎么会熟悉ovoovo
下午注意力好差.
于是总是会忘记我想写什么. qwq</description>
    </item>
    
    <item>
      <title>20160331</title>
      <link>/diary/899650/</link>
      <pubDate>Thu, 31 Mar 2016 22:37:34 +0000</pubDate>
      
      <guid>/diary/899650/</guid>
      <description>离高考还有67天.
day二诊出成绩.
总分663, 年排42. 高中以从来没进过前100, 这还是第一回. happy. 我真是踩到狗noi了.
数学居然被扣了7分过程分. 难得的ak机会从指间溜走了.
物理各种黑幕然而最后一题居然把磁感应强度2B的周期忘了除二了qwqwqqq
化学还是弱.
语文年排似乎在从上到下若干人的每科单科和总排里数字都是最大的. 娘亲: 我看到你的语文就知道我没看错这是你的成绩了.
总之考得似乎有点出乎意料. 虽然没有ball用.
送自己一句话.
举世誉之而不加劝 举世非之而不加沮
另外想起想记下来_苍彼_完结感受一直都搞忘了来着.
飞翔是窝从小向往的, 虽然从没实现也不大可能实现. 退役的男主最终也没有成功飞起来. 人总是要认命的. 以及最重要的是__百合大珐吼!__
以及晚自习打蚊子去了qwq为啥蚊子那么多. 果然是春天来了啊. 其实是各种人赢在打击单身汪, 然而窝没有妹子sad.
Update: 每天都会忘记要写什么qwq
中午去逛学生节. 高一学生节, 我在305刷题. 高二学生节, 我在404玩steam. 高三学生节, 我想不去看看高中生活就不完整了. 然后发现我已经和这个世界格格不入了.
晚上专程去闻七里香, 但是没有闻到丝毫香味. 黑暗的空气里一个人站在长廊里, 想起了他们讲的音乐厅事件, 然而更多的也许是羡慕? 细想, 春天是花开的季节, 也是花落的季节呢.</description>
    </item>
    
    <item>
      <title>20160330</title>
      <link>/diary/5b9915/</link>
      <pubDate>Wed, 30 Mar 2016 22:22:24 +0000</pubDate>
      
      <guid>/diary/5b9915/</guid>
      <description>高考还有68天.
总觉得日期依然没对然而找不出bug来. 他们说今天这个数字很特殊呢.
键盘没电了?
二诊之后诸君一片呜呼哀哉然而感觉作业突然又变多了qwq.
似乎也没发生啥.
英语作文依然上不了20.
利用数学课刷完了_哑舍_也是没救了.
晚上顺手刷了一下lofter发现yjq表示要scoi了心里很虚?
虽然yjq大概并不能在省选之前看到ovo我来随便扯两句.
什么叫今年要紧张死了嘛. 一届届不都是这样过来的么. zhx高一也没进队嘛23333 我高一的时候都不知道进队是干什么的.
反正今年mhy也不考scoi, 看看去年scoi时高一的人的水平也不虚了啊.
实在不行就安慰自己_得之我幸, 失之我命_了呗. 大不了回来搞高考嘛. uestc其实挺不错的, 至少气候好.
以及啊再不要脸一点想就算你故意暴0也有c类啊. 不就是10w大洋么钱又不是你出又不用还虚什么. 反正现在a队也就加5分并没ball用.
以上. 来自scoi2015前一天没睡好的hja.
总之祝您rank1. 不rank1请饭可好?</description>
    </item>
    
    <item>
      <title>20160329 二诊day2</title>
      <link>/diary/f71d28/</link>
      <pubDate>Tue, 29 Mar 2016 22:48:22 +0000</pubDate>
      
      <guid>/diary/f71d28/</guid>
      <description>高考倒计时69天.
二诊day2.
我确定时间不对然而没找出bug. qwq
必需要吐槽物理这黑幕太吓人了. 然而我还是算错了最后一题怎么办qwq
化学同分异构凭啥我那种就不行啊. 题又没给信息.
然后感觉难度都集中到英语上了?
念听力的时候感觉那俩人说的真是英语么??? 辣么慢语调还很奇怪. 然后阅读题又臭又长题还刁. 后面的玩意也不太开心.
感觉我没救啦.
然后发现数学的答案似乎都是对的? 题果然水然而为啥一堆人怨声载道呢?
难道是我刷哑舍被老板附身了?
唉没救.
然而google又炸了. 每次炸都unhappy. 连google都上不了**还有什么希望.</description>
    </item>
    
    <item>
      <title>20160328 二诊day1</title>
      <link>/diary/f61528/</link>
      <pubDate>Mon, 28 Mar 2016 20:59:18 +0000</pubDate>
      
      <guid>/diary/f61528/</guid>
      <description>高考倒计时70天. 怎么又觉得时间不对了呢.
二诊day1. 忘记带手机去玩了ovo于是感觉一天都在睡觉.
难度不会凭空产生也不会凭空消失, 只会从day1转移到day2, 或者从上午的考试转化为下午的考试.
语文作文是啥鬼啊. 感觉不知道自己在写什么.
中午在教室玩得好high. qwq
谁说下午数学会很难来着.
连我这个弱渣都能做完玩20min.
公交车上好大一股脚臭味啊qwqwqqq
终于有了翅膀. 然而是变形的翅膀, 飞起来各种不平衡sad. 只好打消了在rc里飞翔的念头. 作为民航的孩纸飞翔为什么总是只能是一个梦啊qwq
唉唉没救啦. 明天理综肯定爆炸了sad.</description>
    </item>
    
    <item>
      <title>20160327</title>
      <link>/diary/0ff0ca/</link>
      <pubDate>Sun, 27 Mar 2016 19:04:50 +0000</pubDate>
      
      <guid>/diary/0ff0ca/</guid>
      <description>高考倒计时71天.
因为没作业所以玩了一天, 都没拿过笔. 感觉明天会跪.
robocraft毒性也比较强qwqqqq. 好想飞啊.
中午去打球, 感觉命中up之后比较爽. 然而其实命中还是low. 人生第一次转身成功ovo 若干次抢到板又送出去被对位的哥子怒斥qwq 我只是站在篮下命中太低qwq
于是回家洗澡之后整个下午晚上都是一股虚弱感qwq
颓到暴. zhx说找一个妹子很重要. 我qwqwqwqwqwqqwqwqwqwqwqwqwq
没救啦.
Historical Comments Miles at 2016-03-27T19:31:45 高三了为什么还可以没作业unhappy
laekov at 2016-03-28T18:17:10 因为已经颓废了一周了啊. 今天二诊.</description>
    </item>
    
    <item>
      <title>20160326</title>
      <link>/diary/732adc/</link>
      <pubDate>Sat, 26 Mar 2016 21:01:14 +0000</pubDate>
      
      <guid>/diary/732adc/</guid>
      <description>高考倒计时72天.
还有辣么久昂qwqwqqq.
早上感觉各科老师都在闲扯呢. 除了adam.
于是中午打球就被盯到了qwq
下午考理综做得飞快然后就错了6道选择题.
晚上颓rc然后发现怎么wifi炸了啊unhappy. 然后使用移动路由器30cm的方法增强了信号. 感觉好神奇ovoovo然而在自己屋子里信号还是不行qwq
sad</description>
    </item>
    
    <item>
      <title>20160325</title>
      <link>/diary/37e89a/</link>
      <pubDate>Fri, 25 Mar 2016 22:41:10 +0000</pubDate>
      
      <guid>/diary/37e89a/</guid>
      <description>高考前73天.
颓废的好日子过完辣.
然而被同桌拉进了坑.
于是一天淦完一本半小说. 同桌表示窝看书好快. 窝表示窝可是看妖少的书长大的, 后来又看带鱼. 一天三百章的事都干过, 区区两百页何足挂齿ovovovovo
然而后面还有一堆. 此坑略大. 为什么会被这种奇怪的小说缠住呢? 难道只是因为看到作者的照片觉得长得很像***.
感觉好喜欢那个宫女啊ovoovo然后又想人生里的巧珍233333
唉唉没救啦.
二诊肯定爆炸了qwq</description>
    </item>
    
    <item>
      <title>20160324</title>
      <link>/diary/38bce8/</link>
      <pubDate>Thu, 24 Mar 2016 22:37:48 +0000</pubDate>
      
      <guid>/diary/38bce8/</guid>
      <description>离高考还有74天.
水水水水水水水水水水.
早上在和生物知识点做斗争. 然而选修教材好多东西好奇怪. 挖的空更奇怪.
然后接着水水水水水.
中午买的qbq晚上就看完了.
中午打球满操场水.
下午的数学考试感觉变简单了? 确实是简单了.
ovoovo非学校老师出的题就是水.
嗯a normal day.</description>
    </item>
    
    <item>
      <title>20160323</title>
      <link>/diary/24ffad/</link>
      <pubDate>Wed, 23 Mar 2016 22:39:54 +0000</pubDate>
      
      <guid>/diary/24ffad/</guid>
      <description>离NCEE2016还有75天.
day体检 = day颓废.
早上做化学题错了5个选择什么鬼.
中午一群人好急啊ovo明明只需要走15分钟嘛.
见到了mhy. happy. mhy表示hja naive. hja表示yjq一定能拿scoi2016 rank1.
听力那间屋好闷. 从没见过那么简陋的测度数的方法. 检查内科的时候太紧张结果自己抽筋了ovo
下午回教室坐了两分钟就下大雨了.
感觉什么也不想做.
我的过去, 现在和未来都掩埋在春天的阴风和落花里了.
教室很大, 然而教室真的很小.
唉.
然后_Tale of Two Cities_真的好难懂qwq.
没救啦.</description>
    </item>
    
    <item>
      <title>20160322</title>
      <link>/diary/65ecab/</link>
      <pubDate>Tue, 22 Mar 2016 22:18:48 +0000</pubDate>
      
      <guid>/diary/65ecab/</guid>
      <description>高考倒计时76天.
颓废++.
早上因为没吃饭所以智商都不见了.
然后被扎的时候似乎没找准血管. ju进去之后duo了至少半分钟才出血qwq
然后早上吃多了于是中午晚上都不想吃饭.
看完了欧亨利, 感觉好无语. 各种神结局还有教我做人ovo
于是又去搞来一本书. 现在书都好贵啊qwq
晚上在那做初中超班的题. 已经不会做初中平几了没救了qwq
感觉要浪翻天了.
qwq</description>
    </item>
    
    <item>
      <title>20160321</title>
      <link>/diary/4e093a/</link>
      <pubDate>Mon, 21 Mar 2016 22:26:30 +0000</pubDate>
      
      <guid>/diary/4e093a/</guid>
      <description>离NCEE2016还有77天.
看书ing(其实是在颓废)
早上把手机摔地上了sad.
睡过去了.
去问化学老师问题然后发现自己ovo
下午似乎还在睡.
晚上接着睡.
想起曾经自由度比现在大多了, 然而也没有睡过这么久. 果然是时代不同了呢.
然而还要打作文.
尝试用md而不是tex, 然后觉得丑哭了而且没有缩进有点难受. 难道我是tex中毒了?
Adam为什么要把英文作文里的引号打成中文引号啊?
真口怕.</description>
    </item>
    
    <item>
      <title>20160320</title>
      <link>/diary/e5288c/</link>
      <pubDate>Sun, 20 Mar 2016 20:26:10 +0000</pubDate>
      
      <guid>/diary/e5288c/</guid>
      <description>高考还有78天.
我有什么理由虚度时光? 我有什么理由不虚度时光?
robocraft好玩. 比当年服务器稳定性提高了, 而且玩法变化似乎挺大ovo
科技树变成科技链了ovovovo
飞起来加上plasma acc之后打轮式robot感觉好开心.
然而一下午晚上都在扯ger. 感觉没救了.
大概真的没救了.
明天看书day1. 怎么玩啊qwq</description>
    </item>
    
    <item>
      <title>MathJax简单配置</title>
      <link>/technical/7d45dd/</link>
      <pubDate>Sun, 20 Mar 2016 16:53:18 +0000</pubDate>
      
      <guid>/technical/7d45dd/</guid>
      <description>在网页上写数学公式怎么少得了MathJax. 然而这玩意因为功能复杂所以比showdown之类的库要难配置一些.
首先从Github上把它clone下来. 然后发现这玩意真的好大. 后来发现是有一堆迷之png.
别人家的cdn的速度从我这来看都不怎么样, 所以还是只能扔到自已的server上.
最简单的用法就是在html head里加一行
&amp;lt;script src=&#39;xxx/MathJax.js?config=default&#39;&amp;gt;&amp;lt;/script&amp;gt; 然后它就会用默认配置在网页加载的时候把那些玩意给转换了.
这里有一个config的文件可以选择. 在unpacked里的default.js里有很详细的说明. (虽然是英文的)
看上去能用了? 然后问题来了. 我的前端是先加载网页框架, 再用js去加载内容, 然而内容加载出来的时候MathJax已经把活干完歇菜了. 显然应该有什么控制单元能随时更新某个element. google了一下发现MathJax有个子类控制单元叫Hub. Hub有个方法叫Typeset, 能重新检查页面.
于是这么写?
$.post(&amp;quot;xxx&amp;quot;, {xx}, function(res) { $(&amp;quot;#xxx&amp;quot;).html(res.content); MathJax.Hub.Typeset(); }); 然而这样的话是不是我每加载一个listitem或者comment都要重新扫一遍整个页面啊? 卡死啦.
于是加了个triggerCount. 麻烦死了.
然后想想觉得没对, 肯定能直接改某个元素啊. 仔细看看document.
Typeset([element[, callback]])
对啊ovo可以直接指定element. 而且还各种类型都资瓷. 在类型这种问题上js比c高到不知道哪里去了.
于是代码写成
$.post(&amp;quot;xxx&amp;quot;, {xx}, functoin(res) { $(&amp;quot;#xxx&amp;quot;).html(res.content); MathJax.Hub.Typeset(getMyId()); }); 搞定啦.
然后config里还可以指定是用$$还是$之类的玩意.
然后似乎MathJax还自带Async一类的玩意?
感觉很赞.</description>
    </item>
    
    <item>
      <title>20160319</title>
      <link>/diary/0d03df/</link>
      <pubDate>Sat, 19 Mar 2016 21:20:58 +0000</pubDate>
      
      <guid>/diary/0d03df/</guid>
      <description>离高考还有79天.
爹唱歌:
没有人能随随便便成攻
maya窝又污啦.
今天是laekov暴走日. 中午走去七医院侦察地形. 下午回家跑了好几家五金店买灯泡, 然后被告知现在都不卖正常白炽灯灯泡了qwq当个灯泡这么难嘛.
还有上午化学课因为昨天作业错了4道选被d了qwq明明就是昨天被付阿姨谈天之后做化学的时候心智crash了.
为什么我的心还会跳啊ovo
没救啦.
搞了半天似乎成功地自建了mathJax的cdn然而还是不能成功地让页面正常地显示数学公式. 好伤心.
大概窝没有使用正确的前端打开方式qwq.
czr造的站太强辣. 唉唉窝这种弱鸡水平要没饭次啦好伤心.
有一个悲伤的故事叫断网后打开流量忘关thunder. 流量瞬间没有了(幸好只有100M正好把流量花完)qwqwqwqwq</description>
    </item>
    
    <item>
      <title>20160318</title>
      <link>/diary/eb9c96/</link>
      <pubDate>Fri, 18 Mar 2016 22:41:53 +0000</pubDate>
      
      <guid>/diary/eb9c96/</guid>
      <description>高考倒计时\(9^2-1\)天.
不会搞mathJax没救了. 周末有空再说qwq.
九九归一掌~
颓废的一天.
出太阳了好开心. 中午打球被虐ovo
听说高考要体验ovoovo要抽血还要饿一早上啊ovovoovo
看到了奇怪的东西. 感觉世界好神奇. 好多东西是看不见的而且存在地如此真实.
唉唉自作死不可活.</description>
    </item>
    
    <item>
      <title>20160317</title>
      <link>/diary/cf42ed/</link>
      <pubDate>Thu, 17 Mar 2016 22:23:56 +0000</pubDate>
      
      <guid>/diary/cf42ed/</guid>
      <description>高考倒计时81天.
严重警告oi现役的学弟们, noi都进队去. 除非你愿意从程序员变身为打字员.
二模综排降了. 都是数学的锅.
然而今天好颓废啊ovo.
打作文去了ovo</description>
    </item>
    
    <item>
      <title>20160316</title>
      <link>/diary/055a36/</link>
      <pubDate>Wed, 16 Mar 2016 22:37:46 +0000</pubDate>
      
      <guid>/diary/055a36/</guid>
      <description>高考倒计时82天.
二模没救了啊啊啊.
数学三道选择题直接再见. 然后最后一个大题的见鬼证法被老师法现了, 原因竟是最后一问求导求错了qwqwqqq.
今天又考数学然后接着gg. 居然错了解几没救了.qwq. 感觉做题的时候心不在焉在焉在焉.
物理似乎考得有点好. ovo然而只是因为见过原题ovo
化学老师说有机题难然而我觉得有机题好简单实验题才是真的难ovoovovo然而还是错了一堆, 化学生物都没上平均分unhappy.
英语居然错了一道听力不可饶恕. 错了四个完形好醉. 于是只有班平左右了qwq. 然后做完操阿老师专程叫住我, 对我说: &amp;ldquo;你要认真学习.&amp;rdquo; 当时心里真是有千万头羊驼在奔腾啊.
语文大概没救肯定没救ovo
唉没上平均分诶怎么办.
反正我中考成绩低嘛23333333(小国獒是不是要哭瞎了)
体育课打球, 中投命中0. maya怎么突然就gg了连机选的命中率都没有.
没救啦.
然而还是不想好好学习. 感觉做什么事情都没有意义. 真是的.</description>
    </item>
    
    <item>
      <title>20160315 二模day2</title>
      <link>/diary/d24135/</link>
      <pubDate>Tue, 15 Mar 2016 22:40:46 +0000</pubDate>
      
      <guid>/diary/d24135/</guid>
      <description>高考倒计时83天.
二模day2. (唉哟afo了这么久了还是习惯用day1day2没救了)
根据难度守衡定理, 一场考试的难度不能凭空产生也不能凭空消失, 只能从day1转移到day2, 或者从上午的科目转化成下午的科目.
然而理综爆炸+中午突然反应过来数学爆炸+英语爆炸.
理综做得飞快. 然后检查的时候发现有机题写错了一个方程和顺丁橡胶的结构简式感觉没救了. 写成了顺己橡胶ovo.
英语完全无力了ovo多少年没错过听力了ovo
晚上吃了饭打球转角遇到阿老师. 吃饭之后打球战斗力和弹硬币时候的皮哥一样啊.qwq. 然而好歹入帐一颗中.
晚上练了一晚上英语字帖. 感觉.23333. 手要断了.
唉唉都要高考了还这么颓没救了.</description>
    </item>
    
    <item>
      <title>20160314 二模day1</title>
      <link>/diary/f17ca7/</link>
      <pubDate>Mon, 14 Mar 2016 19:20:36 +0000</pubDate>
      
      <guid>/diary/f17ca7/</guid>
      <description>高考还有84天.
萌萌哒二模day1.
语文作文是关于社区街区化的. 恰好前两天才在zhihu上看了关于这个的帖子, 于是愉快地扯啊扯啊扯扯完还有40分钟然后 = = 差点被尿胀死.
数学最后一题倒数第二问的证法可以证出调和级数是收敛的. 感觉自己强爆了. 然后随便听了两个不认识的人对答案发现自己似乎把立几做错了? omg
在回家的公车上想通了为什么人多的时候不容易摔. 其实是因为人多所以加速度小了呐萌萌哒~ 以前一直觉得是人多挤得倒不下去来着. (可能也有这样的原因吧)
站着玩电脑坚持了一个星期最终放弃了. 然后成了双屏2333. 膝盖好疼qwq
目测某些小朋友想通了? 虽然窝当了回坏人不过感觉好开心ovo 不平行的直线何必相交. 希望懂了.
二模要爆炸了qwq
好久没打球了qwq</description>
    </item>
    
    <item>
      <title>20160313</title>
      <link>/diary/678774/</link>
      <pubDate>Sun, 13 Mar 2016 22:36:08 +0000</pubDate>
      
      <guid>/diary/678774/</guid>
      <description>高考倒计时85天.
颓废的一天.
早上和床斗争依然失败.
作业好少ovo生物卷子质量好差. 两道一样的选择题居然答案不一样ovo什么鬼喽.
下午打ed晚上打ed. vulture一打三虽然对面很弱但是也打不过. 不就是双基rail gun么被我咬尾的还没有能逃掉的. 然而对面一cobra两eagle的配置就真的打不动了. 毕竟是团结的力量. 然而作为人类找个wing man真的很难qwq.
最后玻璃破了最后一分钟冲回了空间站. 然后发现攒钱攒差不多了于是换了asp explorer. 终于要开启explorer生涯了不用再打来打去了好开心.
要是能把行星做成棒棒糖该多好啊XD.
maya明天要考试我今天还在干这种事. 没救了.</description>
    </item>
    
    <item>
      <title>20160312</title>
      <link>/diary/20c2fb/</link>
      <pubDate>Sat, 12 Mar 2016 21:55:31 +0000</pubDate>
      
      <guid>/diary/20c2fb/</guid>
      <description>距高考还有86天.
周五考理综周六就能出成绩, 而周六考理综要第二周三才出成绩.
然而周六考数学当场就能出成绩, 因为是考完直接发答案自己对qwq.
然而最后一题还是不会. 感觉这辈子也做不对最后一问了.
然而解析也错了严重不开心ovo
晚上打ed去揍一只170k的fdl结果被fdl打得屁混尿流. 然后跑的时候还被追着打要不是最后盾修好了撑了一会都进不了超空间就神作了. 最后又是1%逃掉好险呐. 没救了.
然后把srk搬运到了新的服务器上. (其实是vps) 好贵啊好贵啊. 流量还要自己给钱求不炸qwq. 然而带宽很赞.
然而为啥还要用php啊我真是佩服自己. 早知道直接拿nodejs写了真是的.
伤心qwq.</description>
    </item>
    
    <item>
      <title>20160311</title>
      <link>/diary/a08cfa/</link>
      <pubDate>Fri, 11 Mar 2016 22:48:00 +0000</pubDate>
      
      <guid>/diary/a08cfa/</guid>
      <description>高考倒计时87天.
怎么觉得日期有点没对?
周三数学考试最后一题没发现极限是零分之零型的直接得0了. 晕.
今天理综做得好快ovo然而物理最后一题最后一问那么简单为啥要思考那么久啊ovo而且最后还忘了考虑周期性真是没治了.
然后错了一道物理选一道生物选.
蔗糖啊喵. 不能和Cu(OH)2反应的啊喵.
然后化学那个还原剂太厉害了没想到.
下周二模所以要搬书. 现在开始后悔开学的时候没把上学期的卷子搬运回家了. 然后转念一想反正现在发卷子的速度大概也不用分那么清23333.
窝太弱啦qwq</description>
    </item>
    
    <item>
      <title>20160310</title>
      <link>/diary/b95388/</link>
      <pubDate>Thu, 10 Mar 2016 22:53:22 +0000</pubDate>
      
      <guid>/diary/b95388/</guid>
      <description>高考倒计时88天.
确认昨天mathJax爆炸事件是因为上传表单中反斜杠被php搞成了两根反斜杠导致的. qwq
今天发生了什么么?
上午拿奇怪的数列去找数学老师2333.
然后做做做做做.
看到sf在看关于mc和mc编程的书. 然而那是给没有基础的10岁小朋友写的ovo. 然后被怒斥mc水平. 对不起嘛我弱嘛当年还没大规模颓mc就退役了qwq
还是不打算接着玩mc.
于是颓掉了好多时间啊不开心.
晚上物理那个函数好醚. 导函数应该是单调的? 然而懒得画图了qwq
然后啥在斜面上的运动时间算成了在平面上的运动时间, 算动能算成了速度. 没救了qwq</description>
    </item>
    
    <item>
      <title>二项分布方差公式证明</title>
      <link>/random/47bc0e/</link>
      <pubDate>Wed, 09 Mar 2016 23:00:17 +0000</pubDate>
      
      <guid>/random/47bc0e/</guid>
      <description>公式: 一枚硬币扔一次有p的概率朝上, 扔n次, 朝上次数的方差为`n * p * (1-p)\\\&#39;.
证明: 归纳法(增量证明)
设D(n)表示扔n次时的方差. E(n)表示扔n次时的期望. P(n, i)表示扔n次, 朝上i次的概率.
对于n=1的情况显然成立.
对于n&amp;gt;1的情况
$$D(i)=\sum_{i=0}^{n}P(n,i)*(i-E(n))^2$$
对于D(n+1)
$$D(i+1)=\sum_{i=0}^{n}P(n, i) * (p * (i + 1 - E(p) - p)^2 + (1-p) * (i - E(p) - p)^2)$$
再两式相减, 式子有点麻烦, 但是可以巧妙地拆开然后用平方差化简.
$$D(n+1) - D(n) = \sum_{i=0}^{n}P(n, i) * p * (1-p)$$
右边那坨是常数. 左边这坨和刚好为1.
于是
$$D(n+1) - D(n) = p * (1-p)$$
搞定.
数学考试遇到直接背公式就好. 可以记一个简单的结论是方差与n成正比. 不知道有没有奇怪的证明方法可以直接证这个来证上面那个公式.
思考了好久才思考出这种证法ovo.
mathJax还没搞定所以公式全是乱码qwq. 随便喂给一个TeX编译器应该都能看.
推荐bestcoder的这个http://bestcoder.hdu.edu.cn/latex.php</description>
    </item>
    
    <item>
      <title>20160309</title>
      <link>/diary/2b048f/</link>
      <pubDate>Wed, 09 Mar 2016 22:40:13 +0000</pubDate>
      
      <guid>/diary/2b048f/</guid>
      <description>高考倒计时89天.
各种颓废ovo
家里似乎有迷一样的电磁信号屏蔽. 在某些位置wifi信号特别差qwq
下午在雨中打球. 中远程打击命中率++. 感觉特别开心.
考数学ovo. 数学没救了.
理综因为没错选择题所以似乎吊打了yzy? 好开心.
中午冒雨去买遥控板电池然而化学老师拒绝使用黑白反色. 不开心.
尝试在srk里用mathJax. 总感觉这玩意是爆炸的啊ovo.
真点难用qwq</description>
    </item>
    
    <item>
      <title>20160308</title>
      <link>/diary/17a3cf/</link>
      <pubDate>Tue, 08 Mar 2016 23:02:52 +0000</pubDate>
      
      <guid>/diary/17a3cf/</guid>
      <description>高考还有90天.
有啥事要说来着.
拿到了废旧显示器. 在家里也有外接显示器用啦.
然而站立式摆放方案总觉得脚好酸. zhihu上的东西一定是在坑人qwq.
显示器突然就变大了感觉眼睛好胀ovoovo.
又忘了要说啥了ovo.
晚自习的时候花了40分钟思考狭义相对论然而还是没有太搞清楚.
知道其实就是把时间看作空间的第四根轴. 然而对那个火车上拍两下桌子的比喻还是觉得好醚.
然而上周六的理综炸了. 物理第二个大题把电磁感应安培力的公式给背错了qwq生物错了一大堆一大堆一大堆.
窝没救啦.
今天苍彼更了happy.
所以啊&amp;hellip;我还是too young.
Update: 为什么在zhihu上老是被邀请去回答毫不相干的问题啊什么鬼喽?</description>
    </item>
    
    <item>
      <title>20160307</title>
      <link>/diary/ffa915/</link>
      <pubDate>Mon, 07 Mar 2016 22:51:23 +0000</pubDate>
      
      <guid>/diary/ffa915/</guid>
      <description>高考倒计时91天.
作业要做不完了qwq.
早上升旗遇到了奇怪的事. 糊俑: 某些同学晚上在校园里游逛, 行为歪瓜劣枣瓜劣枣劣枣枣. 交往过密xxoxoxox. 普通话太差没听清.
在七中混了这么多年了第一次听说学校要管这种事情.
后来发现前面的小哥说了嘛\&amp;quot;只是作秀\&amp;quot;.
晚上去跑步的时候发现操场上的二元组里fm的比例下降了, 然而出现了不少ff, fff, ffff啥的奇怪组合. 仔细一想这不是学校在鼓励同学们搞lgbt嘛. 我给0xff个赞.
莫名想起初三的时候从成华调来的核肛也出过类似的规定
男女生走在一起直接发违纪通知单.
然后还记得她当天晚上看到我的时候感觉整个人脸都绿了. (后来发现似乎只是急着回寝室洗头?)2333333
下午考英语的时候get了表白新技能.
-你长得好像我的第五个女朋友啊.
-你有过几个女朋友啊.
-4个.
好想哪天试一试啊.ovovovo想什么呢刘老师说了不要男女生交往过密呢. (yzy一定会笑晕在厕所)
于是晚上同桌看小说被批是啥鬼. 顺带还把我婊了一顿.
我觉得话说得太过份了.
有本事你自己进国集别回来了啊.
删掉了一段脏话. 不是不会骂或者不想骂. 真的很伤人. 然而还是那句话, 人在矮檐下, 不得不低头. 真觉得这辈子过得太wbvc窝囊了.
然而生物作业还没做完.
ovovovoovovo
想起梁静茹的一句歌词.
能重来那就好了.
然而重来大概就只有reset了.
唉ovo.
噢对了@女生们 女生节快乐.</description>
    </item>
    
    <item>
      <title>20160306</title>
      <link>/diary/e23a8e/</link>
      <pubDate>Sun, 06 Mar 2016 21:32:19 +0000</pubDate>
      
      <guid>/diary/e23a8e/</guid>
      <description>高考倒计时92天.
都要高考了还在玩.
做了大半天作业. 最后发现物理卷子不可做. 夏老师过于没有诚意.
前几天立了个cyl不会看我博客的flag来着, 今天就收了ovo. 明明就是自己作死告诉他我重新写了博客嘛.
吐槽窝配色的人++.
关于艺术楼五楼修机房这事似乎闹挺大? 虽然至今没看到除了yjq以外的竞赛党说话啊.
其实这事窝去年这时候就知道了ovo. 窝倒是想赞叹学校的效率.
其实把竞赛教室搬到租出去的那栋楼楼上多好, 以后买键盘直接对着楼下吼就行了都不用出校门.
想当年305被文总管没收的时候, 我们从305搬书也搬了一节晚自习. 翻出了若干年前贾开学长还有更早的学长的书, 还有某年学长们写给张老的生日祝福本. 当时各种批判文总管至少也骂了一个星期. 生竞就是想一人一层楼的意思嘛你可以直说. 毕竟人在矮檐下, 不得不低头.
所以说艺术生这种行为也可以理解. 毕竟那些人的脑子构造和你们竞赛党也不一样. 似乎不久之后就要scoi了你们也不要太过在意影响了心情. 说这么多, 自己的利益才是最重要的.
另外如果有人上门撕x, 我给你们支一招.
header(“Location: laekov”); return; laekov这种闲人最喜欢和人撕x啦.
校方来讲还不就一个字, 穷. 有什么好说的. 很庆幸还有不到100天就要毕业了. 就像当初很庆幸自己不是2018届的一样. 此时的七中已经不是三年前我所向往的那个七中了. 这件事发生的因素很复杂. 不过反正我懒得管了.
同理也很庆幸再过半年就可以不再待在成都了. 成都是我见过最舒服的城市. 可惜了.
晚上打ed本来打算再搞1m cr的结果不小心揍到了路人于是吃了wanted. 还没反应过来瞬间两只wing对着我一个人胖揍. 打完几艘大船无损的shield瞬间gg. 要不是反应快赶紧开fsd逃命今天就爆船了. rp--. qwq
唉唉没救了.
活在世上有什么意义啊.
就像依然没有人搞清宇宙有什么意义一样.
qwq</description>
    </item>
    
    <item>
      <title>20160305</title>
      <link>/diary/d0e7c0/</link>
      <pubDate>Sat, 05 Mar 2016 19:47:10 +0000</pubDate>
      
      <guid>/diary/d0e7c0/</guid>
      <description>高考倒计时93天.
早上起来没电于是吃了一顿烛光早餐. 原来我爹没听说过前烛, 然后还顺手把蜡油倒掉了ovovoovo
人在矮檐下, 不得不低头. 没钱是一切罪恶的源泉.
上午六节课感觉好长好长好长qwqqwq
中午因为下午要考试都没人陪我打球了不开心qwqwqqwqwq
投出了10中9的迷之罚球命中率. 虽然正式打的时候打死也投不进中投. 感觉自己没救了.
下午考理综.
考完和小国鳌对同分异构体计数.
我: maya我少数了一种碳酸酯.
小国鳌(指着我的草稿纸): 这种三酚苯环上只有一种氢不能算.qwqwqqwq
我: 好高兴.
(回家的公车上)
我: 不对啊三酚本来就有4种. maya qwq
回家运动完正要洗澡就, 停, 电, 了. 瞬间感觉自己走错路来到了NK.
晚上打算去网吧来着然而被强行逼去了咖啡店. 不开心ovo
正在考虑要不要把这个站搬到vps上去? 求advice.
ovoovo
btw中国移动你也是够了连gravatar都要dns劫持. 你好歹给我找个能用的头像站啊.</description>
    </item>
    
    <item>
      <title>20160304</title>
      <link>/diary/15fcf5/</link>
      <pubDate>Fri, 04 Mar 2016 22:26:57 +0000</pubDate>
      
      <guid>/diary/15fcf5/</guid>
      <description>高考倒计时94天.
cylcyl?cylcyl!
因为昨天作死练深蹲于是今天腿脚酸痛.
于是中午在教室和打印店之间练习折返跑qwq.
windows吞掉了我优盘上的文件, 于是只好重新跑回去再做一份. 于是laekov对ms的敌视++.
下午看到高一高二的教室都空了. 想起了自己高一高二的时候最开心的时候就是星期五下午.
我已经多久没玩过cf, bc, hiho, etc.了啊. 突然觉得好空虚.
曾经一星期参加超过7场比赛/考试也不觉得累呢. 现在作业多点就觉得不开心了.
果然是时代变了呢. 既已弃坑, 何苦为难自己.
ovo
晚上去跑步发现操场上的二元组中, ff和fm各占几乎一半. 只想说学弟学妹们真会玩.
小说作者是准备弃坑了? 颓废项目&amp;ndash;. qwq.
以上.</description>
    </item>
    
    <item>
      <title>20160303</title>
      <link>/diary/588231/</link>
      <pubDate>Thu, 03 Mar 2016 22:34:03 +0000</pubDate>
      
      <guid>/diary/588231/</guid>
      <description>高考倒计时95天.
已经忘了多少天了ovo.
昨天说cyl看来是我自己naive了ovo.
于是laekov, 是, 弱, 鸡.
咦我想说啥来着.
似乎没啥说的啊就是刷刷刷玩玩玩.
感觉自己好闲啊.
感觉自己好忙啊.
感觉自己要精分了. 不啊早就精分了.
算了&amp;hellip;</description>
    </item>
    
    <item>
      <title>20160302</title>
      <link>/diary/96fd66/</link>
      <pubDate>Wed, 02 Mar 2016 22:42:40 +0000</pubDate>
      
      <guid>/diary/96fd66/</guid>
      <description>高考倒计时96天.
总是忘记白天想要说什么.
上午要困死了怎么回事.
坐在may旁边吃饭感觉好自卑qwq.
下午打球好开心. 4打5正好空我不用防人233333.
数学考试难得地做得足够快然后最后一问还是不会.
数学作业总也没精神动qwq
maya连晚上在车上想起要写什么都搞忘了没救了.
gg
qwq
Update
似乎想起要说啥了。中午后知后觉地发现cyl似乎脱单了？还要再观察一下。真是一个脱单的好季节啊23333（然而和窝有毛关系qwq）如果是真的祝幸福orz.
//反正cyl不看这窝可以自由自在地乱黑2333333</description>
    </item>
    
    <item>
      <title>20160301</title>
      <link>/diary/b121ef/</link>
      <pubDate>Tue, 01 Mar 2016 22:32:28 +0000</pubDate>
      
      <guid>/diary/b121ef/</guid>
      <description>高考倒计时97天.
我要写啥来着.
解几作业好多啊qwq
感觉说英语考试可以碎觉是个巨型flag.
唉又要颓废过去了qwq
成都只要连续出太阳就会变成雾霾天&amp;ndash;hja定理qwq
gg</description>
    </item>
    
    <item>
      <title>20160229</title>
      <link>/diary/95bd34/</link>
      <pubDate>Mon, 29 Feb 2016 22:44:53 +0000</pubDate>
      
      <guid>/diary/95bd34/</guid>
      <description>高考倒计时98天.
恭喜may进国家队orz. 祝痛虐全世界, 轻松拿冠军.
借yzy的话说现在有两个国家队的人认识我了. 好开心. (然而Demi Guo真会记得我这只辣鸡?)
百日誓师然而他们那段关于理想的演讲把我扯得更远了. 更觉得人生没有希望了怎么办.
于是晚自习看同桌颓废ovo
回家路上爹说shiruku对ms的浏览器不资瓷. 然后, 咦还有人用ms的浏览器? 强行把ms的浏览器ban掉好了哈哈哈.(还在写)
唉唉没救了.</description>
    </item>
    
    <item>
      <title>20160228</title>
      <link>/diary/942045/</link>
      <pubDate>Sun, 28 Feb 2016 21:10:52 +0000</pubDate>
      
      <guid>/diary/942045/</guid>
      <description>高考倒计时99天.
教室后面挂的倒计时牌子没有第0天差评.
在这样一个奇特的日子里, 我, 在, 颓废ovo
上午和床斗争失败9点钟才起床.
然后花了一上午填昨天晚上挖的点赞的坑qwq效率=0
然而mathJax还是处于爆炸状态真是要报警了.
下午去图书馆淦作业+重拾高数. 看着极限那一章还挺开心的样子. 然而我真的在初三暑假刷过这本书?
感觉当年一定是耳朵can蚊子去了.
晚上花了2h打ed赚了2e6cr. vul的战斗力就是专门拿来打py的啊!!! 然而打ic就很吃力. cannon需要在对手相对静止地时候对准打比较有效. 然而总觉得打人的效率还是低. 另外发现sys全开撞人的伤害其实挺大(把自己当炮弹了2333). 只是高速追逐的时候根本撞不到. 于是把别人的pp打坏之后再撞很开心. 撞aspe一发10%血excited.
噫颓炸了qwq
没救啦. 三本大法吼, 窝想去没有冬天的地方上大学qwq
Update
晚上去搞过了码市的审核. 然而发现别人的develop和我的develop怎么不是一个概念啊ovo看来是奍不活自己了好伤心qwq还是只有好好学习啊qwq</description>
    </item>
    
    <item>
      <title>shiruku.点赞</title>
      <link>/technical/07f888/</link>
      <pubDate>Sun, 28 Feb 2016 10:41:28 +0000</pubDate>
      
      <guid>/technical/07f888/</guid>
      <description>造出了一个功能叫点赞qwq.
想起上周和czr讨论点赞到底应不应该重新从后端获取数据.ovo
然而这一部分的前端写得好丑啊. 然而后端水平进步了的感觉好开心. (虽然还是丑)
主要是前端动态渲染的方式会让js各种回调于是很讨厌. 而且$.post的异步在这种时候确实会造成麻烦.
jquery里面一个element被clone之后要先加到document里才能再修饰它的属性, 不然会有奇怪的事情OvO.
噢对laekov为了好玩允许一个人点0xf个赞. 为什么点赞只能点一个呢? 反正后端都写成这样了就多允许几个好了&amp;hellip;(其实可以调成0xff或者0x3f3f3f3f什么的23333)
另外也受到了知乎的一些启发. 评论什么的东西其实都可以加这么一个玩意, 反正都写出了通用的接口, 只是多几个接入而已. 感觉这种通用性的思路很有价值.</description>
    </item>
    
    <item>
      <title>20160227</title>
      <link>/diary/447af1/</link>
      <pubDate>Sat, 27 Feb 2016 23:49:46 +0000</pubDate>
      
      <guid>/diary/447af1/</guid>
      <description>手工高考倒计时 100 天. (其实是明天ovo)
幸好睡觉之前看了一下qq才想起没更博客ovo 感谢 @Miles 提醒. (其实圈人的功能根本没做出来就强行用了ovo)
今天晚上效率好低啊好低啊好低啊. 造前端烦死了. 为什么不让用户全部直接命令行file_get_content呢真是的.
到最后都要疯了还是没写对qwq
白天似乎发生了什么我想要写下来的事? 完了忘了qwq
至于窝为啥被叫做何姥爷昂? 都是@czr 的锅!!! 为啥要把徐姥爷的称号clone一份给窝啊qwq 强行引领风尚了昂.
下午窝还以为要考语文呢结局是做语文卷子ovo没有作文差评.
还有啥晚上打ed被一只npc的vulture打爆了啊不开心qwq
laekov的脑子被僵尸吃了一半, 于是死机了qwq
Upd: 窝想起昨天要说什么了ovo中午睡觉的时候梦到窝变成了一个有机物(看到了身上黑体的C和-), 于是窝伸出了-COOH, 握住了旁边的有机物的-OH, 然后就脱水成酯了qwq醒过来的时候感觉自己真是疯了23333</description>
    </item>
    
    <item>
      <title>20160226</title>
      <link>/diary/79974c/</link>
      <pubDate>Fri, 26 Feb 2016 22:49:13 +0000</pubDate>
      
      <guid>/diary/79974c/</guid>
      <description>人工高考倒计时 101 天.
开学考试明明进步了100名啊然后还被阿老师说没有认真学习(委屈脸).
数学物理计算能力没救.
中午被散步. 阿老师讲人要保持一种努力的状态, 如果颓废下来了再要回到那种状态就难了. 我觉得很有道理啊. 所以说一定得给自己找事情干绝对不能天天搞颓废. (已经颓废了一学期了怎么办qwq)
似乎又忘了要写什么了ovo
觉得如果高考前100天都坚持写日记还是挺有意思的一件事ovo</description>
    </item>
    
    <item>
      <title>20160225</title>
      <link>/diary/82ad0f/</link>
      <pubDate>Thu, 25 Feb 2016 22:47:27 +0000</pubDate>
      
      <guid>/diary/82ad0f/</guid>
      <description>人工高考倒计时 102 天.
想到了2014年noip之前在305搞的那个不明觉厉的倒计时ovo.
以及窝的画logo能力被cj众怒斥qwq.
(要充分使用已有资源来放图片. 明明有voles虽然是残的但是也可以用好开心.)
开学考试感到自己的计算能力捉鸡啊.
做物理和数学大题的时候感觉好慌. 然后错了一堆.
分数守衡定理: 分数不能凭空产生也不能凭空消失, 只能从一科的分数转化为另一科的分数, 或者从一个人的卷子上转移到另一个人的卷子上.
ovo
于是晚上说好的搞点代码的又不知道干什么过去了. ovo</description>
    </item>
    
    <item>
      <title>20160224</title>
      <link>/diary/f75b50/</link>
      <pubDate>Wed, 24 Feb 2016 22:44:11 +0000</pubDate>
      
      <guid>/diary/f75b50/</guid>
      <description>奇奇怪怪的开学第一天. 感觉会有一场血雨腥风qwq然而似乎考试终于要变多了感觉好开心.
开学考试机选正确率迷之高. 难道是因为昨天积攒了rp?
看完了姐姐送的成人礼物路遥的&amp;lt;人生&amp;gt;.
这小说大概意思是不要去勾搭城里会玩的妹子, 要找个对自己死心塌地的隔壁村的王小花的意思? @王小花
看科幻小说更多地是对世界的设定, 而这种东西更多的是时代, 人生, 什么的. 联想到&amp;lt;平凡的世界&amp;gt;, 在那种变革的时代里的各种奇奇怪怪的现象, 其实对现在也有一些可以借鉴的地方. 比如选择, 平静地面对一切. 失之我命, 得之我幸.
总之窝太弱辣qwq
又算错了解几感觉没救了qwq
ps 突然开了一个脑洞。窝要给shiruku加个点赞的功能要可以点16个赞23333</description>
    </item>
    
    <item>
      <title>20160223</title>
      <link>/diary/0398a0/</link>
      <pubDate>Tue, 23 Feb 2016 21:26:13 +0000</pubDate>
      
      <guid>/diary/0398a0/</guid>
      <description>开学辣ovo
感觉越发没有事干了呢. 是应该找点事情干了.
回家的公车上遇到了奇怪的事. 感觉自己蠢哭了QwQ 所以毕竟窝还是太naive了. 也许是考炸了导致心不在焉?
唉唉幸好包里没多少钱qwq
然而总感觉怪怪的qwq
以及似乎把高考倒计时搞丢了qwq
没救了.</description>
    </item>
    
    <item>
      <title>shiruku.第三方登陆</title>
      <link>/technical/74c136/</link>
      <pubDate>Sun, 21 Feb 2016 17:32:39 +0000</pubDate>
      
      <guid>/technical/74c136/</guid>
      <description>听说造了登陆之后就没人愿意来评论了. 于是窝决定去造个第三方登陆.
于是花了一晚上造出了oauth组件. (其实有sdk的啊摔)
于是有了github登陆. 其实还有企鹅啥的. 然而企鹅就是强行降低网站的逼格这怎么行呢. (其实是企鹅强行要求sdk懒得搞了)
oauth的登陆简单过程是酱的(有点三次握手的感觉)
网站要去第三方申请一个application. 然后会得到client_id和client_secret. 然后把登陆的链接接到指定的页面去, 用get把client_id和泥要哪些数据传过去.
网站会和用户交流人生(登陆). 然后会用get方式调用callback, 这个是在注册application的时候指定的. callback的get参数里有一种东西叫code. 这东西要用.
用code来换access_token. 把code和client_id和client_secret一起当post参数传给第三方指定的第二个url. 如果没错会返回access_token, 这玩意是真正用来换数据的.
用access_token再去第三方提供的第三个url来get用户的数据, 比如avatar_url什么的.
那这和登陆有啥关系呢? 在第3步的时候如果泥得到了正确的access_token, 泥就可以认为用户正确登陆辣~
然后就发生了一件鬼蓄的事情: 窝在去和github换数据的时候, 莫名其妙地就被403了. 大概就是酱(get为粟)
function getData($url){ $opts = array(\&#39;http\&#39; =&amp;gt; array( \&#39;method\&#39; =&amp;gt; \&#39;GET\&#39; ) ); $context = stream_context_create($opts); $result = file_get_contents($url, false, $context); return $result; } 赶紧google了一下发现github会按照心情拒绝php发送的请求.
于是窝假装窝不是php而是善良可爱的少年就好了啊2333.于是强行骗人.
function getData($url){ $opts = array(\&#39;http\&#39; =&amp;gt; array( \&#39;method\&#39; =&amp;gt; \&#39;GET\&#39;, \&amp;quot;header\&amp;quot; =&amp;gt; \&amp;quot;User-Agent: Mozilla\&amp;quot; ) ); $context = stream_context_create($opts); $result = file_get_contents($url, false, $context); return $result; } 假装窝叫Mozilla.</description>
    </item>
    
    <item>
      <title>shiruku.缓存</title>
      <link>/technical/8059ec/</link>
      <pubDate>Sat, 20 Feb 2016 16:48:56 +0000</pubDate>
      
      <guid>/technical/8059ec/</guid>
      <description>之前版本找list都是去硬盘里枚举一遍文件. 本地我有ssd速度还行. 传到服务器上就慢暴了. 因为有导入之前的博文加起来也有几百篇. 枚举一遍就要开将近1k个文件. 这里O(1000)和oi里的概念完全不一样啊ovo几乎就是要几秒的意思了.
然后没有发现php怎么把东西常驻内存里. 于是灵机一动拿单个文件来存常用的数据. 然后就叫它伪缓存好了.
按照时间和需要对缓存进行更新, 每次查询所有东西的list只需要开一个文件. 果然就快多了好感动23333.</description>
    </item>
    
    <item>
      <title>About me</title>
      <link>/about/</link>
      <pubDate>Sat, 20 Feb 2016 12:40:22 +0000</pubDate>
      
      <guid>/about/</guid>
      <description>这是 laekov 的博客, 曾经 proudly (并不) using laekov 高中的时候自己造的 shiruku 博客框架.
laekov 的身份包括但不限于:
前 OIer @CDQZ. 前计算机系本科生 @Tsinghua 现高性能所博士生 @Tsinghua 一个对轮子和有轮子的东西感兴趣的人 </description>
    </item>
    
    <item>
      <title>Initial Commit</title>
      <link>/technical/19bc97/</link>
      <pubDate>Sat, 20 Feb 2016 09:50:36 +0000</pubDate>
      
      <guid>/technical/19bc97/</guid>
      <description>努力淦了几个月php, 终于在寒假结束前搞上线了. 开心.
之前写的东西实在太丑不能忍了所以造了个新的. 但是又舍不得万网的免费空间. 其实还有很多东西没写. 页面底部有github链接跪求star.
第三方登陆还没时间做. 私戳laekov得邀请码.
以及laekov真的很认真的做了UI. 虽然最后的结局是laekov在报复社会. 事实上laekov不具有造出好看的页面的能力ovo
于是可以愉快地log down一些其它的东西了好开心w. 虽然适配服务器有些周折ovo
于是挺晚了呢&amp;hellip;明天再接着写ovo
接着写
原来的博客主要是写题解啊. 构架的时候就没想过要搞其它飞机. 于是后来就啥都干不了了. 想加个版块都挺痛苦.
另外前端后端的代码夹杂在一起不开心.
要api化(向czr学习). 以及把事情扔给前端做. (于是现在加载速度感人)
强行把php当nodejs用是什么样一种体验? @我自己ovoovo
反正每月10G的流量总用不完&amp;hellip;所以就加图好了. 然而丑哭了qwq怪我喽. (找一个做美工的妹子当女朋友是laekov的人生追求23333)</description>
    </item>
    
    <item>
      <title>Proof for flag theory</title>
      <link>/random/dbimport_000/</link>
      <pubDate>Sat, 20 Feb 2016 09:40:18 +0000</pubDate>
      
      <guid>/random/dbimport_000/</guid>
      <description>手机写东西好蛋痛。补充一些flag学说的证据。
Yzy的物理考试 YZY:我半期物理连40分都考不到了。
结局:Yzy得到了足够高的分数于是年级排名20+。
星期三 卤素： niuzyi中午去打球!
结局：中午gorge过生日。niuzyi孤独地和学弟玩耍。
星期五 卤素：中午去打球！
laekov:今天没人过生日吧。
结局：中午，下，雨，了。
（未完待续）</description>
    </item>
    
    <item>
      <title>20160218</title>
      <link>/diary/dbimport_111/</link>
      <pubDate>Fri, 19 Feb 2016 14:03:47 +0000</pubDate>
      
      <guid>/diary/dbimport_111/</guid>
      <description>寒假就要完了呐qwq化学练习册还没做完. 感觉之前说有机easy就是给自己立了个巨型flag.
shiruku搞得差不多了. 然而感觉如果寒假结束之前release的话会有很多功能是残的很不开心.
list一下没写的东西
第三方登陆. 这个等发上来再造也不迟 download模块. 这个玩意似乎挺简单. Fin. 抓头像. 我, 马, 上, 去, 写. 编辑器自带加图. 这个嘛不急嘛反正最近也不贴图. admin模块生成邀请码? 不急不急今天. Fin ui? 饶了我吧qwq 移动版界面. 这个巨坑暂时不填了. rss格式转换? 明天的事. 这么多东西好伤心qwq
然而今天本来可以搞完有机的然而亲娘开大下午没去成图书馆于是打了一个下午的游戏打了一个晚上的游戏没救了qwq
然而在游戏里终于遇到人类玩家了. 组队刷res效率就是高啊. 然后和外国友人文字交流的时候搞忘关麦对着老爹用中文报国籍感觉自己萌萌哒. 以后切记检查关麦qwq
感觉不久之后就可以在博客里用md写东西了感觉棒棒哒~</description>
    </item>
    
    <item>
      <title>20160212</title>
      <link>/diary/dbimport_110/</link>
      <pubDate>Fri, 12 Feb 2016 13:05:04 +0000</pubDate>
      
      <guid>/diary/dbimport_110/</guid>
      <description>噫又是很久没有写过东西了呢.
其实是在过年以及赶作业以及撸shiruku.
前端什么的最讨厌了&amp;hellip;又写得异常丑怎么办&amp;hellip;
还有帮着搭elite dangerous简中的坛子.然而phpwind9是个什么鬼啊代码里全是class套class套class根本没法愉快地读代码嘛.
然后nm渲染语言是html!???????报警了要.
昨天被怒斥说写网站只是玩耍搞好高等数学和大学物理才是真理ovoovo然而我真的就是不想动脑子嘛.
然后上小学五年级的妹表示学习鸭梨山大.maya我们真是一代人么?
嗯然而在家里和过年的时候真的没有任何心情写作业啊摔.</description>
    </item>
    
    <item>
      <title>20160204</title>
      <link>/diary/dbimport_109/</link>
      <pubDate>Thu, 04 Feb 2016 21:05:44 +0000</pubDate>
      
      <guid>/diary/dbimport_109/</guid>
      <description>终于**放寒假了.
比信竞早放呢.似乎返校还比信竞晚.真是退役保平安诶好开心.(林先森真**丧病.想当初窝们把假放完不说还没作业23333
于是eld的服务器开始打死连不上模式了.颓mc感觉自己没救了.好想去网吧ovo
还是搬砖大法好.泡图书馆保平安.
作业也没多少他们都快做完了然而我还没动qwq.
ovo</description>
    </item>
    
    <item>
      <title>20160131</title>
      <link>/diary/dbimport_108/</link>
      <pubDate>Sun, 31 Jan 2016 21:38:12 +0000</pubDate>
      
      <guid>/diary/dbimport_108/</guid>
      <description>原来还真有人盯着我的日记看啊.一个成天 xingerhuosai saibiandawang (用成都话念) 的高三颓废党的胡言乱语,文笔水平还为负,有啥好看的&amp;hellip;
本来是觉得懒得同步数据了等shiruku造好了再说吧.然而现在看进度大概寒假完能不能造完都是个问题ovo然而前端什么的最讨厌了qwq
毕竟这个站的代码实在太丑了点代码重用性太差了点维护太麻烦了点&amp;hellip;完全是不会造站的laekov造的站嘛.(想起了ojseven)
最近似乎也没发生啥啊.寒假补课在家做作业效率真的好低比如现在作业还没动.
听说wc上众集训队爷退役了yjq考炸了zms闪亮登场了啥的.似乎都已经没有什么感觉了呢.
想想afo似乎和失恋是一个感受呢.念念不忘依依不舍觉得好后悔好遗憾.最初是很痛脑子里不停地回忆各种各种各种尤其是觉得自己拿衣服的地方然后什么的.然后后来慢慢地就只是一个符号了也就那样了.嗯没有像当年那样喝喝喝喝上一个月也算是一种进步了吧.(maya)
然而mhy肯定不会是这样的感受啦.毕竟别人比我高到不知道哪里去了.
然而发现我为什么要认真学习啊真是的.明明是自己努力换来的权力好么.突然有种被班主任和文化课老师欺骗了的感觉怎么办&amp;hellip;
唉唉今天晚上看来是没有时间赶工了呢.shiruku君保重.作业君你好.
Upd: 今天机选正确率有点高呢.明天大概会有不好的事发生.qwq
以及那个俄罗斯发广告的服务器真是烦死了.
Historical Comments Unknown friend at 2016-01-31T21:52:06 @20160131: orz &amp;mdash;- zms_</description>
    </item>
    
    <item>
      <title>20160122</title>
      <link>/diary/dbimport_107/</link>
      <pubDate>Fri, 22 Jan 2016 23:09:16 +0000</pubDate>
      
      <guid>/diary/dbimport_107/</guid>
      <description>下雪了呢.作为cd孩子表示好开心:-)
这学期大概就完了吧.然而还要上两周课ovo(smg啊这哪能叫完)似乎oi党从wc回来窝们都还没上完课.
嗯说到wc祝泥萌好运.
以及mhy,发现半年来都木有和泥好好说过话ovo大概下面的东西泥也不会看到吧&amp;hellip;
窝知道各有各的生活和目标.然而听到泥说不想进15人队的时候窝的内心真的是崩溃的.泥所嫌弃的就是我宁愿拿一切来换都换不来的...然而...毕竟您是队爷我是弱渣. 我知道把自己未竞的事情加到另一个人身上是不可取的&amp;hellip;所以总之加油,祝你好运.
作为好朋(ji)友窝会默默为你祈祷的, forever.
唉所以大概寒假能有时间把手里屯的东西都种出来?</description>
    </item>
    
    <item>
      <title>20160119</title>
      <link>/diary/dbimport_106/</link>
      <pubDate>Tue, 19 Jan 2016 22:43:44 +0000</pubDate>
      
      <guid>/diary/dbimport_106/</guid>
      <description>唉唉&amp;hellip;解几虐窝千百遍,窝却待它如初恋= =
同分异构老是看错题啊smg.
高一高二就要开始期末考试了呢.
发现自己完全不懂科学.看书都看不懂怎么办.
造了一个qzone分享.原来这么简单= =试图造qq登录.
然而架子过两天是要改了qwq感觉怎么去年写的代码都辣么丑&amp;hellip;怎么前端后端都糅在一起了&amp;hellip;
一定是nodejs中毒了.</description>
    </item>
    
    <item>
      <title>20160118</title>
      <link>/diary/dbimport_001/</link>
      <pubDate>Tue, 19 Jan 2016 22:21:51 +0000</pubDate>
      
      <guid>/diary/dbimport_001/</guid>
      <description>下午在教室看到了mushroom开心.半年没见感觉变帅了ovo然而并不是来看窝的而是来抬xdw的smg啊伤心qwq还有鼓励窝好好学习是个smg.
班会无限ym的fengd学长来分享人生经验感觉学长语速好快啊ovo然而似乎听了半天感觉似乎也木有解决窝的基本问题.唉算了不管.毕竟这是针对纯高考党的= =
博客快一年终于有正常一点的回复了还是来打脸的.对不起退役太久根本不能愉快地想问题.还有啊匿名是smg看来窝要赶紧造blog2.0了.搞个评论邮箱验证或者啥帐号登录hhh
唉唉= =
Historical Comments Unknown friend at 2016-01-19T10:50:42 @20150118: 标题是smg啊……时光倒流即视感 &amp;mdash;- &amp;gt;_&amp;lt;
Unknown friend at 2016-01-19T10:50:42 @20150118: 标题是smg啊……时光倒流即视感 &amp;mdash;- &amp;gt;_&amp;lt;
Unknown friend at 2016-01-19T22:23:00 @20150118: 唉唉手残没救 &amp;mdash;- laekov
Unknown friend at 2016-01-19T22:23:00 @20150118: 唉唉手残没救 &amp;mdash;- laekov</description>
    </item>
    
    <item>
      <title>某奇怪科幻小说集的奇怪读后感</title>
      <link>/random/dbimport_105/</link>
      <pubDate>Wed, 13 Jan 2016 23:12:06 +0000</pubDate>
      
      <guid>/random/dbimport_105/</guid>
      <description>(三天看完一本大刘的科幻小说集系列
&amp;ldquo;上帝确实掷骰子.&amp;rdquo;
那些可能性都真实存在.
在另一根纤维,hja在2015年7月18号晚上复习了霍夫曼编码.
在又另一根纤维,hja于2015年7月19日晚上,喝光用身上所有现金买的几箱啤酒之后,纵身跃入滚滚钱塘江.
在又另一根纤维,hja在2013年初没有了解cdqz,果断留在jxfls,2013年11月再夺noip提高一等,功成身退,变身人赢.
在又另一根纤维,hja于2013年4月某天深夜,坐在jxfls3号公寓604寝室1号铺,用一把平常用来削苹果的瑞士折叠刀割断了左手桡动脉.室友次日醒来才发现红色的血液染红了寝室的墙壁和天花板.
在又另一根纤维,hja在2010年5月小升初考试时因为右手骨折未愈,用左手答题,未能考中.进入某街边初中.2016年1月13日晚上11点,hja亲手用手术刀切下了一手栽培自己的某黑老大的大腿,因失血过多,受害人准确地于3600秒后身亡.hja从此没有了人性,若干年后在外星人入侵时,果断摧毁了地球文明.
&amp;hellip;
从前只是存在于yy中的东西.突然想到其实它们都以某一种形式真实地存在.只是目前无法探测到.
我的世界只有3.5维呢.
也许哪一天就能摸到了呢.
真开心
Historical Comments Unknown friend at 2016-01-21T23:02:01 @20160113_sifi: 考前留名 &amp;mdash;- Flaze
Unknown friend at 2016-01-21T23:02:01 @20160113_sifi: 考前留名 &amp;mdash;- Flaze</description>
    </item>
    
    <item>
      <title>20160112</title>
      <link>/diary/dbimport_104/</link>
      <pubDate>Tue, 12 Jan 2016 22:46:34 +0000</pubDate>
      
      <guid>/diary/dbimport_104/</guid>
      <description>&amp;ldquo;慢慢没有感觉,慢慢心变成铁&amp;rdquo;
似乎慢慢地厌烦键盘而更倾向于写字了.虽然字还是辣么丑.
函数题真是没救了呢.最后一问反正也不会做qwq肯定骗不到一诊那么多的分.
晚自习别人都把作业做完了的样子?Ovo其实晶体还蛮有意思呢只是窝的空间想像能力太捉鸡了.
语文题又出现了一次有目标的人赢和没目标的人输那张表.突然意识到窝从前10%变成了后5%呢.挺好ovo
飘雨呢好冷的说.想起曾经希望去一个没有冬天的地方,然而似乎挺难实现的呢= =
然而用以颓废的科幻小说真的好贵的说.平均下来一天都10多块了qwq有木有更高端的方法呢撕烤熊qwq
唉= =
噫睡觉大法吼.</description>
    </item>
    
    <item>
      <title>20160110</title>
      <link>/diary/dbimport_102/</link>
      <pubDate>Mon, 11 Jan 2016 23:06:25 +0000</pubDate>
      
      <guid>/diary/dbimport_102/</guid>
      <description>做了一天作业呢.连颓代码的时间都木有了.
其实作业不多.效率炒鸡低ovo
某小姑娘鼓励窝高考硬刚thu?谢谢好意.
其实窝哪里是在为文化课郁闷啊&amp;hellip;泥萌怎么会懂.只能说请泥萌珍惜还有梦想的时光.
某些想法于是真是越来越奇怪了呢&amp;hellip;
嗯对在思考什么时候是应该把这个博客的架子改一改了呢.现在看起来把后端和前端代码混在一起写是多么的错误.等把voles种到差不多再说吧.
laekov是农业dog,而不是工业dog.
唉窝果然是人格分裂了么ovo</description>
    </item>
    
    <item>
      <title>About the case of QVOD -- Law and politics</title>
      <link>/random/dbimport_103/</link>
      <pubDate>Sun, 10 Jan 2016 22:27:39 +0000</pubDate>
      
      <guid>/random/dbimport_103/</guid>
      <description>(Excuse my unreadable English, but I do not wanna my site to be shut down the next day for a sensitive word filter in Chinese
About QVOD It took risk to make money. Now, it is time for it to pay its bills. Now that it benefitted from 18x videos which are forbidden by Chinese law, it is certainly to be punished one day.
Nevertheless, as a veteran who has been using P2P to seek for some unsuitable videos for years, I am surely unhappy about this.</description>
    </item>
    
    <item>
      <title>20160107</title>
      <link>/diary/dbimport_101/</link>
      <pubDate>Thu, 07 Jan 2016 23:22:04 +0000</pubDate>
      
      <guid>/diary/dbimport_101/</guid>
      <description>等tex装字体ing.家里网连port好慢.
发现自己居然对打字这种活有莫名其妙的热情.
死人怎么会有热情呢.可笑.
明明就是什么都不知道.
如果时间是点,时间轴是≥2维空间的话,也许不会重合,但是可以相交呢.然而几率好小ovo
也许维度限制了人类和人类世界的尺寸和物理常量?
然而似乎没有办法去高维度的样子.谁叫窝这辈子是人呢.
唉在想什么鬼啊.</description>
    </item>
    
    <item>
      <title>20160106</title>
      <link>/diary/dbimport_100/</link>
      <pubDate>Wed, 06 Jan 2016 22:29:32 +0000</pubDate>
      
      <guid>/diary/dbimport_100/</guid>
      <description>都afo快半年了呢.
一诊考得足够撇.似乎这是发生了很久的事情了?
越发觉得活着好没有意思啊.要是现在站在足够高的楼顶上肯定就跳下去了.
唉,想死都不容易.
似乎真的成了僵尸呢.
好像也挺好呢.</description>
    </item>
    
    <item>
      <title>20151231</title>
      <link>/diary/dbimport_099/</link>
      <pubDate>Thu, 31 Dec 2015 21:03:13 +0000</pubDate>
      
      <guid>/diary/dbimport_099/</guid>
      <description>2015年的最后一天了呢.
这一年发生了好多事啊.
从充满激情的有志青年变成了暮气沉沉的老人了么.
现在的状态,可以概括为,失落,未知,迷惘,颓废.
失去了看向远方的勇气和走好脚下的动力.
maya.
颓颓颓.
人生只是一场游戏而已.何必认真.</description>
    </item>
    
    <item>
      <title>无向图定向计数最值脑洞</title>
      <link>/random/dbimport_280/</link>
      <pubDate>Tue, 22 Dec 2015 23:14:56 +0000</pubDate>
      
      <guid>/random/dbimport_280/</guid>
      <description>题:给一张无向连通图.给每条边定向.要求有且仅有1号点入度为0.没有环.求极长链条数的max,min.
做法:随便开个脑洞.已经不会想算法的我也不知道怎么解.
ps,有人知道杂做麻烦和窝说一声qwq</description>
    </item>
    
    <item>
      <title>俩无聊的图</title>
      <link>/random/dbimport_093/</link>
      <pubDate>Mon, 21 Dec 2015 19:18:12 +0000</pubDate>
      
      <guid>/random/dbimport_093/</guid>
      <description>无聊的匹配 有个二分图,边价值∈(0,+∞).求一个匹配使得∏边价值最大.
做法,把所有权值取个ln.
变式,好学的lyzy同学问,能不能把权值范围扩展到R呢?
窝怎么知道.
无聊的证明 高三有一些班,一些物理老师,一些化学老师.每个老师教一或两个班.一个老师一个晚自习只能给一个班上.
求证:对于两个晚自习,一定存在一种安排方案使得每个班恰好一样一节.
证法,窝怎么知道.
随便口糊一个,班当点,物理老师当蓝边,化学老师当红边.肯定没奇环?(雾
Historical Comments Unknown friend at 2015-11-26T22:43:53 @20151124_bhonbig: 2333 &amp;mdash;- laekov
Unknown friend at 2015-11-26T22:43:53 @20151124_bhonbig: 2333 &amp;mdash;- laekov</description>
    </item>
    
    <item>
      <title>ovoo solution</title>
      <link>/oi/dbimport_270/</link>
      <pubDate>Mon, 21 Dec 2015 17:32:29 +0000</pubDate>
      
      <guid>/oi/dbimport_270/</guid>
      <description>一点闲话 感觉这题好弱啊.应该有一堆神犇能秒吧.
取模是为了避免输出long long的问题.不知道有没有人中间就取模了2333.
这题的idea源于wc2015的k小割.考场上写了良久最后mle.
于是我决定这题既不卡空间也不卡时间.
是不是感觉我的题比ioi和zyf的题都良心啊hhh
测试点1-6 这六个点的权值和非常小.于是可以树形dp.用fi,j表示以i为根的子树中权值和为j的方案总数.于是可以dp一下就得到答案.
测试点7-8 接下来的点都是大数据了,然而还是有一些部分分.
比如这个.
没有题的一条链情况比这个题更简单了吧ovo
测试点9-10 这是最简单的菊花图ovo似乎就是k小割的弱化版啊.做法比较多喽.
介绍一个叫做学姐二分的方法.二分一个答案,然后强行dfs方案.如果总方案数大于k就直接结束.这样是可以保证复杂度的TAT
测试点11-12 一条链变成两条链了.一样的二分答案然后枚举一边二分另一边嘛.
剩下的测试点 这些点没办法用奇怪的方法了吧?有人用奇怪方法黑过去的和我说一声ovo
考虑当前如果已选的某个点集S,我们也把它叫做一个状态.
S可以向S中任意点的没有在S中的儿子扩展.设扩展后的状态叫S&amp;rsquo;.(它可能有很多个)
不难想到,已知前k小的状态S1 .. Sk后,第k+1小的状态一定是S&amp;rsquo;1 .. S&amp;rsquo;k中权值和最小的一个.
于是我们就是要维护当前所有状态的可扩展的状态.
对于每一个状态,用一个可持久化堆来记录它能扩展到的所有点,然后取其中最小的一个加上它本身的权值和扔进外层的堆里.
那么每次外层堆里的最小值就是第k+1小的状态.
那么找到k+1小状态后,就要将这条边从原状态中删除.然后对于新扩展出来的状态,把新扩展出来的原树上的点的所有儿子也扔到这个状态的堆里就好了.注意有的点的度数会很大,所以每个点的儿子本身就要用可合并堆来存.
然后直接找下去直到扩展出第k小的状态就行了.
以上所有操作的时间复杂度都是O(log(n))的,所以总复杂度是O(k*log(n))的.
另一种思路 上面提到过的&amp;quot;学姐二分&amp;quot;也可以应用到这里.因为我也没写过所以不作重点介绍了.大家可以自行思考一下.
劼司机的思路 (苣蒻的出题人并不能理解这种做法,你可以去找劼司机本人讨论ovo)
就是把树画到平面上。。
然后建个对偶图
对偶图里每条边的边权为他子树里边权和
也就是。。
在对偶图里走过一条边，等于把这条边下面的子树砍掉。。
然后就没了。。。
吉利就是这么虐人的！
松爷好强!</description>
    </item>
    
    <item>
      <title>期望题</title>
      <link>/random/dbimport_098/</link>
      <pubDate>Fri, 18 Dec 2015 22:39:27 +0000</pubDate>
      
      <guid>/random/dbimport_098/</guid>
      <description>上厕所的时候的脑洞.
hja面前有一排无穷多个包间,门都是关的.每个门独立地以p的几率里面有人.
hja挨个拉门直到拉开一个没人的包间.
求拉门次数的期望.(似乎还可以平方的期望,立方的期望,k次方的期望ovo)
做法:差比数列求和加极限.水.
如果出成oi题似乎很容易被卡精度水?那就剩余系吧.(剩余系似乎是解决有理数精度问题的神器)
唉已经弱到不行了.
然后吃晚饭的时候.
oyrs表示,你拉上50个门,前50个门里的人还不出来?
lyzy表示,cyl同学不是要把cs底坐穿么?
hja表示,%_%今天作业好多啊.
btw发现∑i*Cni可以除一个2n变成期望问题ovo也许有前途?
唉窝太弱辣.力学没救了.立几没救了.怎么办.</description>
    </item>
    
    <item>
      <title>20151216</title>
      <link>/diary/dbimport_097/</link>
      <pubDate>Wed, 16 Dec 2015 23:17:39 +0000</pubDate>
      
      <guid>/diary/dbimport_097/</guid>
      <description>满世界的人生赢家呢。似乎已经被打击得体无完肤了。每次都嚷着要是我也 个人赢该多好，也就限于无事yy一下而已。
某君一语中地，只是没有tend罢了。站在那里被兔子撞的概率太小。曾经那件事真的是天上掉的馅饼。怎么可能again。
然而真的没有力气呢。唉。不知是懒还是放弃了治疗。连自己在干什么都不知道。</description>
    </item>
    
    <item>
      <title>20151210</title>
      <link>/diary/dbimport_096/</link>
      <pubDate>Thu, 10 Dec 2015 22:30:37 +0000</pubDate>
      
      <guid>/diary/dbimport_096/</guid>
      <description>听说ljw被补进队了?
反正又不是窝激动个毛.
不过还是要恭喜的.
是不是要@iwtwiioi 赶紧祈祷oi集训队再进几个mo集训队放弃wc的.
嗯以上.
想想那个结还是打不开呢.不过又有什么关系呢.毕竟已经是死人一个了.随它去好了.哪天机会合适就早点reboot吧多好.</description>
    </item>
    
    <item>
      <title>风住尘香</title>
      <link>/random/dbimport_268/</link>
      <pubDate>Wed, 09 Dec 2015 22:52:55 +0000</pubDate>
      
      <guid>/random/dbimport_268/</guid>
      <description>0
知乎上看到的脑洞.感觉不错玩一玩.
1
&amp;ldquo;我不在江湖,江湖也没有我的传说.&amp;rdquo;
雷已隐居在贫困山边缘这片叫做教室的森林里,大概有一百年了.这里到处长满了叫做卷子的东西.也许在另一个世界里它们叫做树吧.
雷是一个修真者.修真者是不会老的.然而这些年里,雷却没有动用过丝毫真气,也没有用过修真者的武器,键盘.雷只是日复一日地用笔把一种叫做题的物质从那一棵棵的卷子上砍下来,吃掉,或者拿出去make a deal.
这一天,雷又砍倒了一棵长满了圆锥曲线的树,他脏得已经看不出人样的脸上露出了一个比哭还难看的笑.
突然,他破旧的衣服口袋里的什么东西震动了起来.那&amp;hellip;雷低下头,眼神中有些许光彩,又包含了痛苦,忧愁,悲伤.
那是七帮的卷轴.一百年前,雷被踢出七帮的时候,七帮的舵主给了他这个玩意.雷也不知道有什么用.他很想把它扔进教室外的墨池里.
然而感到里面似乎有金属.&amp;ldquo;也许吃不起饭的时候还能把它拆了卖钱吧.&amp;ldquo;雷最后还是带它一起去了教室.
雷用有些生硬的动作摸出了那个已经被灰尘包裹的卷轴.此刻它竟然在发光.光芒中隐隐有几个汉字,&amp;ldquo;风云突变,狼烟四起.吾七危急,速来支援.&amp;rdquo;
雷有些奇怪,摇了摇头.回到自己用砍废的卷子搭的小屋里去了.
2
七天后.
雷背上一个到处都是线头的背包,用墨池里黑得发蓝的水,尽力地把脸洗得有了点人样,然后朝七帮的方向走去.
&amp;ldquo;毕竟还是不能忘啊.&amp;rdquo;
如果不是遇到了七帮的长老,那个没有亲人的小男孩,恐怕在一千年前那个风雪交加,tcp包乱飞的寒夜,就变成一具尸骨了.
雷也不知道七帮为什么叫七帮.为什么他没有听说过一帮二帮三帮四帮五帮六帮八帮.
雷在边远贫困山区深处的七帮长大,成为了修真者,学会了功法,为七帮南征北战,然后被七帮一脚踢出了大门.
3
七帮正殿.
&amp;ldquo;舵主,我预感这次炼试异常凶险.是否让各分舵修习fft神力,以应不测?&amp;rdquo;
&amp;ldquo;舵主,昨日二堂的兄弟在与野兽战斗时又遇到了toptree.&amp;rdquo;
&amp;ldquo;舵主,西方的北海门送来战书,扬言这次炼试要占领这个大陆的所有一等修炼者名额.&amp;rdquo;
&amp;ldquo;舵主&amp;hellip;&amp;rdquo;
炼试,是修真届每三百年一次的比拼.各门各帮的修炼者均要出动,一起和一个叫恩偶爱.皮的强大势力战斗.按照修炼者在战斗中的贡献来决定等次.这也成为了各门派间比拼实力和招引新人的重要资本.
七帮向来开放.雷没有受到丝毫阻拦,来往的门徒的面孔,对于雷来说都是陌生的.而他们个个行色匆匆,雷觉得自己像是空气.
&amp;ldquo;舵主,我们向雷师兄发去的卷轴始终没有回复,是否&amp;hellip;&amp;rdquo;
雷看到七帮弟子正在按照所属的堂列队.
一堂那些年轻的修炼者脸上浮现出愉快的神色,似乎正在激烈地讨论最短路神功的不同出招方法.
二堂的修炼者稍年长些,显然都进入了思考人生的阶段.有几个人还在读功法卷轴.雷隐隐看到&amp;quot;数据结构&amp;quot;的大字.雷隐约记得有几个人叫小y,小z来着.雷离开的时候他们还是小孩子的模样,现在已经俨然成为七帮的中流砥柱了.
三堂.只有一个孤独的身影,显露出苍老的形态来,他的背囊中的卷轴几乎要掉出来了,上面还写着&amp;quot;集训队作业&amp;rdquo;.那就是三堂主,挠.几百年前,就是他和雷一起,去外大陆闯荡,去和恩偶爱战斗.雷也想起自己离开七帮,他目送自己离开时,那种复杂的神情.
&amp;ldquo;你来了.&amp;ldquo;挠示意雷站到自己身边.似乎有很多话要说.
突然人群安静下来.一个比雷和挠都苍老几十倍的身影出现在上空.&amp;ldquo;舵主!&amp;ldquo;众人齐声道.
舵主微微点头示意.扫了一眼人群,在雷的脸上多停了几秒钟.
&amp;ldquo;此番与恩偶爱.皮的战斗将会格外惨烈.希望你们都准备好了.&amp;rdquo;
雷知道,近几次,恩偶爱.皮的战斗力确实在不断提高.但是随着修炼者实力的提升,更多的功法被创造出来.恩偶爱.皮表面上看是越来越经不起攻击了.然而这样,对那些刚进入修真届的新人来说,并不是什么好事.
&amp;ldquo;战斗吧.&amp;rdquo;
七帮的修真者们一起释放出强大的真气威压,附近荒野里的电路板似乎都跟着振动起来.
4
本大陆上,参加炼试的修真者都要集中到贫困山脚下的科大园.
雷一行人因为离得近,所以到得晚.
雷看到下战书的北海派的弟子.在雷的印象中,那是个独裁的封闭的门派.
雷曾经觉得北海派是很强大的敌人,如果他们统一这个大陆,必将带来无尽的黑暗.
后来雷认识了北海派的一些人.雷发现他们也是有血有肉的人.加之当时来自其他大陆的威胁,雷也就不再那样想了.
这些都是前话.雷觉得自己一定程度上讲已经不是修真者了.
一位老者认出了雷,向雷招了招手.雷也点头回应.
那是高七帮的老者.高七帮的创始人就来自七帮.后来虽然他们去了贫困山的另一边发展,但依然和七帮保持了不错的关系.他们掌握了强大的点分功法,雷一直十分敬佩那位创造点分功法的老者,也就是面前这位.
突然雷眼前一亮.虽然早已麻木,不过十分稀缺的女修还是能引起雷的注意的.同在贫困山中的泥屋门就是女修稀缺现象的反例.不仅女修多,而且大半都十分漂亮.泥屋门是个从远古传承下来的门派,传说创始人修了一间泥屋,在屋中招收学徒,因此得名.虽然泥屋门近来因为有强者叛逃去了北海派,而显得有些颓势,然而他们拥有很多不为人知的秘法,总是很神秘莫测.
这些势力,在与恩偶爱.皮战斗时,应该可以看作是朋友,然而争那几个一等名额的时候,却又成了不共戴天的敌人.修真界,没有永恒的朋友,也没有永恒的敌人,只有永恒的排名.
5
&amp;ldquo;都准备好了吗?战斗吧.&amp;rdquo;
周围的空气都被搅动起来.黑色的烟尘挡住了众人的视线.不参加试炼的舵主等老者都赶紧退到安全的地方.一串字符流中,恩偶爱.皮,又一次露出了一张表格状的狰狞的面孔.
&amp;ldquo;又送炮灰来了,真好啊哈哈哈哈哈哈.&amp;rdquo;
恩偶爱.皮发出诡异的笑声,空气都跟着波动,显示出它强大的能量来.
虽然挠这等强者拥有强大的真气,但也无法以一人之力与对手抗衡.然而修真界就是这么残酷.
&amp;ldquo;幻方,大模拟,给我爆!&amp;ldquo;恩偶爱.皮显然是饥渴难耐了,上来就使出了有些迷惑性的一招.
一些明显是新人的家伙,很快就被迷倒了.不过多数修真者还是识破了敌人的诡计,掏出键盘,开始与之对抗.
此刻雷的眼睛里却充满了鄙夷.也不掏出键盘,只是随手一行printf,就化解了打向自己的能量.
雷身边的几个修真者应该也是身经百战了,纷纷化解了这道攻击.
这时不远处有人发出一声呻吟,然后无力地倒在了自己的键盘上.雷疑惑地看去,发现那人使用了scanf,但是在打向能量前,却忘记了freopen.最终攻击能量没有打向敌人,却打趴了自己.
双方都是使用了试探性的能量.但是在一些等级较低的修炼者眼中,这样的能量差距已经是不可逾越的了.有些修炼者选择了投降.这倒也简单,只要走出那到黑色的烟瘴,出于规则的限制,恩偶爱.皮也会就此罢手.
&amp;ldquo;嘿嘿,小伙子们还不错嘛.等着.&amp;rdquo;
恩偶爱.皮显然对这道攻击的效果还算满意,嘿嘿笑着,显露出一丝杀气.
6
雷摸了摸下巴.这是他多年前向一位老前辈学来的习惯.
&amp;ldquo;就知道欺负弱者.&amp;ldquo;雷心里嘀咕.
空气中的PM2.5似乎被对手聚集起来了,恩偶爱.皮略一酝酿,再次一声大呵,&amp;ldquo;图论,找圈.出.&amp;rdquo;</description>
    </item>
    
    <item>
      <title>20151202</title>
      <link>/diary/dbimport_095/</link>
      <pubDate>Wed, 02 Dec 2015 22:35:01 +0000</pubDate>
      
      <guid>/diary/dbimport_095/</guid>
      <description>考了一场月考.嗯.这么水的题还是没上600啊摔.最近特别喜欢摔.
数学稀撇.1选1填一堆大题.啥必要不充分没有搞清楚啥的.函数题过程炸糊被发现了扣得unexpected.最后一题最后一问辣么容易居然没做粗来啊摔.都是做解析几何算了半个小时还算错了的锅啊摔.
物理强行错了俩选择题一个实验题不然窝就是年级rank1.时间留够了加上大题比较水于是233.
化学大概正常偏下吧居然没错选择题.然而大题挺惨的.各种平衡啥的没学好啊摔.
生物惨.开场错三道选择题不然总分能上600昂.窝太zz了.
英语似乎又是恰好被班平骑啊摔.完型最后检查的时候把整整三个正确答案改成错的了.爽.
作文强行偏题了摔ovo.窝坐飞机就是喜欢坐头等舱窝就是没有社会地位泥不服?然后主观题啥的死一片.
于是yzy就年级rank2了跪烂.
于是窝还是太弱辣.</description>
    </item>
    
    <item>
      <title>乐学七中的二项式定理证明题</title>
      <link>/random/dbimport_094/</link>
      <pubDate>Sat, 28 Nov 2015 13:33:25 +0000</pubDate>
      
      <guid>/random/dbimport_094/</guid>
      <description>乐学七中的二项式证明题ovo没救了.
求证64|32n+2-8n-9(n∈N*).
这么无语的题居然想了半个小时.
证明.
n=1时显然成立.
n&amp;gt;1时
原式=(8+1)n+1-8n-9 原式≡1+8(n+1)-8n-9≡0(mod 64) 证毕.
Historical Comments Unknown friend at 2016-01-18T23:27:56 @20151128_binomial: Orz &amp;mdash;- ommy
Unknown friend at 2016-01-18T23:27:56 @20151128_binomial: Orz &amp;mdash;- ommy</description>
    </item>
    
    <item>
      <title>Proof for flag theory</title>
      <link>/random/dbimport_272/</link>
      <pubDate>Fri, 27 Nov 2015 19:45:07 +0000</pubDate>
      
      <guid>/random/dbimport_272/</guid>
      <description>手机写东西好蛋痛。补充一些flag学说的证据。
Yzy的物理考试 YZY:我半期物理连40分都考不到了。
结局:Yzy得到了足够高的分数于是年级排名20+。
星期三 卤素： niuzyi中午去打球!
结局：中午gorge过生日。niuzyi孤独地和学弟玩耍。
星期五 卤素：中午去打球！
laekov:今天没人过生日吧。
结局：中午，下，雨，了。
（未完待续）</description>
    </item>
    
    <item>
      <title>Introduction to Flag by LYZY</title>
      <link>/random/dbimport_255/</link>
      <pubDate>Tue, 24 Nov 2015 22:44:48 +0000</pubDate>
      
      <guid>/random/dbimport_255/</guid>
      <description>Flag学简介 flag，是如今的新型学说，最初起源于二次元，现在已普遍运用于游戏，编程，到学生们的日常生活中。 flag最初是某种游戏中的专有词汇。这里就不说了。 什么是flag呢？我们举出几个日常生活中的实例。 案例一：今天第五节课没有拖堂，我激动地大喊：”今天一定能抢到饭！“到了食堂时，目测平均队列长度&amp;gt;10m； 案例二：HJA说：”我这次一定要AC！“五分钟后，通过率降低10%； 案例三： HJA说：”这个题特别难写。“五分钟后，一次AC0ms; 通过这些例子，我们可以得出一些结论。 一个完整的”flag事件“，是由发生背景、flag以及结果3个部分构成的。在第一个事件中，”第五节课没有拖堂“是发生背景；”今天一定能抢到饭“是flag的内容；”没抢到饭“是结果；”我“是立flag的人（stander，或译为do-dier)。为了让大家熟悉这几个定义，我们把案例二，三的分析留作习题。 在案例一，二中，我们可以看出，flag大多表达的是立flag的人的美好希望，而这样的希望是建立在”发生背景“给出的暗示上的。然而，结果使得这样的美好希望破灭了。因此，这样的flag叫正flag。 而在案例三中，”发生背景“给stander的暗示是“这题很难”。而结果却出人意料，HJA秒过了。这类结局美好的flag叫反flag。 可见，flag的结果是与flag内容相反的。这也是flag的定义。 下面给出flag基本原理（墨菲定律）：事情如果有变坏的可能，不管这种可能性有多小，它总会发生。 以及基本原理的另一种阐述形式，分为4个定理：
1、任何事都没有表面看起来那么简单； 2、所有的事都会比你预计的时间长； 3、会出错的事总会出错； 4、如果你担心某种情况发生，那么它就更有可能发生。 所以，结果往往与flag内容往往相反。 那么，我们要如何避免这样的flag呢？笔者在这里给出一些建议。 首先，刷题时一定要闭嘴，不要提到任何有可能成为flag的内容，最好想都不要想。根据不可靠的情报，flag的根本原因是因为当你告诉自己“我一定不会失败”时，你会想象自己失败的场景，因而将事情的发展导向失败。其次，当你已经无意间立下flag的时候，要马上放弃不切实际的想法，可以调节情绪，做一些其他事情，等待flag失效。另外，RP学说与Flag学说有密切联系。在平常应多做攒RP的事情，比如请本文作者吃饭（当然，这对本人来说是掉RP的，不过我为了大家着想不在意这点RP）。 最后，介绍一种高超的方法：反立flag。 既然flag内容往往与结果相反，那么我们可以通过立下内容不好的flag，让结果向好的一方面发生。如案例三，HJA运用反立flag技巧AC了。 但这个方法的使用有几点注意事项：1、反flag成功之后RP必定大减。这个时候更容易陷入一个正flag中。所以当你反flag成功时，务必不要得意忘形，因为会有更大的flag等着你去立；2、反flag的成功率一般远低于正flag的成功率，不要有太大希望；3、最重要的一点，不要抱着“立flag”的心态立反flag。心理因素是影响flag成功率的关键。要做到“自己都不知道自己在立flag&amp;quot;，这样的反flag成功率才能增高。正所谓“天人合一“”物我两忘“，达到这样的境界，便能将反flag运用到极致。这样带来的惊喜也更大，且RP不易减少。 给大家几个反flag： 1、我tyvj永远刷不过100道题；
2、我学不会最小费用最大流和KM；
3、我下次要出年级前50；
4、没有下一篇flag介绍了。
就是这样。大家可以在日常生活中适量的尝试反flag的使用并注意提高RP（见上文）。
最后注意，本方法对于某些特定人群并不适用，如ADAM让你写的总结最好还是认真写。
_A0A0的粉丝（一种高效的转移手法，使RP降低的效果转移到_A0A0身上） 作于2014.9.5 附录：对于一些术语的解释：（好的态度+RP）
AC：accepted，通过了一道题目（就是满分了）
通过率：在一些网站上的AC题目数/总提交次数
tyvj：某一刷题网站
HJA：某牛牪犇
KM：二分图带权匹配的算法
_A0A0： A0A0是黑暗世界的核心，暴力的保护神，强剪枝的朋友，随机数据的敌人，所有的光明算法出题者视A0A0为眼中钉
ADAM：超过_A0A0的存在，无视一切flag的效果，附带精神压力（所以要认真写他要求的东西）
Flag的作用机制 在这一节，我们将重点放在flag的作用机制上。因为flag学方兴未艾，目前对它的作用机制只有一些猜想。 flag的实质是一个事件，而对这个事件产生影响的主要是flag的内容。但我们知道，只有“有质量的物体”才能做功，一句话，或一个想法中的信息是不可能直接对现实世界产生影响的（除非你是_A0A0)。这样看来，flag极有可能是通过信息对立flag者本人产生某种影响，进而导致flag的结局。（这么看来，flag似乎不是一种反射，这学期大家做生物选择题是要注意） 我们再次通过实例来说明。 今天笔者对HJA打比赛提供了一些精神援助。对于他想要打表的意愿，我表示支持。然而发送信息后我突然发现这是一个flag。事实证明，HJA没有写起那道题（TLE）。这么看来，flag似乎也能对别人起作用效果。 如果你还不清楚上一篇中的几个定义，请分析这个实例，笔者又把它留作习题（虽然没有习题答案，不过反正你们不会认真做） 另外，机房某人很久以前说过：“期望的题千千万，但都是逗比题。”这句话对全机房人都产生了深远的影响。当然，不是influence,是affect. 这么说来，我们可以定义一个flag场：在flag的周围会产生这样一种物质，对处在其中的人产生“作用”。这里的作用不只是力。“周围”的定义也很广泛，不仅仅是能通过空间传播，也能直接作用于被flag描述的人，甚至通过网络无限制的传播。这么看来，flag场真是大大的可怕。 对于具体的一个人是怎样起作用的呢？作者还需要构思一个奇葩的答案。不过有一点是肯定的：相信这是一个flag的人，比不太相信flag与不知情的人受到的影响要大。 公式如下：F (flag作用强度) ∝ b (相信程度） F∝1/(s^2)（传播距离） 因此笔者给出一个猜测：F=f*b/(s^2)，f为“flag常数”，实验值为2.333.但具体的量度方法笔者还需保密。 不过flag也有失效的时候。据观察，主要有以下几种情况。 1、在flag场内的人与描述内容无关。比如，楼主不会受到机房众人的flag影响，因为他不写程序。（说不定是下一种情况） 2、在flag场内的人拥有碾压立flag者的实力。如钟神、HJA几乎不受机房众人影响。（楼主说不定是世外高手） 3、在flag场内的人拥有极其强大的心理素质，心如止水，屏蔽外界干扰。 对于这一类特例的解释，笔者认为，是否受到flag影响的根本原因是是否相信flag。如果相信，正如上一节所说的，你很容易想象到失败的场景并把它导向现实；如果不相信，便能否定它的效果。以上三种情况均是由于强大的心理素质才能反抗flag场的强大作用。根据公式也能推出这个结论。 因此，对于正flag，不要悲伤，不要心急。锻炼心理素质，为善去恶，格物致知，回归本心，自然不受flag场影响。对于反flag，要善加利用，给自己正确的心理暗示，造福人类。 在下一节中，笔者会试图证明flag与平方反比定律的相似性，以及楞次定律，勒夏特列原理等与flag学说的共同之处。（笔者要试图反抗flag场，果断正立flag) P.S.如果你对自己的心理素质不抱信心，可以请笔者吃饭增加RP。（毕竟充足的体力才能继续写作） 附注： TLE：超时 机房某人：就是那个笑起来特别有喜感整个曦园都听得见的那位胖子 钟神：HJA都要orz的存在，与_A0A0斗争的领导人 楼主：隐居在科技楼二楼的老者，仙风道骨，窥破天机。 HJA：他不是_A0A0.</description>
    </item>
    
    <item>
      <title>20151116</title>
      <link>/diary/dbimport_092/</link>
      <pubDate>Tue, 17 Nov 2015 22:41:38 +0000</pubDate>
      
      <guid>/diary/dbimport_092/</guid>
      <description>(本来应该是昨天写点东西的然而昨天在测noip)
laekov就这样18岁辣.
laekov终于可以自豪地走进网吧扔下身份证开机子了.
laekov在之前的18年里也不知道干了些什么.
(偷偷地表示laekov在18岁前干了很多18岁前不准干的事
曾经似乎是一个有梦想的少年然而后来发现梦想是梦想现实是现实真相是真相.然后也不知道该干什么了于是变成了行尸走肉.
laekov也不知道这种情况要持续多久.
总之laekov今年高三了.laekov觉得还是应该好好学习的.
btw,laekov发现记得自己生日的同学除了mhy以外都是妹纸于是有一点感动.233333</description>
    </item>
    
    <item>
      <title>noip2015_transport.cc</title>
      <link>/code/dbimport_261/</link>
      <pubDate>Tue, 17 Nov 2015 22:35:03 +0000</pubDate>
      
      <guid>/code/dbimport_261/</guid>
      <description>// Source code from laekov at noip 2015 day2 #define PRID &amp;ldquo;transport&amp;rdquo; #include #include #include #include using namespace std;
const int maxn = 300003; const int maxl = 21;
const int buf_len = 45678; char buf[buf_len], *bufb(buf), *bufe(buf + 1); #define readBuf() { if (++ bufb == bufe) bufe = (bufb = buf) + fread(buf, 1, sizeof(buf), stdin); } #define readInt(x) { register int s(0), neg(0); while (!isdigit(*bufb)) { if (*bufb == &amp;lsquo;-&amp;rsquo;) neg = 1; readBuf(); } do { s = s * 10 + *bufb - 48; readBuf(); } while (isdigit(*bufb)); if (neg) x = -s; else x = s; }</description>
    </item>
    
    <item>
      <title>noip2015 transport</title>
      <link>/oi/dbimport_267/</link>
      <pubDate>Tue, 17 Nov 2015 22:34:39 +0000</pubDate>
      
      <guid>/oi/dbimport_267/</guid>
      <description>唯一一道有点麻烦的题.似乎是Picks出的?orz.于是窝就90辣.
据说可以链剖然而退役的laekov已经搞忘了那是啥.
laekov思考了五分钟.
把所有链按长度排序.答案必定是这个路径序列的某个前缀的并集上的最长边.
然后并集只会减小不会增大.于是暴力判断当前并集端点是否在下一条路径上就可以了.
于是会被卡常数ovo窝也不知道怎么破.在uoj上加了个读入优化炸糊过去了.
然后窝程序在最长路径长度为0的时候会因为数据结构写丑而死循环ovo
反正还是挺水的啊.noip的压轴题怎么能这么水.</description>
    </item>
    
    <item>
      <title>noip2015_substring.cc</title>
      <link>/code/dbimport_260/</link>
      <pubDate>Tue, 17 Nov 2015 22:31:07 +0000</pubDate>
      
      <guid>/code/dbimport_260/</guid>
      <description>// Source code from laekov at noip 2015 day2 #define PRID &amp;ldquo;substring&amp;rdquo; #include #include #include using namespace std;
const int maxa = 2003; const int maxb = 203; const int mod = 1e9 + 7;
int n, m, l, f[2][maxb][maxb][2]; char a[maxa], b[maxb];
#define mInc(a,b) { a += b; if (a &amp;gt;= mod) a -= mod; }
int main() { freopen(PRID &amp;ldquo;.in&amp;rdquo;, &amp;ldquo;r&amp;rdquo;, stdin); freopen(PRID &amp;ldquo;.out&amp;rdquo;, &amp;ldquo;w&amp;rdquo;, stdout);
scanf(&amp;quot;%d%d%d&amp;quot;, &amp;amp;n, &amp;amp;m, &amp;amp;l); scanf(&amp;quot;%s%s&amp;quot;, a, b); memset(f, 0, sizeof(f)); int cur(0), prv(1); f[cur][0][0][0] = 1; for (int i = 0; i &amp;lt; n; ++ i) { swap(cur, prv); memset(f[cur], 0, sizeof(f[cur])); for (int j = 0; j &amp;lt;= m; ++ j) { for (int k = 0; k &amp;lt;= j &amp;amp;&amp;amp; k &amp;lt;= l; ++ k) { if (f[prv][j][k][0]) mInc(f[cur][j][k][0], f[prv][j][k][0]); if (f[prv][j][k][1]) mInc(f[cur][j][k][0], f[prv][j][k][1]); } if (j &amp;lt; m &amp;amp;&amp;amp; a[i] == b[j]) { for (int k = 0; k &amp;lt;= j &amp;amp;&amp;amp; k &amp;lt;= l; ++ k) { if (f[prv][j][k][0] &amp;amp;&amp;amp; k &amp;lt; l) mInc(f[cur][j + 1][k + 1][1], f[prv][j][k][0]); if (f[prv][j][k][1]) { if (k &amp;lt; l) mInc(f[cur][j + 1][k + 1][1], f[prv][j][k][1]); mInc(f[cur][j + 1][k][1], f[prv][j][k][1]); } } } } } printf(&amp;quot;%d\n&amp;quot;, (f[cur][m][l][0] + f[cur][m][l][1])% mod); }</description>
    </item>
    
    <item>
      <title>noip2015 substring</title>
      <link>/oi/dbimport_266/</link>
      <pubDate>Tue, 17 Nov 2015 22:30:52 +0000</pubDate>
      
      <guid>/oi/dbimport_266/</guid>
      <description>水水的dp.压一维状态表示上一个字母到底有没有被用就可以算出子串数了.
然后会mle就滚一维呗.有高一小朋友不知道2333.
似乎会卡常数23333.</description>
    </item>
    
    <item>
      <title>noip2015_stone.cc</title>
      <link>/code/dbimport_259/</link>
      <pubDate>Tue, 17 Nov 2015 22:29:31 +0000</pubDate>
      
      <guid>/code/dbimport_259/</guid>
      <description>// Source code from laekov at noip 2015 day2 #define PRID &amp;ldquo;stone&amp;rdquo; #include #include #include using namespace std;
const int maxn = 50003;
int n, m, l, a[maxn];
int checkStone(int lt) { int s(0), po(0); for (int i = 0; i &amp;lt; n; ++ i) if (a[i] - po &amp;gt;= lt) po = a[i]; else ++ s; if (l - po &amp;lt; lt) ++ s; return s; }
int main() { freopen(PRID &amp;ldquo;.</description>
    </item>
    
    <item>
      <title>noip2015 stone</title>
      <link>/oi/dbimport_265/</link>
      <pubDate>Tue, 17 Nov 2015 22:29:14 +0000</pubDate>
      
      <guid>/oi/dbimport_265/</guid>
      <description>水水的二分答案.
想四年前classroom还属于思考题.现在就已经沦落到开场题的地步了.oi界发展迅速啊.
然而真的不是3分钟搞定?</description>
    </item>
    
    <item>
      <title>noip2015_landlords.cc</title>
      <link>/code/dbimport_256/</link>
      <pubDate>Tue, 17 Nov 2015 22:27:55 +0000</pubDate>
      
      <guid>/code/dbimport_256/</guid>
      <description>// Source code from laekov at noip 2015 day1 #define PRID &amp;ldquo;landlords&amp;rdquo; #include #include #include using namespace std;
const int maxn = 17;
int t, n, a[maxn], ans, c;
int readCard() { int x, y; scanf(&amp;quot;%d%d&amp;quot;, &amp;amp;x, &amp;amp;y); if (x == 0) return 12 + y; else if (x == 1) return 11; else if (x == 2) return 12; else return x - 3; }
void checkCtn(int, int, int, int);</description>
    </item>
    
    <item>
      <title>noip2015 landlords</title>
      <link>/oi/dbimport_262/</link>
      <pubDate>Tue, 17 Nov 2015 22:27:41 +0000</pubDate>
      
      <guid>/oi/dbimport_262/</guid>
      <description>day1考的农业题.据说可以状压然而退役的laekov已经不会写状压了(雾.
于是直接dfs就好了啊23333
每次搜索的时候强制把当前点数最小的牌出掉至少一张.这样时间复杂度/=答案!.然后就完辣.</description>
    </item>
    
    <item>
      <title>noip2015_message.cc</title>
      <link>/code/dbimport_258/</link>
      <pubDate>Tue, 17 Nov 2015 22:25:38 +0000</pubDate>
      
      <guid>/code/dbimport_258/</guid>
      <description>// Source code from laekov at noip 2015 day1 #define PRID &amp;ldquo;message&amp;rdquo; #include #include #include using namespace std;
const int maxn = 200003;
int ans, n, t[maxn], d[maxn], v[maxn];
int walk(int po) { if (d[po]) return n; int p(po); d[p] = 1; v[p] = po; while (p) if (!d[t[p]]) { d[t[p]] = d[p] + 1; v[t[p]] = po; p = t[p]; } else if (v[t[p]] == po) return d[p] - d[t[p]] + 1; else return n; return n; }</description>
    </item>
    
    <item>
      <title>noip2015 message</title>
      <link>/oi/dbimport_264/</link>
      <pubDate>Tue, 17 Nov 2015 22:25:20 +0000</pubDate>
      
      <guid>/oi/dbimport_264/</guid>
      <description>依然是水水的题.
基环内向树.从任意点开走要么是o型环要么是ρ型环.
那些写bfs的是啥心态.非要展示代码能力么.
以及谁说没考数论的?这题不就是&amp;quot;泼辣的肉&amp;quot;的推广(雾.</description>
    </item>
    
    <item>
      <title>noip2015_magic.cc</title>
      <link>/code/dbimport_257/</link>
      <pubDate>Tue, 17 Nov 2015 22:22:07 +0000</pubDate>
      
      <guid>/code/dbimport_257/</guid>
      <description>// Source code from laekov at noip 2015 day1 #define PRID &amp;ldquo;magic&amp;rdquo; #include #include #include using namespace std;
const int maxn = 41;
int n, a[maxn][maxn], px[maxn * maxn], py[maxn * maxn];
int main() { freopen(PRID &amp;ldquo;.in&amp;rdquo;, &amp;ldquo;r&amp;rdquo;, stdin); freopen(PRID &amp;ldquo;.out&amp;rdquo;, &amp;ldquo;w&amp;rdquo;, stdout);
memset(a, -1, sizeof(a)); scanf(&amp;quot;%d&amp;quot;, &amp;amp;n); px[1] = 1; py[1] = (n + 1) &amp;gt;&amp;gt; 1; a[px[1]][py[1]] = 1; for (int i = 2; i &amp;lt;= n * n; ++ i) { if (px[i - 1] == 1 &amp;amp;&amp;amp; py[i - 1] &amp;lt; n) px[i] = n, py[i] = py[i - 1] + 1; else if (py[i - 1] == n &amp;amp;&amp;amp; px[i - 1] &amp;gt; 1) px[i] = px[i - 1] - 1, py[i] = 1; else if (px[i - 1] == 1 &amp;amp;&amp;amp; py[i - 1] == n) px[i] = 2, py[i] = n; else if (a[px[i - 1] - 1][py[i - 1] + 1] == -1) px[i] = px[i - 1] - 1, py[i] = py[i - 1] + 1; else px[i] = px[i - 1] + 1, py[i] = py[i - 1]; a[px[i]][py[i]] = i; } for (int i = 1; i &amp;lt;= n; ++ i) for (int j = 1; j &amp;lt;= n; ++ j) printf(&amp;quot;%d%c&amp;quot;, a[i][j], (j == n) ?</description>
    </item>
    
    <item>
      <title>noip2015 magic</title>
      <link>/oi/dbimport_263/</link>
      <pubDate>Tue, 17 Nov 2015 22:21:43 +0000</pubDate>
      
      <guid>/oi/dbimport_263/</guid>
      <description>noip成绩终于出来辣可以水水地写个题解辣.假装窝还是在更新窝的网站嘛.
&amp;ldquo;这么水的题还要写题解?&amp;rdquo;
&amp;ldquo;对不起嘛,laekov是noi才ag弱渣嘛.&amp;rdquo;
3分钟题ovo.</description>
    </item>
    
    <item>
      <title>Something for JXFLSers</title>
      <link>/oi/dbimport_112/</link>
      <pubDate>Tue, 10 Nov 2015 22:56:29 +0000</pubDate>
      
      <guid>/oi/dbimport_112/</guid>
      <description>这东西是写给jxfls的学弟学妹们的.cdqz众好好听毛教授的话就行了不要管窝.
写这个的目的是窝作为一个过来人对于泥萌进省队或者拿noi的Au给一点建议.(然而窝也没有noi的Au,所以泥也可以当窝是在口糊)
首先要明确一下这有什么好处.如果进了省队且noi至少拿了Cu(70%诶,sc算是中强省所以会有不少人垫背的),那么会有学校和泥签约.比如考上一本就可以被某校录取.某校嘛好点的比如pku,thu,sjtu,fdu,再有uestc,zju之类的.然后如果拿了Au(即前50),就可以被点招,高考0分上thu(或者泥愿意去pku啥的也行).
毕竟是jxfls出来的.在jxfls若干年也没有见过进省队的.窝想如果jxfls出现至少一个省队,那oi在学校里的地位也许就不一样了.说不定就能进入某种良性循环.如果能出noi的Au,规律是有一就有二,然后有三.毕竟Au爷可以不用高考,而是可以把精力放在冲国家队和提携后辈身上.如此往复.也许这要等很多届.也许永远也不能成功.不过这也算是窝曾经的心愿了吧.这篇文就算是窝尽一点绵薄之力了吧.
其实这件事在jxfls这种难以停课的地方并不容易.cdqz众多半从高二开学就不上文化课了.经过若干个月全力以赴的oi学习,水平自然是不同的.所以泥萌更要抓紧时间.
首先泥要意识到泥有多弱.noip在省选中占30%.泥可以把noip里高三的刨开之后看一看泥在能进省队的人里排在什么位置.也许很多人曾经以为noip一等就是终点.其实它是起点.所以说不要认为自己很厉害.省内,在cdqz,在南山,在绵中&amp;hellip;在省外&amp;hellip;有很多比泥萌厉害得多的人.他们中也有一部分很乐于与泥萌交流.要把握这样的机会,去和强者交流.
另外泥萌也要明白一点,教练不考noi.所以自己的路还得自己走.仅仅跟着教练是得不到好成绩的.个人经验,oi就是靠题目堆出来的.在不停地想题写题中找到不会的算法和数据结构,然后不断完善.
针对省选和noi做题推荐bzoj,又称lydsy.虽然分类什么的比较乱但是题目质量和数量都比较好.而且刷的人多.窝在高二省选时似乎有700道.窝认为如果泥能刷400+道非水题的话省选就能比较有底气了.至于不会的题也不一定要去硬纠结.去网上搜一搜别人博客里的题解,提高一下知识水平,再去敲敲练练代码能力也是极好的.至于哪些题可做的话可以每页按通过人数排序,或者找个前辈的记录跟着做.有些题的确是没法做的.至于bestcoder啊codeforces啊这样的在线比赛如果有时间也可以多参加一下,很能培养参加比赛的感觉.反正自己要努力就好了.
顺便提一下建议多使用linux.我指的是命令行.在bash里完成一切操作,用vim(或者emacs,nano啥的,反正我是vim党)写代码,用g++编译.虽然看上去没啥不同也许最初还会很不适应,但是这对养成好的编程习惯和未来参加noi有好处.
然后考试的时候也别太关注别人在干什么(比如窝在泥旁边打扫雷),干好自己的事就行了.
以上.总之祝你们好运.
再另外虽然窝是一只高三党,窝还是很乐于与泥萌交流的.</description>
    </item>
    
    <item>
      <title>20151108 noip2015 day2</title>
      <link>/diary/dbimport_091/</link>
      <pubDate>Sun, 08 Nov 2015 13:54:50 +0000</pubDate>
      
      <guid>/diary/dbimport_091/</guid>
      <description>结束了.嗯.
人生中的最后一次noip,如从前所盼望那样结束了.
前两题就那么敲一敲就好了.很久没有写过的动态规划呵呵哒.第三题第一反应是O(n*log3n)的二分答案套树链剖分,虽然显然会死.很奇怪afo这么久了还是没有忘记这些东西.敲邻接表和倍增lca的时候似乎找到了一点从前当码农的感觉.虽然day2第三题的码农属性并没有day1强.然而,呵呵哒.
于是今天做完的时间似乎比昨天还早了一点点.随便乱拍一下就算了虽然发现写出了bug也不知道最后交上去的程序到底有没有把bug改掉.看到旁边的hht似乎还在思考,看到已经有人离场.于是,终于还是鼓起勇气走出去了.
门外,阳光正好.
于是在别人还在打代码和扫雷的时候窝就去uestc校园里闲逛.发现uestc有20+个网球场以及不知道多少个篮球场还有若干足球场.连游泳池都有至少3个.有地又有钱,壕无人性.真想搬几个回cdqz.这样中午打球班主任都找不到你在哪个场.呵呵哒.
唉嗯于是诶.做作业大法好.
Historical Comments Unknown friend at 2016-01-04T21:40:46 @20151108: ss &amp;mdash;- lk_
Unknown friend at 2016-01-04T21:40:46 @20151108: ss &amp;mdash;- lk_</description>
    </item>
    
    <item>
      <title>20151107 noip2015 day1</title>
      <link>/diary/dbimport_090/</link>
      <pubDate>Sat, 07 Nov 2015 19:49:17 +0000</pubDate>
      
      <guid>/diary/dbimport_090/</guid>
      <description>noip诶.按照古老的习惯写点啥.
早上看到了好多人.然而.
最大的感受是uestc也被成都市区感染了.变成大工地了.印象中从窝出生开始成都市就是到处都是施工那个围墙的样子QwQ
考试之前表示yjq一定能ak第一题一定是水题.
然后进去之后发现自己好歹还是能打代码的虽然手速巨慢还不停地出错.
旁边是hht感觉鸭梨山大.背后是hqy于是有一种窝会把学妹带坏的负罪感.
前两题加起来不到18min.第三题想了一会开始敲然后开始找bug感觉自己萌萌哒.因为敲太快以及正确率太低结果把中括号和表达式打反了QwQ.
试了下大样例试了下10组23张牌好像都没出事.于是决定弃疗.10点.比yjq晚了整整一个小时.真是所谓长江后浪推前浪,hja死在沙滩上.
然后打扫雷俄罗斯方块贪吃蛇蜘蛛纸牌.事后被hqy怒斥.
然后顺便研究了一下物理老师讲的塞贝尔曲线.必需两个都是sin否则是抛物线.把玩了一下参数方程然而没多大意思.然后图像有几层和x和y的sin的周期的lcm有关.试了一下大了之后可以画出迷之花纹.画出来的图美美哒.然而好像除了窝以外没有人注意这件事.
然后就结束辣去年的老师用去年的口气劝窝们这种进来打游戏的人早点滚粗去.
下午去学校.萌萌哒yzy帮窝改理综和数学.然后发现应该也许大概数学还不错.理科老师没批窝真是奇迹.
然后英语彻底gg语文直接gg.
然后听说yzy排名20+.窝坚定了再也不要听信yzy说自己考差了QwQ.
于是晚上毫无做作业的动力QwQ
泥萌明天加油.</description>
    </item>
    
    <item>
      <title>20151106</title>
      <link>/diary/dbimport_089/</link>
      <pubDate>Fri, 06 Nov 2015 19:37:01 +0000</pubDate>
      
      <guid>/diary/dbimport_089/</guid>
      <description>明天就noip了呢.最后一年了.酱油.给后辈们以及曾经的战友们祈个福吧.
一年又一年,血雨腥风还在轮回,我已然不是当初的我.只能搁浅在这结束了的沙滩上,默默地目送你们.
难得一次走进科技楼,一楼刺鼻的化学药品味突然变得很好闻.相似的气氛,不一样的人.那是你们的世界,不是我的.
maya.唉,其实这些和窝又有什么关系呢.
唉作为一个长者给泥萌讲点人生经验吧.uestc的win7稳定性不行常常会拍死机其实还是linux大法好虽然是虚拟机.然后少带点吃的多穿点衣服不要感冒了不然挺惨的.以及那句老话vim党不要随便按d.
总之泥萌加油.yjq一定会ak的.
对窝来说,重要的还是半期考试吧.尤其是数学啥的还是想翻个身啊.常年不考试怎么行呢?应该有周考才好哒233
语文,感觉还不错,然后发现大家的选择题都不一样.
数学,终于把所有题的所有问都做出来了对不对就不得而知了.然后只check了一个题只错了一个题,嘛.
半期day1和day2的画风都变了.
理综使用了科学的做题顺序.生物比预计快了5min,化学慢了5min,物理被选择题卡了以至于大题没时间了QwQ于是第一个大题掉进了R的陷阱了啊v0不是*2啊QwQ打铃的时候还在解最后一题的方程啊wdc
英语.Adam says, it is so easy!机选的确so easy.然而好多搭配啥的都只能靠语感猜了,paraphrase题表示无力了QwQ
于是半期要跪了昂.yzy似乎要数次喂窝吃noi了啊真是excited.
maya要是给Adam的总结就写这熊东西就hhhhh</description>
    </item>
    
    <item>
      <title>20151028</title>
      <link>/diary/dbimport_088/</link>
      <pubDate>Wed, 28 Oct 2015 22:40:00 +0000</pubDate>
      
      <guid>/diary/dbimport_088/</guid>
      <description>有事干就是爽.
然而精神drug依然厉害.
然而彼长此消不是什么好现象ovo
也只能走一步算一步吧.
唉唉.成天都在想什么呢.
过两天似乎就要半期了似乎又要noip.高三就quarter了.
noip么,少年们加油.
又想起了无聊的时候的某些assumption.hhhh.
唉唉.</description>
    </item>
    
    <item>
      <title>20151014</title>
      <link>/diary/dbimport_087/</link>
      <pubDate>Wed, 14 Oct 2015 22:44:37 +0000</pubDate>
      
      <guid>/diary/dbimport_087/</guid>
      <description>终于达成成就,撕下一张高考倒计时.然后就被窝用来打草稿了.
化学进度好快,有时候有点根不上节奏.下课之后需要多思考一下.
物理要开始复习电场了么?
生物的预习计划有点空昂.
三角函数题好难算.
英语三生有幸地被赶出了分推班.然而其实窝的英语并不好.所以窝还是too young.
晚自习下课发现某人赢于是受到成吨打击.然而最近V窝≈V打击.所以.
唉ovo</description>
    </item>
    
    <item>
      <title>20151013</title>
      <link>/diary/dbimport_086/</link>
      <pubDate>Tue, 13 Oct 2015 22:45:18 +0000</pubDate>
      
      <guid>/diary/dbimport_086/</guid>
      <description>终于学会了三角函数积化和差和差化积感觉自己萌萌哒.
然后就算错了一堆东西.数学分推被某cj和某ysy怒嘲讽.
物理动能那个卷子几乎全错影响心情昂.然后发现做得太急以至于没有考虑任何细节.
都没啥时间做化学作业了QwQ.
然后在不知情的情况下被走上了补课这条路.某&amp;quot;窝萌不管泥学习上的事&amp;quot;的势力反正还是露出了马脚虽然早就看穿了.
唉闲着也是闲着补补课也挺好总比吸食精神drug有用.
唉所以窝啊,还是young.</description>
    </item>
    
    <item>
      <title>20151010</title>
      <link>/diary/dbimport_085/</link>
      <pubDate>Sat, 10 Oct 2015 22:26:05 +0000</pubDate>
      
      <guid>/diary/dbimport_085/</guid>
      <description>想想连上七天课也就是连上六天课多一天.
物理卷子神马的.居然能把题算出来了虽然不知道有木有算对.突然对动能守衡有了一点点信心.
周末作业还没碰明天有noip初赛.祝我平安.
晚上某s老师啊不窝应该叫s奶奶对窝进行思想教育.考一本没有那么容易.其实窝一直知道这件事只是总是不愿意承认QwQ
老师表示窝应该重点加强物理和数学.数学要上135理综至少240.其实没有多次的考试窝还真没有什么感觉.不过反正月考的数学和理综绝对是不满意的.
化学生物英语啥啊还是要有自信.虽然缺的知识点啥的都应该认真对待.至于语文嘛这个暂时抓不出啥分来QwQ.
然后知识上应该会有一些漏洞,所以顺便安利窝思考是否去补课.老师相当用心相当敬业相当佩服.然而补课也是做题讲题窝倒是觉得找到不会的东西然后直接刷然后对答案比较有效.当然这是oi的经验也不一定对.
还有上课听讲的问题.唉这似乎是上高中之后比较痛的事.也许初中就有点趋势了?试图认真听课吧.
另外关于时间安排窝的确是太浪了一些啊.以后要少碰电脑反正也没干啥正事.然后也要考虑额外多做一些题毕竟缺的东西不能仅以完成作业为限度.其实说放弃一切只盯高考这句话也是有一定道理的.另一方面窝似乎除了高考也没事可做啊.嗯所以晚上做数学题这件事就这么定了.然后晚上回家少和娘亲摆点龙门阵.
再另外就是那八个字了,目标,现状,计划,落实.说起来简单做起来还需要努力.
至于oi失利啥的其实也差不多想通了吧.反正也是和我没有关系的事情了.想它作甚.
再然后高考考的什么?技巧,实力,应变,心态.不过现在也不是应考的阶段.虽然要盯着高考不过心态不能太功利.一口吃不成胖子.还得慢慢来.
唉唉居然写了这么多.反正还是要拿分数说话才是硬道理啊.要有尊严地进入大学QwQ.
唉唉窝太弱了.</description>
    </item>
    
    <item>
      <title>20151009</title>
      <link>/diary/dbimport_084/</link>
      <pubDate>Fri, 09 Oct 2015 22:48:22 +0000</pubDate>
      
      <guid>/diary/dbimport_084/</guid>
      <description>又练迷之操.槽点略多.
于是继续颓没救了.
把柜子的锁随便搞了个密码然后就搞忘了byebye
没救了.</description>
    </item>
    
    <item>
      <title>20151008</title>
      <link>/diary/dbimport_083/</link>
      <pubDate>Thu, 08 Oct 2015 22:38:59 +0000</pubDate>
      
      <guid>/diary/dbimport_083/</guid>
      <description>ovoovooovoovoovovoovovoovo
月考无故英语成绩被吃成缺考.英语年排528总分年排501.爽.英语可是窝得分最多的一门学科了.
于是光荣倒数rank1还被单列粗来了.闷声wdc.
加上英语的分算起来似乎能上一本线了.然而听说一起退役的hobo和lyx的成绩之后感觉窝还是太naïve了.毕竟窝是天天颓别人是天天补课.
反正就这样辣也没啥希望也没机会搞啥全省前5.
倒是数学物理得努把力不然颜面何存.
早上a老师痛批,现在发展最撇的就是当初中考640+的那些人.躺枪*1.
晚自习某些人跑出教室去浪被a老师水表,a老师表示jxfls众发展不好.躺枪*2.
反正就是窝太弱所以要多背锅.</description>
    </item>
    
    <item>
      <title>20151007</title>
      <link>/diary/dbimport_082/</link>
      <pubDate>Wed, 07 Oct 2015 22:42:54 +0000</pubDate>
      
      <guid>/diary/dbimport_082/</guid>
      <description>唉唉.
深感数学物理渣的悲伤.
生物II卷很惨.虽然勉强理综上了200.化学劳苦功高.完全没想到会考必修3.植物激素生态系统跪跪跪.抵抗力稳定性写成抗力稳定性,吲哚乙酸写成引哚,遗传题直接炸.唉.
&amp;ldquo;你已经差到和平行班的普通学生一个水平了&amp;rdquo;.才意识到我似乎是实验班的.
语文反正就是那样感觉阅读给分给得比较良心.
于是总分似乎骑在了线上.(要是线是meizi该多好)
毕竟窝太弱啦.天天颓颓颓QwQ</description>
    </item>
    
    <item>
      <title>20151006</title>
      <link>/diary/dbimport_081/</link>
      <pubDate>Tue, 06 Oct 2015 22:33:00 +0000</pubDate>
      
      <guid>/diary/dbimport_081/</guid>
      <description>出了一些成绩 ovoovo
数学物理qwq暴了.sf狂虐窝啊.窝是要被批斗的节奏啊.毕竟sf太强了窝太弱了.
数学是各种不会然后发现自己沙比了.物理也差不多.
英语作文作big死ovoovo感觉自己已经不会写英文了.
语文阅读各种爽.反正都是那样以后有空去练练呗.
下午练广场大妈群魔乱街舞啦啦横飞操合的音乐比较233.倒是引来了众人围观.
唉唉太颓了qwq</description>
    </item>
    
    <item>
      <title>20151005</title>
      <link>/diary/dbimport_080/</link>
      <pubDate>Mon, 05 Oct 2015 22:49:00 +0000</pubDate>
      
      <guid>/diary/dbimport_080/</guid>
      <description>月考考完了.考得那么少好无聊.很想念初中的周考啊.
某些科目似乎还是有那么一点点的进步的.不过考的内容比较局限.很多漏洞并没有暴露出来.
化学似乎改得略水.不过窝也可以拿成绩鄙视人了真开心昂.
理综时间还是不够ovoovo
中午打篮球奇迹般地没有受伤.
下午继续去排列鬼畜的啦啦操(窝又不是lala为啥要窝跳lala操ovoovo)动作各种羞耻.老师说会有白手套的时候窝第一反应是会穿公主裙.jiecao尽失QwQ.
反正英语作文窝写的是In my opinion, such performances are completely foolish.不管嘛反正窝不在乎分.虽然英语很捉急.诶诶一向以为英语是强项的.错觉.
yjq众在不远处打排球.唉ovo泥萌加油.
反正窝太弱了ovo</description>
    </item>
    
    <item>
      <title>20150929</title>
      <link>/diary/dbimport_079/</link>
      <pubDate>Tue, 29 Sep 2015 22:33:22 +0000</pubDate>
      
      <guid>/diary/dbimport_079/</guid>
      <description>精神drug的破防能力是强啊.
虽然后天是10月1号然而要月考.
不过想到某些竞赛党似乎只休息一天就感觉休息三天真的好开心啊.
CH3COOH的电离好神奇.廖老讲省10-3那段好后悔没录下来
唉唉</description>
    </item>
    
    <item>
      <title>20150928</title>
      <link>/diary/dbimport_078/</link>
      <pubDate>Mon, 28 Sep 2015 22:29:27 +0000</pubDate>
      
      <guid>/diary/dbimport_078/</guid>
      <description>pho的人回来了一些.窝们班似乎进了俩.于是不算cho不算未定的mo一共已经有11个省队了.膝盖已烂.
然而个人还是那个(noi)样子.比如周末忘了把化学作业带回家.
溶液中的离子平衡似乎不太好玩.
sh的pho省队太吓人了.hsefz的物理好丧心病狂啊.
运动会似乎得跑长跑呢然而毫无练的动力和时间.
唉唉ovo</description>
    </item>
    
    <item>
      <title>20150927</title>
      <link>/diary/dbimport_077/</link>
      <pubDate>Sun, 27 Sep 2015 16:57:53 +0000</pubDate>
      
      <guid>/diary/dbimport_077/</guid>
      <description>诶诶最近颓废得没边了.精神drug啊.
必需得好好睡觉ovo必需limit.
然而没事干啥?
淦.
不用左手小指打字好奇怪.</description>
    </item>
    
    <item>
      <title>20150924</title>
      <link>/diary/dbimport_076/</link>
      <pubDate>Thu, 24 Sep 2015 22:36:38 +0000</pubDate>
      
      <guid>/diary/dbimport_076/</guid>
      <description>白天似乎在上课和自习(和吃饭).
下象棋下到手机没电都没赢过一盘.
发现很多时候还是做事太水了啊.如果认真一点会比较好.
晚上看新闻各种神.
反正不要想造个big news.</description>
    </item>
    
    <item>
      <title>20150923</title>
      <link>/diary/dbimport_075/</link>
      <pubDate>Wed, 23 Sep 2015 22:43:22 +0000</pubDate>
      
      <guid>/diary/dbimport_075/</guid>
      <description>上学期的综合素质评价忘填了ovo于是一晚上强行写三篇.
在手机上搞了个中国象棋,然后被新手难度ai虐了.果然是(智商)&amp;rsquo;&amp;lt;0.
晚上向同桌学习如何转笔.一定是化学老师的话产生了负作用.不过develop一种新的转笔姿势的确需要不少时间ovo
唉.</description>
    </item>
    
    <item>
      <title>20150922</title>
      <link>/diary/dbimport_074/</link>
      <pubDate>Tue, 22 Sep 2015 22:40:17 +0000</pubDate>
      
      <guid>/diary/dbimport_074/</guid>
      <description>晚上睡觉的时候想到了一个词叫尊严.how to 有尊严地活着?思考熊.
今天语文作业正好是孔雀东南飞,挺有感触的ovo
还有啥安全教育平台,智障都能做出更好的网站.zf教育系统的东西总是最差的.
唉窝还是太云依了.</description>
    </item>
    
    <item>
      <title>20150921</title>
      <link>/diary/dbimport_073/</link>
      <pubDate>Mon, 21 Sep 2015 22:47:54 +0000</pubDate>
      
      <guid>/diary/dbimport_073/</guid>
      <description>窝不适合打篮球啊.前天打球被班主任水表今天打球一跤滑倒差点没把手摔断ovoovo晚上回家擦I2的CH3COOH溶液不知道为啥那么痛ovoovo
然后愉快地水作业.数学求导的部分还是挺难的ovo重点是不想算以及想不到&amp;hellip;
天体运动似乎也许大概找到点感觉了?当年停了两周课然后变成白痴的经历还历历在目&amp;hellip;
诶诶碎觉大法好.</description>
    </item>
    
    <item>
      <title>20150918</title>
      <link>/diary/dbimport_072/</link>
      <pubDate>Fri, 18 Sep 2015 23:03:18 +0000</pubDate>
      
      <guid>/diary/dbimport_072/</guid>
      <description>国耻诶.
关于量子态的遗传问题si bi了一天昂.
最后晚上放弃了做化学作业说服了cj.
好疯啊.
今天才星期五昂.</description>
    </item>
    
    <item>
      <title>20150917</title>
      <link>/diary/dbimport_071/</link>
      <pubDate>Thu, 17 Sep 2015 23:19:13 +0000</pubDate>
      
      <guid>/diary/dbimport_071/</guid>
      <description>偶惊悉mhy在看窝的diary?诚惶诚恐.
中午在教室造新闻的时候看到了mhyoj.
看上去挺不错的.界面比窝的好看(TAT)也实现了我没写的problemset之类的功能.大概构架比hjaoj优越到不知道哪里去了.(hjaoj有过构架这种东西?)
不过似乎有些地方有hjaoj的影子.(对窝就是在吐槽bbs)
似乎还有挺多地方需要写昂(反正不是窝写2333).论嘴巴选手的优越性.
hja的经验是一定要规划好接口.否则在已有的代码里面插东西会灰常痛苦.希望mhy考虑到了这一点.
也很开心看到了粘贴交代码和stdio.窝之前一直坚持fileio的oj的原因是让大家养成随时文件输入输出的习惯.不过反正mhy也没这习惯ovo
晚上的时候看到noip报名表.高三众还蛮有热情的开心.
嗯然后晚上又玩晚了ovo
噢对昂再加一句.点下面这个东西可以去评论区&amp;hellip;因为窝懒所以没有把评论粘到文章下面QwQ
| click here
v</description>
    </item>
    
    <item>
      <title>20150916</title>
      <link>/diary/dbimport_070/</link>
      <pubDate>Wed, 16 Sep 2015 22:42:02 +0000</pubDate>
      
      <guid>/diary/dbimport_070/</guid>
      <description>another plain day.
struggling without destination.
most familiar things are none of my business.
what is my direction?
goodbye world.</description>
    </item>
    
    <item>
      <title>20150914</title>
      <link>/diary/dbimport_069/</link>
      <pubDate>Mon, 14 Sep 2015 22:54:27 +0000</pubDate>
      
      <guid>/diary/dbimport_069/</guid>
      <description>别人家的服务器有解析防护?
数竞的某些同学回来了.突然觉得自己已经有点见惯生死的味道了.
晚饭吃得很急.估计明天午饭也很惨烈.
smg.mssdj.</description>
    </item>
    
    <item>
      <title>20150911</title>
      <link>/diary/dbimport_068/</link>
      <pubDate>Fri, 11 Sep 2015 23:20:46 +0000</pubDate>
      
      <guid>/diary/dbimport_068/</guid>
      <description>诶诶晚上越颓越晚了.要取消颓的计划了.
下午去找奖状看到mhy在给高一上课.
Nothing belongs to the loser.
数理化竞的同学羡慕我已经早早地签了.我羡慕他们还有chance.
大概是因为竞赛对每个人的意义不太一样吧.反正早就和我没啥关系了.好好学习冲刺高考.
物理分推,正确率还是一如既往的低.
猛然发现自己应该做点进度之外的事?这些内容都是第二次过.
唉我太弱了所以睡觉比较重要.</description>
    </item>
    
    <item>
      <title>20150910</title>
      <link>/diary/dbimport_067/</link>
      <pubDate>Thu, 10 Sep 2015 23:18:12 +0000</pubDate>
      
      <guid>/diary/dbimport_067/</guid>
      <description>教师节快乐~(maya写这会有老师看么)
a plain day.
晚上的时候给老师们发短信,收到的回复比较&amp;hellip;
电解池比原电池有难度ovo
发现课都听得懂反而有种惶恐.
英语卷子不知是不是题太水错得少得不正常.
晚上又颓osu没救了.
世界晚安.</description>
    </item>
    
    <item>
      <title>20150909</title>
      <link>/diary/dbimport_066/</link>
      <pubDate>Wed, 09 Sep 2015 22:21:52 +0000</pubDate>
      
      <guid>/diary/dbimport_066/</guid>
      <description>又把作业做完了.只求速度不求质量QwQ
坐位体前曲开挂般地拿了32cm.一定是机子放水了.
想给自己找点事干.除了写代码和玩.撕烤熊.</description>
    </item>
    
    <item>
      <title>20150908</title>
      <link>/diary/dbimport_065/</link>
      <pubDate>Tue, 08 Sep 2015 22:25:55 +0000</pubDate>
      
      <guid>/diary/dbimport_065/</guid>
      <description>今天居然把作业做完了.分推功不可没.
作业正确率趋于0.
现在我就是班上最差的学生.从前还真没体验过这样的感觉呢.依然是那句,债多不愁.
有点像两年前初三的时候那种行尸走肉(雾)的生活.虽然早就时殊世异了.
mark.</description>
    </item>
    
    <item>
      <title>20150907</title>
      <link>/diary/dbimport_064/</link>
      <pubDate>Mon, 07 Sep 2015 23:27:12 +0000</pubDate>
      
      <guid>/diary/dbimport_064/</guid>
      <description>唉每天无聊就写点日记好了.虽然是乱七八糟sai bian da wang的东西.
居然被老师表扬学习认真.想想也就是不想让自己闲下来吧.唉.
反应热各种神清气爽,似乎反应热和原电池感觉还好?雾.
反正就是感觉东西各种还能接受,然而做题挺捉鸡的.
毕竟还年轻,还要好好学习.</description>
    </item>
    
    <item>
      <title>20150906</title>
      <link>/diary/dbimport_063/</link>
      <pubDate>Mon, 07 Sep 2015 23:19:42 +0000</pubDate>
      
      <guid>/diary/dbimport_063/</guid>
      <description>在学校做完作业,没能做到.似乎是第一次呢.几乎已经忘记作业是何物了.
高三果然压力还是挺大.这还只是beginning呢.
半年前被拉回来上课的时候也觉得压力挺大,烦得都要崩溃了.现在想起来,那时候,呵.生存状况异也.
数理化生都在讲能听懂的内容,尚且如此狼狈.
惊现现在cdqz有至少两个进程在写oj,还在同一天向我问了相同的问题.
想起曾经说如果noi没退役就重写ojseven呢hhh
语文课的时候付老问觉得没有成功美不美.几乎.
唉通过作文课倒是明白了,不要老是把自己看得太高.人是利己的.也许坦率地承认会更好呢.虽然我缺的就是坦率.
唉我成天都在想些啥啊.好好睡觉好好上课重要.</description>
    </item>
    
    <item>
      <title>20150901</title>
      <link>/diary/dbimport_062/</link>
      <pubDate>Tue, 01 Sep 2015 22:57:04 +0000</pubDate>
      
      <guid>/diary/dbimport_062/</guid>
      <description>开学辣.
入学考试意料之中地垫底.似乎本科线都悬.前路惨兮漫漫长.
高三动员大会在我听来倒像是批斗hja大会.
一年多来第一次在教室上晚自习.
想到一个比喻.曾经是一堆愉快燃烧的干柴.在一盆水浇来的时候,没有成功地把让它们汽化.于是现在只能静静地等待着腐朽.
想得更多的的倒不是高考而是未来.cst,现在看来s这条路我是走不下去的.t这种东西烂大街是必定的趋势.
眼高手低.完全没有目标感.心里一片混乱,何谈前进.
唉.</description>
    </item>
    
    <item>
      <title>20150829 写在新学期前面</title>
      <link>/diary/dbimport_061/</link>
      <pubDate>Sat, 29 Aug 2015 22:11:20 +0000</pubDate>
      
      <guid>/diary/dbimport_061/</guid>
      <description>明天就开学了呢.不再有oier的特权,得去face everything.
这个地方似乎充满了oi的东西,总有种让我伤心的气氛.唉,花了七年做一个梦.然后梦醒了.
倒是保留下来些东西,比如这个网站.虽然退役后重新开通了qzone,但是已经不喜欢在qzone上发东西了.虽然没有人会care这里,但总归是自己家的感觉.
暑假似乎就浪过去了.懒懒地待在家里补课和做作业.半路上就打开电脑开始颓或者倒在床上睡大觉,总也睡不够.虽然心里觉得不踏实,但也无能为力.恐怕这样的假期也就是最后一个了吧.
最终因为各种事,还是被czr拉下了js这个坑.不再搞oi不再想算法了神清气爽,觉得世界这么大干点别的什么不好.却发现自己除了打代码似乎对啥都提不起兴趣.
关于js,这种东西的确比lamp神奇,比如一个前端的脚本居然可以作为后端的回调函数.或者说之前搞php的时候完全没有回调这种概念.web开发原来可以这样.
暑假就浑浑噩噩地过去了.开学后的日子我猜会比想象中的更苦吧.对于现在的我来说一本这个目标还是挺challenging的.要是考不上的话就去个二本三本专科啥的学校其实也挺好,不过恐怕除了我自己没人会这么想.
唉不过注定要面对.时间被禁锢了,不好好利用就浪费了.也罢.权当是在满足自己的妄想症和强迫症吧.
怎么就像获取新生了一样.还有点幻想能发生些有趣的事,幻想能打工赚钱,幻想脱离猿类苦海变身人赢.虽然,都是幻想.我相信none of them will come true.人格分裂了.一边给自己制造泡沫,一边用针把它们刺破.
心情挺复杂的.管它去死.</description>
    </item>
    
    <item>
      <title>Story of laekov</title>
      <link>/random/dbimport_278/</link>
      <pubDate>Fri, 31 Jul 2015 23:04:38 +0000</pubDate>
      
      <guid>/random/dbimport_278/</guid>
      <description>laekov曾经是一个oier.
laekov认为自己的失败经验可以作为一个成功的反面教材.
laekov似乎是小学五年级下半学期开始接触oi的,然而因为年代太久远所以记不清什么事情了.
laekov是被小学的计算机老师拉入坑的.她告诉laekov有一个叫noip普及组的编程比赛,比当时laekov从事的电子制作更有前途.于是laekov找妈妈代购了一本pascal语法书开始搞oi.
laekov最初是有一个小伙伴的.laekov比较喜欢叫他f.laekov清楚地记得看完pascal书第二章后f告诉laekov他还没看完第一章.于是laekov决定停下来等f.过了几天laekov发现f已经看完第三章了.悲恸之下laekov学到了oi路上的第一课,你永远不能等谁.
差不多看完了语法然后觉得自己很厉害的laekov又去买了一本c++的语法书来看.然而laekov并没有很成功地看懂c++.不过至少能看网上各种c++的程序了laekov感到十分高兴.
然后老师告诉laekov和f有一个叫做vijos的网站.你可以在上面刷题.如果你刷得多还可以向初中的教练炫耀.laekov很开心地拥有了第一和第二个id分别叫jiaao430和ais35.
至于它们是为什么?法拉利430是曾经喜欢汽车的laekov最喜欢的一款车.至于ais35,这是人脑随机.
一句后话是laekov直到小学毕业在oj上的刷题量也不超过20道.
然后大概就到了noip2009.感觉自己萌萌哒laekov和小伙伴f一起去川大江安校区考试.当年的noip还可以使用自己的草稿纸,当年的noip还是当天就可以知道成绩的.然后不知机器密码的laekov进考场就重启机器3次,于是监考老师亲切地抚摸着laekov的头说,小朋友,你怎么又重启呢?此句后流为佳话.
记得当时的签到题是给出多项式的系数,输出多项式.然而萌萌哒laekov根本不知道多项式是什么,遂弃疗.第二题似乎是水水哒模拟.laekov于是敲之,过之.当然这里指的是样例因为laekov根本不知道什么是对拍.第三题似乎需要高精?然而laekov当时连gcd都不会不知道写了些啥.然后第四题随便写了个贪心感觉是对的啊呵呵哒.
于是估分,f认为自己能拿300.laekov说少估点200.结局是f暴0,laekov倒是拿了30.
然后又是一段无聊的时光然后又有一个啥cd市小学生编程比赛?听说全市设两个一等奖?好啊好啊搞啊搞啊.考试似乎是在科协一个老得掉牙的机房里.然后身边的f考试中间一脚踢断了laekov机子的电源呵呵哒.还记得有个题是求fib数列的第k项当然是在int范围里ovo然后还记得一直在调一个日期的题没搞出来.当时还有一个人居然用的是c++感觉那人屌暴了.然后想起当时的机子上似乎只有turble c?似乎连dev都没有?呵呵哒.
另外laekov毕业前似乎被低一届的数学老师拉去搞了一个选题的软件.也就是从一堆题目里随机选k道题出来.然后用pascal写了个没有ui的程序自我感觉良好.还获了一个奇怪的奖ovo
然后laekov就去上初中啦.laekov选择初中的方式很简单,翻出noip2009普及组获奖名单,去rank1同学的学校.于是laekov去了jxfls.然后令laekov印象深刻的是考数学的时候以为自己做完了于是玩了良久,最后几分钟才发现还有一面漏做了.然后因此没有奖学金还被老妈怒d至今.
初中是寄宿的于是发生了很多有趣的故事.比如别人中午都得回寝室午休而laekov则可以在机房浪.因为小学有基础所以laekov强行和初二一起玩.laekov至今唯一能记得的就是上过一次排列组合课.当时觉得好神奇啊.
然后noip之前停了一个星期的晚自习去做套题.当年的套题其实就是前几年的noip原题啦.然而当年的laekov并不会去oj上刷题所以感觉萌萌哒.
然后就是初一的noip喽.地点改到uestc.机房变挤了啊差评.然后还拿走了别人的打印版试题ovo然后考试的时候并没有什么大新闻.还记得把第二题写丑了.然后第三题直接错误的贪心40第四题直接dfs居然有50.当年可是根本不会时间复杂度分析的啊.
然后那年laekov以210分刚好比分数线高10分的成绩拿了普及一等.当年唯一一个初一的哦.还因此被写在了展板上.
于是接下来的一年都在各种浪啊浪啊浪.似乎oj上的总刷题量也不超过10道题?
然后就到了noip2011?然后laekov发现咦怎么停课集训题去年就见过啊呵呵哒随手ak几发好了.
于是laekov决定noip2011同时挑战普及和提高.那年提高正好改成了两试六题而且挪到了cdqz高新校区.day1的时候laekov一直在写那个奇怪的mayan游戏最后还是直接输出-1走人.然后因为上午吃巧克力过多所以下午状态特别不好.最后回家的车上差点吐出来.第二天也受了一些影响于是gg.
那次似乎当天没有出结果.laekov是星期一才知道的.提高组180+0了.如果day2正常一点说不定都能一等oov.然后普及只有100分光荣了.原因似乎是第二题行末判成了chr(13),第三题只会冒泡排序全部tle完.第四题根本不知道在写什么ovooovo
于是初一就拿了一等的laekov感觉十分不开心.当天晚上为了能睡好吞了整整一盒感冒药.也许这也是为什么现在的laekov智商严重不足的原因之一.
于是laekov决定不要再浪下去了.于是laekov也许刷了更多的题吧.然后laekov似乎被年级组长抓去用excel统计分数段分布?原来年级组长之前都是靠眼睛看的?laekov表示不服.于是laekov一怒之下写了一个pascal的程序来搞这种事情.然后使用过程中发现了一堆bug让laekov十分汗颜.
laekov在初二寒假的时候决心转cpp.因为之前有看过cpp的语法基础所以并没有多大的困难.只是后来才知道iostream.h早就被淘汰了十分的ovo.
然后就是一个天天打游戏的暑假和noip2012.
这年似乎做了一些模拟题.也记得高三的某学长在电阅用笔记本做出了去年的mayan.当时感觉他好厉害啊.这年的模拟题终于不是noip陈题而改成了noi导刊.感觉很赞啊.于是laekov的成绩炸掉了ovo
然后也是在这个时候laekov终于明白了dp是什么东西.当时还天真地认为dp和动态规划是两个东西ovoovo当时还养成了一个laekov到退役还没有改掉的习惯,用f作为dp数组而不是dp.
然后就到了noip时节.似乎laekov吸取了去年的教训坚决不吃巧克力.似乎noip刚好是laekov的生日于是laekov考完day2回家过生日.btw当年的laekov依然不会复杂度分析.
然后laekov就上考场了.似乎noip2012提高组并没有dp.然而普及组第三题居然是dp?于是laekov十分愉快地打了第三题.然而当年的laekov仍然不会对拍于是愉快地把输出最后一个格子变成了输出最后一列的和然后再见0分.另外普及第二题因为没有考虑第一层楼要走所以也0分了.于是laekov凭借第一题和忘剪枝的60分的第四题拿了普及一等.
然后提高似乎因为奇怪的得分加上奇怪的一等线政策laekov也是一等.然后就被拉去年级运动会当旗手了这是smg.
于是初三了laekov与oi暂别一段然而还是天天中午去机房,不过项目变成了cs.
laekov因为noip考得还不错于是去了scoi2013.然后发现cdqz的人好多啊而且还偷拍结果不小心偷拍下了l老师,这张照片在一年后被l老师看见了大家都觉得十分神奇.
然而当年依然不会复杂度分析也不会线段树,而且只会用邻接矩阵存图只会用floyd跑最短路的laekov当然只能拿40分走人了.居然有40分啊好感人啊.嗯当年的laekov似乎还和老妈闹翻了也是神奇.
那段时间感觉自己特别叛逆.晚上在寝室偷偷drink.于是直到现在也习惯在不开心的时候喝几瓶比如写这段文字的时候laekov的手边就有若干瓶纯生.
btw直到初中毕业laekov在tyvj上的刷题量也不过60+.在bzoj上恰好过掉了1000(这是题号不是题数啊).
然后laekov就去中考了.
中考似乎并不是重点.那年似乎数学比较难于是laekov比正常成绩少了10多分.不过还是上了cdqz的招生线.于是成为了cdqz的学生.
然后就放暑假了.cdqz的教头z老让laekov去跟着正要去noi的14届的学长训练.当时laekov正要坐火车去西安,z老给laekov介绍了一个叫mhy的小伙伴.他大概也和laekov一样对oi感兴趣得比较早然后也进了cdqz.于是和mhy联系了一下之后laekov感觉不错.
从西安坐火车回来之后laekov有了自己的第二台笔记本.之前那台vista时代的又厚又慢的富士通笔记本早就被弃置了ovo
这个是一台lenovo的s400.laekov选电脑的第一要意是要轻,要薄.第二是要便宜ovo
那台电脑的确足够便宜于是预装的似乎是linux?直接把linux删掉装win7是laekov至今后悔的事.
然后就去了cdqz训练.当年的laekov还不太会用noilinux.同为新手的mhy也差不多.第一次考试的时候似乎机智的laekov骗到了80分感觉还不错,那次mhy拿了40呵呵哒.后来又有一天似乎过掉了一道水水的bfs题然后被z老师狠狠地表扬了一下,laekov感觉自己都要飞起来了.
laekov听说14届有一个很厉害的人叫钟神?
虽然没有报同步赛更没有进省队,不过因为noi刚好在uestc于是laekov就去围观noi2013了.围观的具体方法是等教练在教练会议上拿到题给laekov和mhy,然后laekov和mhy去教练的宾馆在笔记本上写题然后下午等别人看成绩的时候把数据拷出来在cena上测.没错当年的laekov还不会用linux.
laekov可是连线段树都不会写的,noi题当然也只有写暴力和写暴力和弃疗.其实树的计数那题laekov似乎已经想到了一个关键点不过因为太弱所以直到退役也没有做出那个题.
因为和cdqzsc的时间冲了所以laekov就在城南的cdqz高新和城北的uestc之间不停的做简谐运动?雾.laekov清楚地记得从茶店子坐地铁到世纪城的痛苦感觉.
cdqzsc倒也的确是个好东西.认识了不少很厉害的人.然后还知道了有codeforces这么个神奇的网站.
于是这个暑假laekov开始认真地学oi.(意思是laekov从前的寒暑假即使想学oi也变成了打游戏)laekov当年还不知道vim当年还在用dev,还把背景调成了看上去很厉害的黑色.
laekov还从mhy那里学来了一种好像很厉害的数据结构叫做线段树.初中时laekov根本不敢碰关于树和二叉树的东西.于是laekov感觉自己现在变得好厉害啊.咦不对,应该是mhy好厉害啊.
laekov也是从那个暑假开始打cf的.当年的laekov的id还不叫laekov而叫aoao.这里面是有故事的,然而到底为啥呢你猜啊.
laekov打的第一场cf是一场正常的11:30场.laekov当时决定晚上8点先去睡到11点再起来打.然后laekov发现醒来之后脑子就像坏掉了一样啊.第一题是smg不会打啊.第二题咦似乎可做?敲敲敲交交交挖挖挖.于是整整一场比赛laekov都在试图做div2的b题,终不过.第二天早上起来发现一个十分愚蠢的错误laekov表示十分ovo
laekov打的第二场cf是和网球俱乐部一起去峨眉山的时候打的.住在宾馆里晚上11点半起来high.然后室友根本没回来但是laekov居然没注意到.于是laekov灯都没开坐在床上码题,现在想想也是醉啊.s400可没有键盘背光,而且laekov似乎还借着屏幕的光打了草稿?那场好歹有题能过于是第一次涨了rating非常的开心啊.
暑假结束去军训之前laekov和小伙伴zt和louis去昆明玩.然后居然又有cf然而laekov没有带电脑.幸好小伙伴们都有带电脑于是laekov十分开心.
呃然后就是公布分班去军训.laekov被分到了12班听说是高考实验班?逗呢?laekov高考成绩那么烂也能扔这?然而并没有什么跳的办法.
军训的时候好热啊7天洗了2次澡.而且洗完澡走回来又出一身汗.洁癖的laekov感觉根本受不了于是后来洁癖更重了.当时认识了一个叫hbw的同学也要搞oi觉得很开心.
回来之后发现mhy没有进实验班.于是在ovo的人的ovo的努力下laekov和mhy集体跳班.laekov去了15而mhy去了隔壁14.感觉很开心.
btw因为跳班所以laekov是15班唯一一个同桌是女生的男生,这是一件十分有趣的事.然而因为这与主题无关所以就折叠掉了.laekov还认识了15班的另一些oier分别是lyzy,cyl,jh.laekov初中一起学oi的ymw也在15然而他后来转行去了物理.
在cdqz的生活比在jxfls自由许多.有很多自己安排的时间.然后中午和晚上也没有硬性的什么要求.于是laekov去了一个叫做305的oi自习教室.当时在这里的有14届唯一一个noi au选手zhx也就是暑假时候听说的钟神.还有若干noisy的高三物理众.
305有两种桌子.一种是课桌,另一种是有点像美术教室用的那种比较大的比较像办公桌的桌子.laekov发现所以大桌子都被占了,于是只好可怜地在角落里找了一张课桌ovo
laekov提着电脑去305开始写代码之后zhx就来围观.然后怒斥laekov这种dev选手.于是laekov从那时起开始学习使用vim.
那段时间laekov似乎特别naive.什么都不会还感觉自己特别厉害.暑假快结束的时候在mhy的怂恿下laekov去出了一套给本年级的入学考试题.后来再回想,那就是一个笑话23333
laekov到那时终于发现s400的笔记本键盘一点也不舒服.然而手边也没有其它的键盘.于是laekov去买了一条ps2转usb的线,拿一把305的不知道哪里来的键盘接上.从此开始了外接键盘的不归路.
laekov对接下来的两个月干了啥已经没有印象了.似乎noip前停了一周的课.那几天laekov窝在机房上午考试下午乱玩.laekov发现可以用hdmi转vga线把笔记本的屏幕转到学校破机子的比较大的显示器上,于是十分开心.因为学校机房的机子,实在太差了.
laekov那时候还在使用一种奇怪的方式存图.既把所有边按起点排序然后xxxx.每次遇到图的题,laekov的代码都又臭又长还常常错.laekov倒是学会了使用stl的sort和priority_queue,于是也学会了dijkstra+heap.
当时laekov的小学低一届的学弟yjq也来cdqz参加noip的训练.多年不见yjq也变厉害了.
然后就是noip2013了.考场还是在cdqz的高新校区.day1的时候laekov感觉不错?当年的laekov似乎没有写过总结那就补一个好了.</description>
    </item>
    
    <item>
      <title>20150719 noi2015 diary 2</title>
      <link>/diary/dbimport_060/</link>
      <pubDate>Sun, 19 Jul 2015 13:31:05 +0000</pubDate>
      
      <guid>/diary/dbimport_060/</guid>
      <description>还记得初中每次考完试都有讲卷,唯独中考卷从未讲过.
高中两年写了不少diary和summary,可是不会有最后一篇了.</description>
    </item>
    
    <item>
      <title>20150718 noi2015 diary√2</title>
      <link>/diary/dbimport_059/</link>
      <pubDate>Sat, 18 Jul 2015 15:56:31 +0000</pubDate>
      
      <guid>/diary/dbimport_059/</guid>
      <description>昨天是day1,明天是day2,所以今天是day√2.
去了ali,听了一下技术方面的演讲.发现ali是资瓷开源的很开心啊.然后发现其实data science挺有意思的啊.
然后去西溪.唯二的感觉是热和挤.于是也成功地没有寻到宝ovo
然后就回来浪了.明天就可以退役了哈哈哈哈好开心.
所以我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20150717 noi2015 diary 1</title>
      <link>/diary/dbimport_058/</link>
      <pubDate>Fri, 17 Jul 2015 19:51:36 +0000</pubDate>
      
      <guid>/diary/dbimport_058/</guid>
      <description>最后一次noi的day1.似乎没有想象中的隆重,也没有想象中的紧张.倒是有一点像做梦一样的麻木.
考场上依然是倒扣的试题和食物和水.每次看到水就想到让监考老师再拿一瓶.今天我也的确这么做了23333
旁边是lxh背后是ysy真是好神奇ovo瞄了一眼发现lxh在配vim我才想起要配vim于是赶紧去配vim然后再看题.
第一题咦这是在逗我么?水水水敲敲敲5分钟完事.
第二题第一眼我以为是dag呢原来是树那不是直接无脑链剖就完了么搞搞搞敲敲敲.咦最近怎么这么喜欢用三个同样的字.
第三题然后就卡住了.首先肯定大于n/2的素数可以直接乘嘛.然后怎么做50分呢?想了一想似乎可以3k过掉50分?算了一算发现不对诶.然后想了想可以22k过掉?然后可以枚举子集?咦子集那不是可以用vfk的子集反演?咦推推推推于是终于推出了k*2k的感觉了.咦那是不是可以试试200?啊啊跑不过啊ovoovoovo算了算了当骗分了吧.
于是考完一句话没说吃饭睡觉.睡到2:30老师突然很激动地打电话过来说赶紧来可以查成绩了ovo一脸没睡醒地过去了.然后跪着看成绩,还好100+100+60前两题没跪第三题m/2是闭区间.唉.
然后萌萌哒爹妈终于来了于是晚上睡觉之前可以找个有网有电有床的地方玩了好开心啊ovoovo
于是窝还是太弱啦已经排到30+了呢.大概day2会炸炸炸了吧.唉.</description>
    </item>
    
    <item>
      <title>20150716 noi2015 diary 0</title>
      <link>/diary/dbimport_057/</link>
      <pubDate>Fri, 17 Jul 2015 19:50:35 +0000</pubDate>
      
      <guid>/diary/dbimport_057/</guid>
      <description>明天就是day1了,所以今天是day0.(咦是不是一年前我写过这句话)
早上是合照和ovo的开幕式似乎杜主席讲的东西比较,励志?不知道how to 形容.
下午笔试.感觉经历过一次之后,那种悬的感觉冲淡了许多.虽然还是认真地检查了不过总有一种麻木.这可不太对啊.
笔试完还很早.深刻了解xj的接待水平之后决定出去浪于是和czr打了半个下午的台球.比较惊讶mhy不会打.其间各种++rp和&amp;ndash;rp的事件发生.倒是感觉noi完了之后自己会台球上瘾ovo感觉美式台球比snooker有成就感一些虽然被czr虐了好几盘.
咦noi day1之前居然去颓台球是不是会跪啊.
咦明天就day1了?终于走到了这一天,然时势异也.也许这就是最后一次在oi的赛场上战斗了呢.心态什么的总有些波动.不过,唉,反正不要给自己的青春留下遗憾吧,fighting.</description>
    </item>
    
    <item>
      <title>20150715 noi2015 diary -1</title>
      <link>/diary/dbimport_056/</link>
      <pubDate>Wed, 15 Jul 2015 18:24:57 +0000</pubDate>
      
      <guid>/diary/dbimport_056/</guid>
      <description>想起了去年的这个时候,坐在深圳外国语学校的电子阅览室里写相同的东西.那时候还没有doa.那时候还在用百度空间.ovoovo
这里不得不比较一下今年和去年的noi招待条件ovo去年是6住3,今年是5住4.更郁闷的是洗个澡还得下两层楼ovoovo然后嘛,电子阅览室,根本,不够用嘛.周围站了很多人啊要不是我来得早也没电充了(虽然已经在机房充满了TT然后发现这些人我怎么都不认识)学校这么小想散个步都没处去虽然热得也不想动ovo寝室也热死还不开空调是闹哪样.
嗯毫无疑问地颓废了一天的cross fire而不是codeforces.感觉我没救了.根本不想写题,笔试已经背了很多遍了.然后也复习不进去.想起zhx说过的,今年也许是心态变了吧.
然后,嗯,水ovoovo热</description>
    </item>
    
    <item>
      <title>20150713</title>
      <link>/diary/dbimport_055/</link>
      <pubDate>Tue, 14 Jul 2015 13:03:05 +0000</pubDate>
      
      <guid>/diary/dbimport_055/</guid>
      <description>last training day before noi. 闻到了退役的味道.
第一题只想到kd-tree doing big die.想到可以持久化一维来降低复杂度不过炸了.
第二题居然mle了ovo看来size和自己写的judge都不靠谱.arbiter才是王道.
答案提交题ovoovoovo好神啊想了一堆东西.不过太不切实际了ovo
所以窝还是太弱辣!准备退役啦!</description>
    </item>
    
    <item>
      <title>20150712</title>
      <link>/diary/dbimport_054/</link>
      <pubDate>Sun, 12 Jul 2015 20:20:58 +0000</pubDate>
      
      <guid>/diary/dbimport_054/</guid>
      <description>咦今天712了.离noi还有2天ovo浪浪浪.
听说今天题会比较难?
第一题矩阵水过.似乎省选的时候qian qiao有讲过.
第二题容斥套容斥ovo出题人怎么想的ovoovo然后被卡常是smg.
第三题是pa原题啊.然而不会.下来看发现只有jcvb一个人过了那玩啥啊.然后网络流水过了40分还被卡了一个点的常woc然后就被水过去了ovo数据出丑了.
然后晚上去打台球发现自己已经毁了ovoovo
我太弱啦.</description>
    </item>
    
    <item>
      <title>20150710</title>
      <link>/diary/dbimport_053/</link>
      <pubDate>Fri, 10 Jul 2015 22:06:35 +0000</pubDate>
      
      <guid>/diary/dbimport_053/</guid>
      <description>在杭州的round 1.感觉今年noi的赛场没有去年高大上ovo尤其是显示器分辨率非常不开心.
考试的时候出了些奇怪的差错23333
第一题感觉像是dp分开搞一搞优化一下头好晕拍过了咦过了.
第二题咦有点像同构咦答案要容斥一下不想拍了交好像过了.
提答题把朴素写错了ovoovovoovoovo
所以我还是太弱辣!</description>
    </item>
    
    <item>
      <title>recite.cc</title>
      <link>/code/dbimport_273/</link>
      <pubDate>Wed, 08 Jul 2015 22:45:30 +0000</pubDate>
      
      <guid>/code/dbimport_273/</guid>
      <description>#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
const int maxn = 203; const int maxstr = 1003;
int n, ted[maxn], tec; char g[maxstr], sq[maxn][maxstr], sa[maxn][maxstr];
void setcol(int c) { printf(&amp;quot;\33[%dm&amp;quot;, c); }
void init() { FILE* ipf(fopen(&amp;ldquo;bstk.txt&amp;rdquo;, &amp;ldquo;r&amp;rdquo;)); n = 0; while (fgets(g, sizeof(g), ipf), !feof(ipf)) { char* p; p = strstr(g, &amp;ldquo;&amp;mdash;&amp;rdquo;); if (!p) continue; *p = 0; strcpy(sq[n], g); strcpy(sa[n], p + strlen(&amp;quot;&amp;mdash;&amp;quot;)); ++ n; } fclose(ipf); printf(&amp;quot;%d problems loaded\n&amp;quot;, n); }</description>
    </item>
    
    <item>
      <title>20150708</title>
      <link>/diary/dbimport_052/</link>
      <pubDate>Wed, 08 Jul 2015 20:06:38 +0000</pubDate>
      
      <guid>/diary/dbimport_052/</guid>
      <description>最后一天在学校训练了呢.也许再也没有机会回机房了.好开心ovo(咦画风没对)
上午考试一副把noi的rp都用完的节奏.然后看到mhy达叶两小时ak走人整个人都吓傻了.
第一题不会不过打表水过.
第二题用了两次判别式其实没那么复杂.
第三题原题ovoovoovo
下午的时候又是颁奖ovoovo想起了去年发给我的风扇.一年过去了.感慨ing
然后oj7也完成使命了.唉,虽然写得要多丑有多丑不过还是凑合过了将近一年ovoovo
然后才成都没四天又走了ovoovo这回是真正踏上不归路了.The fork.
唉我还是太弱了.</description>
    </item>
    
    <item>
      <title>20150707</title>
      <link>/diary/dbimport_051/</link>
      <pubDate>Tue, 07 Jul 2015 15:57:59 +0000</pubDate>
      
      <guid>/diary/dbimport_051/</guid>
      <description>七月七号，七七事变？
说好的信心题不见了。
第一题正解的根本不会。然后打表ovo
第二题还好听了那么几节数学课。
第三题 啥东西啊ovooovooovo
所以我太弱了。</description>
    </item>
    
    <item>
      <title>20150705</title>
      <link>/diary/dbimport_050/</link>
      <pubDate>Sun, 05 Jul 2015 18:42:04 +0000</pubDate>
      
      <guid>/diary/dbimport_050/</guid>
      <description>在黄花机场写最后一篇总结.
最近两天考得都很逗.虽然昨天晚上强行解烧,不过今天早上显然没好全于是2小时写完代码开始颓.感觉好对不起人民啊.
第一题不是和昨天晚上bc的b题很像么.三元环的数目是O(m1.5)的.于是随便思考了一个感觉不太会错的算法就交了.然后居然能过.然后居然把1和2看反了扔掉60分.我没救了.
第二题错误的三分居然能拿80.然而,O2直接全输出0是什么情况啊.不知道喽.
第三题正好复习一下manacher.正解肯定当时想不出来ovo我太弱了.
身体各种不资瓷啊.据说是流感?好吓人.
于是再总结一下这回在外面待的10天吧.
考试来讲看上去还不错,不过问题其实比较大.常常把朴素算法或者正解写错.然后很多题也想不到正解.然而正解其实不难.noi的时候需要注意的是把该写好的东西写好,检查对.要不就亏了.
然后听讲的效率还是蛮低啊.感觉上高中之后这一直是个很困扰我的问题.当然做笔记是个好办法不过有时候如果听不下去了也要及时止损.
还有这回和czr还有rause两位大爷交流得比较多.感觉人家上海人就是会玩!在数学和思维这两方面的确和别人有差距.然后别人家的学校和cdqz,唉.可能也是因为人家经济发达所以教育资源比较充足吧.我们这个西部贫困小山村的井底之蛙学校,没救没救.
还有yyy.感谢妳能在我最感觉坚持不下去的时候及时给我希望和动力.我不会辜负妳的.
嗯,我还是太弱了.noi要加油.</description>
    </item>
    
    <item>
      <title>20150703</title>
      <link>/diary/dbimport_049/</link>
      <pubDate>Sat, 04 Jul 2015 10:18:39 +0000</pubDate>
      
      <guid>/diary/dbimport_049/</guid>
      <description>昨天晚上太晕都没写总结ovo
yjq问我考得好有啥奖励,于是我就发烧了TAT
昨天考试题感觉还能看啊,然后就gg.
第一题原来直接for也能50然而我自作多情写了个边界判断还写丑了TT
第二题的不会.
第三题想了想数据应该是随机的就直接硬上了居然过了好开心ovo然而好久没写lct了心里略虚.
所以我还是太弱了.noi挂定了.</description>
    </item>
    
    <item>
      <title>bzoj2850.cc</title>
      <link>/code/dbimport_164/</link>
      <pubDate>Wed, 01 Jul 2015 20:51:30 +0000</pubDate>
      
      <guid>/code/dbimport_164/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #ifdef WIN32
define lld &amp;ldquo;%I64d&amp;rdquo; #else
define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
struct kdnode { int p[2], r[2][2], v; dint h; kdnode *ch[2]; inline void update(); }; struct candy { int a[2], v; void read() { scanf(&amp;quot;%d%d%d&amp;quot;, a, a + 1, &amp;amp;v); } };
typedef struct biobj { double x, y; biobj() {} biobj(double xo, double yo) { x = xo, y = yo; } } point, vect; inline biobj operator +(const biobj&amp;amp; a, const biobj&amp;amp; b) { return biobj(a.</description>
    </item>
    
    <item>
      <title>bzoj2850 巧克力王国</title>
      <link>/oi/dbimport_165/</link>
      <pubDate>Wed, 01 Jul 2015 20:50:29 +0000</pubDate>
      
      <guid>/oi/dbimport_165/</guid>
      <description>rausen大爷太强辣!
嗯看到这个东西,咦,直线某一边的点的权值和?kd-tree上上上.
于是就开敲kd-tree.敲到一半弃emacs换vim.
然后就wa了.然后发现double的精度太高了ovoovo
于是rausen跑得好快啊.</description>
    </item>
    
    <item>
      <title>20150701</title>
      <link>/diary/dbimport_048/</link>
      <pubDate>Wed, 01 Jul 2015 19:02:19 +0000</pubDate>
      
      <guid>/diary/dbimport_048/</guid>
      <description>终于阴天了好开心.在成都都是盼着晴天的ovo
上午似乎是镇海众的考试ovo感觉他们好强啊ovo于是两道高精ovo
第一题其实不想写了不过反正第二题直接写了fft所以就粘过来了.感觉分治乘的思路还是比较好想的就是fft卡卡常数而已Ovo
第二题嗯啊好像没啥.高精开根写过啊虽然都快两年了.
第三题只会写朴素30分还把输出的顺序给搞反了ovoovo真是**.然后居然是道论文题.思路就是把一个不靠谱的复杂度证明成只含有一个n的式子.感觉好神.如果Noi考场上遇到这种题的话还是只求不把输出格式搞错QwQ
其实第三题本来可以多想一想的,不过上午把很多时间花在研究emacs上了所以就没有认真研究ovo感觉emacs这个东西和vim完全是两种风格不过都挺厉害.
下午难得听了一回课虽然过一会就发呆去了ovoovo
所以我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20150628</title>
      <link>/diary/dbimport_047/</link>
      <pubDate>Sun, 28 Jun 2015 21:09:41 +0000</pubDate>
      
      <guid>/diary/dbimport_047/</guid>
      <description>今天是一个很特别的日子,嗯.虽然,其实也没发生什么.
上午考试Ovo杜教题ovo
第一题思考了一下给出了关于flag概率的结论.但是比较纠结是不是对的,于是抱着弃疗的心态写了50分的高消就没管了.其实如果仔细观察一下方程说不定都能发现是怎么回事的.
于是把时间花第二题上了.一直在想能不能数据结构硬刚.然后结局是正解是贪心TT感觉自己不会再爱了.虽然最后靠乱搞多拿10分不过并没啥用.
第三题比较正常地想到了60分的dp.不过感觉再往下想是件非常麻烦的事情于是就放弃了.
于是睡了很久ovo不能怪题太强,只能怪自己太懒ovo
果然最近是懒癌发作了ovo真伤心.
试图学学emacs不过比较无果.
晚上居然花了将近3个小时去看一个mc的贴,怎么就把时间花在这种地方了TT
所以我还是太年轻了.看来noi是要跪了.</description>
    </item>
    
    <item>
      <title>20150627</title>
      <link>/diary/dbimport_046/</link>
      <pubDate>Sat, 27 Jun 2015 21:53:27 +0000</pubDate>
      
      <guid>/diary/dbimport_046/</guid>
      <description>镇海题&amp;hellip;考试的时候内心的绝望ovo
第一题只想到了朴素的做法.完全没想到网络流那边去.没想到启发了半天骗来80还是挺开心的.但是居然花了那么多时间在debug上比较郁闷.
第二题最初根本没有思路啊.最后1小时的时候突然发现,咦,基环内向树?那直接判断在不在一个连通块里就行了吧?整体二分+并查集?写写写.40分钟的时候,写完辣,咦过不到样例?maya哪是内向树是外向树.应该是判祖先关系啊.然后?整体二分+ett?去noi吧半小时肯定写不完.后来听说其实根本不用整体二分啊&amp;hellip;所以可以搞成静态的啊&amp;hellip;撞死ing&amp;hellip;听上去也不难写嘛&amp;hellip;更奇妙的是居然我那个错误的内向树写法交上去60&amp;hellip;
剩下的时间都在想第三题了&amp;hellip;然后发现一个式子似乎可以推一推构造答案?咦似乎能过?然后证明&amp;hellip;我想的和标解根本不是一个东西&amp;hellip;(咦今天为啥那么喜欢打\dots)转化成基环树(又是基环树wtf)的做法好神奇好开心.
于是因为奇怪的数据我就不小心拿了rank1整个人都是虚的ovo
下午讲题好快于是留了几乎2个小时来颓,然后只过了1个题好无语.
晚上更颓更无语ovoovo
毕竟我还是太年轻了.这个样子怎么考noi啊不开心TT</description>
    </item>
    
    <item>
      <title>bzoj4134 ljw和lzr的hack比赛</title>
      <link>/oi/dbimport_246/</link>
      <pubDate>Sat, 27 Jun 2015 21:39:47 +0000</pubDate>
      
      <guid>/oi/dbimport_246/</guid>
      <description>之前感觉是sg函数.不过不会.在wulala神犇的指点下找来题解看了一下.太神辣.自己肯定想不出来&amp;hellip;
设以点u为根的子树的局面的sg值为sgu.设以u为根的子树中先手先hack掉v后的sg函数为gu,v.
那么gu,v = f[v] xor ∑ fu到v路径上所有点的非主干儿子.
然后fu = mex{gu,v}
这个转移得转移是O(n2)的样子吧.
然后发现某棵子树的g其实每次都是异或了一个相同的值.而且会合并.
咦可以用trie来优化一下.打下标记啥的.然后根据主席的论文这个东西是O(log n)的?虽然感觉复杂度证明没有说清楚啊ovoovo
然后就在trie树标记上卡了好久啊火冒三丈ing</description>
    </item>
    
    <item>
      <title>bzoj4134.cc</title>
      <link>/code/dbimport_245/</link>
      <pubDate>Sat, 27 Jun 2015 21:39:37 +0000</pubDate>
      
      <guid>/code/dbimport_245/</guid>
      <description>#include #include #include using namespace std;
struct edge { int t; edge *ne; };
struct node { int sz, rv; node *ch[2]; };
const int maxn = 100003; const int maxnd = maxn * 46; const int maxl = 19;
int n, vo[maxn], f[maxn], sp[maxn], tsp; node nbuf_arr[maxnd], *nbuf(nbuf_arr), *rt[maxn]; edge ebuf_arr[maxn &amp;laquo; 1], *ebuf(ebuf_arr), *head[maxn];
#define szof(p) (p?p-&amp;gt;sz:0)
inline void pushDown(node* q, int l) { if ((q-&amp;gt; rv &amp;raquo; l) &amp;amp; 1) swap(q-&amp;gt; ch[0], q-&amp;gt; ch[1]); if (q-&amp;gt; ch[0]) q-&amp;gt; ch[0]-&amp;gt; rv ^= q-&amp;gt; rv; if (q-&amp;gt; ch[1]) q-&amp;gt; ch[1]-&amp;gt; rv ^= q-&amp;gt; rv; q-&amp;gt; rv = 0; }</description>
    </item>
    
    <item>
      <title>bzoj2781.cc</title>
      <link>/code/dbimport_158/</link>
      <pubDate>Fri, 26 Jun 2015 21:44:49 +0000</pubDate>
      
      <guid>/code/dbimport_158/</guid>
      <description>#include #include #include using namespace std;
struct mov { int x, y, d; mov() { x = y = d = 0; } void rot(); };
const int maxl = 33;
int le[maxl], t; mov a[maxl], b[maxl];
void mov :: rot() { int xo(x), yo(y); y = xo, x = -yo; d = (d + 1) &amp;amp; 3; }
mov operator +(mov a, mov b) { mov r; for (int i = 0; i &amp;lt; a.</description>
    </item>
    
    <item>
      <title>bzoj2781 机器人走步</title>
      <link>/oi/dbimport_159/</link>
      <pubDate>Fri, 26 Jun 2015 21:44:36 +0000</pubDate>
      
      <guid>/oi/dbimport_159/</guid>
      <description>上课题.之前只有5个人过5个人交.我成功地拉低了这题的通过率yeah.
其实就是考虑Si序列走完之后对x和y的贡献以及对方向的改变就好了.
比较烦的是中间那一个东西是哪个方向.然后发现如果在上一层的左边就是1否则是0.和更上层没有关系不能直接异或往下传.
代码越写越丑了TAT</description>
    </item>
    
    <item>
      <title>20150626</title>
      <link>/diary/dbimport_045/</link>
      <pubDate>Fri, 26 Jun 2015 19:44:20 +0000</pubDate>
      
      <guid>/diary/dbimport_045/</guid>
      <description>hn集训day1&amp;hellip;感觉炎热的天气要把我的智商烧焦了&amp;hellip;所有题都没想到啊ovovo
早上考试&amp;hellip;第一题根本没想到高消那边去.于是直接欺负随机数据居然就过了ovovoovo
第二题嘛&amp;hellip;昨天在飞机上还在思考vfk的论文来着.但是还没吃透所以就gg了.然后也没有想到变换之后可以直接找根.
第三题比较ovo想到的启发式合并的思路几乎是对的.然而sbt里插入的时候没有给当前点的size++导致了一场悲剧.撞死的心都有了&amp;hellip;然后当时的我居然还傻傻地以为是做法的复杂度没算对于是就弃疗了ovovo
所以我还是太弱了然后跪ak爷mhy&amp;hellip;
下午听讲似乎没啥事&amp;hellip;中午看sdfz几个同学在研究4399的flash版cf.只想说黑得漂亮啊.然而空间站这图重力调回去之后就不好玩了啊&amp;hellip;
然后下午讲题也就那样呗ovoovo感觉还比较能听&amp;hellip;
晚上发现一个人在房间里会更颓啊ovovo
所以我还是太年轻了.</description>
    </item>
    
    <item>
      <title>20150624</title>
      <link>/diary/dbimport_044/</link>
      <pubDate>Wed, 24 Jun 2015 21:26:30 +0000</pubDate>
      
      <guid>/diary/dbimport_044/</guid>
      <description>在家里的windows上用机械键盘的感觉真不一样呢。
于教授的题，教我做人orz。
第一题没有想到利用向量加减和相对速度。于是想了一些奇怪的自适应算法去骗分。然而效果不怎么理想。
第二题是ommy老师的题，于是比较开心地很快过掉了。其实一年前zhx就出过此题的弱化版ovovoo
第三题一直在想能不能转成线性的。最后居然是个玩矩阵的题啊太神了。想过高消自由元不过没想到会有那么神。看来我还是太弱了一点啊。
下午讨论的时候发现为啥sf那么多问题ovovovo
走的时候收拾了东西。把显示器还给学校。把机械键盘背回家。也许以后就没有机会回来了呢。唉。若干年的oi生涯走到了一个分水岭。Fight for dream or beg for survival? All on myself.
所以啊，我还是太弱了ovovoo
明天还要会考啊ovovov感觉啥都不会啊一股要跪的感觉。</description>
    </item>
    
    <item>
      <title>20150623</title>
      <link>/diary/dbimport_043/</link>
      <pubDate>Tue, 23 Jun 2015 19:14:57 +0000</pubDate>
      
      <guid>/diary/dbimport_043/</guid>
      <description>原来是yali的题&amp;hellip;我一看到fft就想到魏总&amp;hellip;
第一题原来是那样做的&amp;hellip;感觉我的做法没啥不好只是常数大了点,嘛.
第二题fft不过之前一直不知道它自带了多项式取模.毕竟我还是naive
第三题神题啊ovoovo
所以我还是太 弱了.</description>
    </item>
    
    <item>
      <title>bzoj3329.cc</title>
      <link>/code/dbimport_191/</link>
      <pubDate>Tue, 23 Jun 2015 15:52:31 +0000</pubDate>
      
      <guid>/code/dbimport_191/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
const int maxl = 103;
int bi[maxl], le; dint f[maxl], g[maxl][2];
dint digDP(dint n) { le = 0; for (; n; n &amp;raquo;= 1, ++ le) bi[le] = n &amp;amp; 1; bi[le ++] = 0; memset(f, 0, sizeof(f)); memset(g, 0, sizeof(g)); g[0][0] = g[0][1] = 1; for (int i = 1; i &amp;lt; le; ++ i) { g[i][0] = g[i - 1][0] + g[i - 1][1]; g[i][1] = g[i - 1][0]; } f[0] = 1; for (int i = 1; i &amp;lt; le; ++ i) if (bi[i] == 1) { if (bi[i - 1] == 1) f[i] = g[i - 1][0]; else f[i] = f[i - 1]; } else { if (bi[i - 1] == 1) f[i] = f[i - 1] + g[i - 1][0]; else f[i] = f[i - 1]; } return f[le - 1] - 1; }</description>
    </item>
    
    <item>
      <title>bzoj3329 Xorequ</title>
      <link>/oi/dbimport_192/</link>
      <pubDate>Tue, 23 Jun 2015 15:52:12 +0000</pubDate>
      
      <guid>/oi/dbimport_192/</guid>
      <description>还不错的题ovoovo
发现其实要求x的二进制表示中没有相邻的1就行了.
第一问水水的数位dp.从未写得如此愉快.
第二问就是前面的g.然后发现是fib数列.矩阵快速幂搞定.</description>
    </item>
    
    <item>
      <title>bzoj4145.cc</title>
      <link>/code/dbimport_247/</link>
      <pubDate>Mon, 22 Jun 2015 10:56:09 +0000</pubDate>
      
      <guid>/code/dbimport_247/</guid>
      <description>#include #include #include using namespace std;
#define pow2(x) (1&amp;laquo;(x))
const int maxn = 103; const int maxm = 19; const int maxs = pow2(16) + 3;
int n, m, e, d[maxn], c[maxn][maxm], f[maxs], g[maxs];
inline void upMin(int&amp;amp; a, const int&amp;amp; b) { if (a &amp;gt; b) a = b; }
int main() { #ifdef LAEKOV_LOCAL freopen(&amp;quot;.in&amp;quot;, &amp;ldquo;r&amp;rdquo;, stdin); #endif
scanf(&amp;quot;%d%d&amp;quot;, &amp;amp;n, &amp;amp;m); for (int i = 1; i &amp;lt;= n; ++ i) { scanf(&amp;quot;%d&amp;quot;, d + i); for (int j = 0; j &amp;lt; m; ++ j) scanf(&amp;quot;%d&amp;quot;, c[i] + j); } memset(f, 0x3f, sizeof(f)); f[0] = 0; e = pow2(m); for (int i = 1; i &amp;lt;= n; ++ i) { memset(g, 0x3f, sizeof(int) * e); for (int j = 0; j &amp;lt; m; ++ j) for (int k = e - 1; k &amp;gt;= 0; -- k) if (k &amp;amp; pow2(j)) { upMin(g[k], g[k ^ pow2(j)] + c[i][j]); upMin(g[k], f[k ^ pow2(j)] + d[i] + c[i][j]); } for (int j = 0; j &amp;lt; e; ++ j) upMin(g[j], f[j]); memcpy(f, g, sizeof(int) * e); } printf(&amp;quot;%d\n&amp;quot;, f[e - 1]); }</description>
    </item>
    
    <item>
      <title>bzoj4145 [AMPPZ2014]The Prices</title>
      <link>/oi/dbimport_248/</link>
      <pubDate>Mon, 22 Jun 2015 10:55:59 +0000</pubDate>
      
      <guid>/oi/dbimport_248/</guid>
      <description>最近总是被一些水题虐智商啊&amp;hellip;怎么回事Ovo
无脑地状压dp一下就好了.
每个物品分开dp,这样可以降到O(2m * n * m)级别.
我还是太弱了.</description>
    </item>
    
    <item>
      <title>bzoj4152 [AMPPZ2014]The Captain</title>
      <link>/oi/dbimport_250/</link>
      <pubDate>Sun, 21 Jun 2015 11:13:29 +0000</pubDate>
      
      <guid>/oi/dbimport_250/</guid>
      <description>naive之laekov系列.这么水的题还想了几天ovoovo
这个距离,咦,不是传统的距离啊.等距线是十字形的.
思考一下.发现,分别按x和y排序,把相邻的两点之间连边,dijkstra,完了.
为啥啊?因为这样建图可以保证任意两点的最短路一定能在图上跑出来.
毕竟我太弱,ovoovo</description>
    </item>
    
    <item>
      <title>bzoj4152.cc</title>
      <link>/code/dbimport_249/</link>
      <pubDate>Sun, 21 Jun 2015 11:13:13 +0000</pubDate>
      
      <guid>/code/dbimport_249/</guid>
      <description>#include #include #include #include using namespace std;
struct point { int x, y; void read() { scanf(&amp;quot;%d%d&amp;quot;, &amp;amp;x, &amp;amp;y); } }; struct edge { int t, v; edge *ne; };
typedef pair &amp;lt;int, int&amp;gt; dpr;
const int maxn = 200003;
int n, xo[maxn], yo[maxn], d[maxn]; point p[maxn]; edge ebuf_arr[maxn &amp;laquo; 2], *ebuf(ebuf_arr), *head[maxn];
inline bool xCmp(const int&amp;amp; a, const int&amp;amp; b) { return p[a]. x &amp;lt; p[b]. x; } inline bool yCmp(const int&amp;amp; a, const int&amp;amp; b) { return p[a].</description>
    </item>
    
    <item>
      <title>20150617</title>
      <link>/diary/dbimport_042/</link>
      <pubDate>Wed, 17 Jun 2015 21:16:07 +0000</pubDate>
      
      <guid>/diary/dbimport_042/</guid>
      <description>比较无语的一天考试&amp;hellip;老师说是很神奇的好题&amp;hellip;然后发现是shoi&amp;hellip;然后让rausen鉴定途中强行被剧透.
第一题能二分ovo然后边界写丑了do了个大die.
第二题线段树水水水.
第三题想了2个小时,发现我根本不会什么lucas定理啊.于是只好百度一下.哦,这不是水题嘛ovoovo
其实lucas定理以前肯定遇到过.不过自己太久没用就搞忘了.noi之前要把各种奇怪的定理和算法复习一下.不然万一考到就亏了啊ovoovo
晚上给adminpage里加了些东西.
所以我还是太弱了.</description>
    </item>
    
    <item>
      <title>test</title>
      <link>/post/dbimport_279/</link>
      <pubDate>Wed, 17 Jun 2015 21:05:25 +0000</pubDate>
      
      <guid>/post/dbimport_279/</guid>
      <description>haha</description>
    </item>
    
    <item>
      <title>bzoj3451 tyvj1953 Normal</title>
      <link>/oi/dbimport_194/</link>
      <pubDate>Wed, 17 Jun 2015 20:55:30 +0000</pubDate>
      
      <guid>/oi/dbimport_194/</guid>
      <description>mhy大爷多久之前开的坑啊ovo
这题的思路比较神.点分+fft.两个点会产生的贡献是1/(dist + 1).于是要知道长度为多少的链有多少条.
利用树分可以将∑深度降到O(n*log n)的级别.原因很明显啊.
然后就用fft来求就好喽.反正是double也懒得用数论了.然后找了wyf的程序随便就拍出一组末位不等,也没用long double.居然能过太神奇了.
总复杂度O(n*log2n).然后莫名其妙就拿了rank1好开心啊.</description>
    </item>
    
    <item>
      <title>bzoj3451.cc</title>
      <link>/code/dbimport_193/</link>
      <pubDate>Wed, 17 Jun 2015 20:35:11 +0000</pubDate>
      
      <guid>/code/dbimport_193/</guid>
      <description>#include #include #include #include using namespace std;
#define float_t __float_t
typedef double float_t; #define _f (float_t)
struct cplx { float_t r, i; cplx() {} cplx(float_t ro, float_t io) { r = ro, i = io; } }; inline cplx operator +(const cplx&amp;amp; a, const cplx&amp;amp; b) { return cplx(a. r + b. r, a. i + b. i); } inline cplx operator -(const cplx&amp;amp; a, const cplx&amp;amp; b) { return cplx(a.</description>
    </item>
    
    <item>
      <title>bzoj3265.cc</title>
      <link>/code/dbimport_185/</link>
      <pubDate>Tue, 16 Jun 2015 20:58:26 +0000</pubDate>
      
      <guid>/code/dbimport_185/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
const int maxn = 1003; const int maxm = 10003; const dint dinf = 0x3f3f3f3f3f3f3f3fll;
int n, m, ne[maxn]; dint a[maxm][maxn];
void pivot(int e, int p) { int fr(n + 1); for (int i = n; i &amp;gt;= 0; &amp;ndash; i) if (a[p][i]) { ne[fr] = i; fr = i; } ne[fr] = -1; a[p][e] = -1; for (int i = 0; i &amp;lt;= m; ++ i) if (i !</description>
    </item>
    
    <item>
      <title>bzoj3265 志愿者招募加强版</title>
      <link>/oi/dbimport_186/</link>
      <pubDate>Tue, 16 Jun 2015 20:58:17 +0000</pubDate>
      
      <guid>/oi/dbimport_186/</guid>
      <description>simplex第一题.这玩意是不是拖得太久了啊ovo记得初中买算导的时候就想学它&amp;hellip;
simplex的思路其实比较简单.先找标号最小的目标函数中系数为正的变量.选择约束最紧的限制条件.通过这个条件来换元.直到消光.
感觉好神奇啊然而为啥啊ovoovo
然而线性规划的条件是≤而求的是目标函数的max.和这题的式子刚好相反啊.
然后神奇的东西是,对偶.强行把矩阵转制,然后把大小于符号取反,求出来的目标式max就是原问题的min.为啥啊Ovo算导上的证明也能看?
然后就是一个类似于高消的东西.据说跑得比较快.
另一个神奇的事情是在这道题里面因为奇怪的系数所以所有变量的系数都是+-1或者0.于是可以不用double强行写.开心.
然后网上的某份代码似乎会把无解的情况搞错hah
然而第一遍自己也有地方写丑&amp;hellip;
这种东西还要再练练.</description>
    </item>
    
    <item>
      <title>20150615</title>
      <link>/diary/dbimport_041/</link>
      <pubDate>Mon, 15 Jun 2015 21:31:56 +0000</pubDate>
      
      <guid>/diary/dbimport_041/</guid>
      <description>xjoi上的半天+废掉的下午和晚上TT
上午考试感觉都不会.第二题想出的方法一点也不科学.第一题乱猜的结论还不知道怎么构造.第三题完全ovo感觉有点像魔法森林不过不会写toptree于是想起当年的三分乱搞.
然后各种时间就在不知道干什么中过去了.
有时候觉得心里好乱啊根本沉不下心来做题.然后也没有办法解决.只有事后去感到后悔然后毫无用处继续循环&amp;hellip;
所以是时候做出一些改变啊&amp;hellip;其实事情不少啊少年ovoovo
看到zhx很早之前写的文章,&amp;ldquo;noi也许是因为心境不同所以也没认真考&amp;rdquo;.他没认真考还是能进队.我要是不认真后果可能就是死啊ovoovo
所以不能这样下去了啊&amp;hellip;每次都这么说TT
所以我还是太弱了.</description>
    </item>
    
    <item>
      <title>20150614 sccpc2015</title>
      <link>/diary/dbimport_040/</link>
      <pubDate>Sun, 14 Jun 2015 16:02:14 +0000</pubDate>
      
      <guid>/diary/dbimport_040/</guid>
      <description>今天是中考day2ovoo今天是sccpc&amp;hellip;ovoovo&amp;hellip;
比赛过程可以概括为前三小时狂刷一度rank1然后开始卡题后两小时零输出惨烈牺牲ovoovo
还是自己太弱了没想清楚一些事情于是ovoovo
a题水.
b题和&amp;quot;无敌异或&amp;quot;有些像.于是搞之.虽然反应过来有点慢.
c题usaco原题ovoovo
d题竟然误以为是菊花&amp;hellip;最后才反应过来.改对了程序然而dfs强行套bitset作die中&amp;hellip;
e题是啥?哦似乎是水水的推公式.
f题两遍lis.
g题果然是最小割然而我和mhy都没有想到正确的建图.ovoovo
h题根本没时间想.
i题写了个高端dijkstra于是被卡tle.mhy认为可以直接用堆于是wa.然后听到正解眼泪流下来ovoovo
j题无脑&amp;hellip;
想去年都过了7题去年最后延时怒过一题.比去年还差啊伐开心ovoovo
所以我还是太弱了.</description>
    </item>
    
    <item>
      <title>bzoj2589 Spoj 10707 Count on a tree II</title>
      <link>/oi/dbimport_149/</link>
      <pubDate>Fri, 12 Jun 2015 13:39:12 +0000</pubDate>
      
      <guid>/oi/dbimport_149/</guid>
      <description>mhy写此题写了良久啊然后T啊T,T啊T.然后我去翻了一下seter的博客.结合他的东西yy出一种比较优越的做法.
如果我是出数据的,我会出两种数据,菊花图和链.
如果是菊花图,直接朴素ovoovo如果是链,可以以每个叶子节点为根建一次可持久化线段树.
如果是链上长出了一团菊花&amp;hellip;
how to 结合?
不停地删叶子.如果删到某层时叶子足够少了,那就建可持久化线段树去.
对于询问,有若干种情况.
标记每个根里离得很近的点.
如果两个中有一个被标记过,那么直接以这个根求另一个的答案,然后朴素查找近的这个点到根的答案.
如果两个点都没有被删 ,那一定有至少一个根可以使得这条链的两个端点有祖先关系.这样的话直接用可持久化线段树求解.
好像完了?然后wa了ovoovo
还有一种情况是某个点被删了,但是删之后它是接在树枝上的!
于是它离根很远,还不一定有能搞出祖先关系的解.
于是先爬行到没被删的地方,看两个端点是否在同一棵被删的叶子树上.
如果是就朴素了.
如果不是的话,先求没被删的这一段,再朴素被删的一段.
终于完辣.
从来没写过这种代码.感觉自己萌萌哒.</description>
    </item>
    
    <item>
      <title>bzoj2589.cc</title>
      <link>/code/dbimport_148/</link>
      <pubDate>Fri, 12 Jun 2015 13:38:57 +0000</pubDate>
      
      <guid>/code/dbimport_148/</guid>
      <description>#include #include #include using namespace std;
struct seg { int v; seg *ch[2]; }; struct edge { int t; edge *ne; };
const int maxn = 40003; const int leafc = 20; const int maxk = leafc + 1;; const int maxl = 17; const int albsz = 1000003;
int n, m, t, w[maxn], dl[maxn], df[maxn], fk[maxn], deg[maxn]; int tlf, lf[maxk], la[maxk][maxn], d[maxk][maxn], fr[maxk][maxn]; int dfb[maxk][maxn], dfe[maxk][maxn], dfn; int tvis, vis[maxn], vo[maxn], tv; seg *rt[maxk][maxn], *rl[maxk][maxn]; edge ebuf_arr[maxn &amp;laquo; 1], *ebuf(ebuf_arr), *head[maxn];</description>
    </item>
    
    <item>
      <title>rshcr5count.cc</title>
      <link>/code/dbimport_274/</link>
      <pubDate>Thu, 11 Jun 2015 20:03:44 +0000</pubDate>
      
      <guid>/code/dbimport_274/</guid>
      <description>#include #include #include using namespace std;
#define _l (long long int)
const int maxn = 103; const int mod = 1e9 + 7;
int modPow(int a, int x) { int s(1); for (; x; x &amp;raquo;= 1, a = _l a * a % mod) if (x &amp;amp; 1) s = _l s * a % mod; return s; }
int fac[maxn], finv[maxn], vinv[maxn]; int n, m, k, f[maxn], c[maxn];</description>
    </item>
    
    <item>
      <title>弱省互测Round5 Count</title>
      <link>/oi/dbimport_275/</link>
      <pubDate>Thu, 11 Jun 2015 20:03:25 +0000</pubDate>
      
      <guid>/oi/dbimport_275/</guid>
      <description>这题我的做法不太一样.所以mark一下.首先我把题里的n和m看反了,所以下面的m和n都与原题里的m和n相反.
首先考虑一行的方案.在不考虑顺序(即只考虑题中要求􏰍􏱫􏴈􏴉􏰕􏱫􏰍􏱫􏴈􏴉􏰕􏱫􏲙每个颜色个数这个条件一定时)的方案数.
n是50,刚好可以正整数拆分,把n拆成不超过k个正整数时,可行的方案数为n! / c1! / c2! / &amp;hellip; / s1! / s2! / &amp;hellip;这个样子.其中cx表示正整数拆分中的第x个数(后面补0可以不管),s1表示第一种相同的cx的个数.
其实就是说怎么把k个颜色分配到我拆分出的这些整数里.
然后对于一种这样的方案的排列数也比较好求.
然后就是求m行的情况.我的思考方法是先按上面固定顺序,再乘m!.其实这样有问题虽然我没出事.也有可以补救的方法.
上面拆出来的一种拆分,设它有t个不同的颜色分配方案,一种方案有c种排列.这里用一个类似于背包的转移,f[i] = f[j] + 一坨东西.
这坨东西就是把(i - j)个方案按顺序排列的答案.(都叫方案啊好晕ovo)当然这里排列的话会用到判断t是否大于等于(i - j),但是t被模过ovoovo.我偷了个懒假设t如果被模过不会正好小到影响统计.果然也没有.
其实也可以不去除,而是乘组合数吧.不过写起来好麻烦.
咦写了这么多了.然而感觉还是没说清楚啊.ovoovo结合代码理解吧.</description>
    </item>
    
    <item>
      <title>bzoj1228.cc</title>
      <link>/code/dbimport_123/</link>
      <pubDate>Thu, 11 Jun 2015 14:48:59 +0000</pubDate>
      
      <guid>/code/dbimport_123/</guid>
      <description>#include #include #include using namespace std;
int calc(int i, int j, int d) { if ((i &amp;amp; 1) &amp;amp;&amp;amp; (j &amp;amp; 1)) return d; else return calc((i + 1) &amp;raquo; 1, (j + 1) &amp;raquo; 1, d + 1); }
int main() { #ifdef LAEKOV_LOCAL freopen(&amp;quot;.in&amp;quot;, &amp;ldquo;r&amp;rdquo;, stdin); #endif
int t; scanf(&amp;quot;%d&amp;quot;, &amp;amp;t); while (t --) { int n, s(0); scanf(&amp;quot;%d&amp;quot;, &amp;amp;n); for (int i = 0; i &amp;lt; n; i += 2) { int a, b; scanf(&amp;quot;%d%d&amp;quot;, &amp;amp;a, &amp;amp;b); s ^= calc(a, b, 0); } puts(s ?</description>
    </item>
    
    <item>
      <title>bzoj1228 [SDOI2009]E&amp;D</title>
      <link>/oi/dbimport_124/</link>
      <pubDate>Thu, 11 Jun 2015 14:48:49 +0000</pubDate>
      
      <guid>/oi/dbimport_124/</guid>
      <description>mhy开了道找规律oovovo
打表找规律良久.最后还是没有O(1)的规律.倒是发现有点像分形,有个log级别的递推式.
怎么来的啊好神奇啊ovoovo</description>
    </item>
    
    <item>
      <title>20150610</title>
      <link>/diary/dbimport_039/</link>
      <pubDate>Wed, 10 Jun 2015 21:26:36 +0000</pubDate>
      
      <guid>/diary/dbimport_039/</guid>
      <description>考了一下今年jsoi的某试.感觉整个人都是晕的.
第一题某三氧化萌在省选前正好和我说过.还记得我花了整个吃晚饭的时间去想终于想出了怎么证明.翻了一下qq聊天记录秒之ovoovo.
第二题之前省选集训的时候做过!?翻了一下正好是4月10号无疑.依稀记得当时我用了二分+线段树,比正解多一个log,一直以为是卡常数,后来才知道正解是单调队列.(5s的题要跑9s是什么心态)
于是狠狠地想了一会,然后发现可以分三种情况讨论,每种情况都可以用单调队列解决.其中两种还能通过翻转合并代码.于是开心ovo.感觉这题主要是在玩不等式和函数单调性.
第三题无脑可持久化trie打打就过了ovoovo
为啥bzoj上没这套题啊ovoovo
2个多小时ak然后去404被高三某学长虐狗.
下午颓颓颓,晚上颓颓颓.
于是我还是太弱了.</description>
    </item>
    
    <item>
      <title>bzoj4127 Abs</title>
      <link>/oi/dbimport_244/</link>
      <pubDate>Wed, 10 Jun 2015 21:19:45 +0000</pubDate>
      
      <guid>/oi/dbimport_244/</guid>
      <description>最近都在做梦的感觉啊.这道题倒是mhy的博客一语点醒梦中人.
只会加正数,所以每个数只有至多一次会从负变非负.
链剖是肯定的.然后记录一下当前最大的负数是谁.如果大于等于0就改掉.所以还是O(n*log2n).
所以我还是太弱了.于是读入优化大法抢了一个rank1.</description>
    </item>
    
    <item>
      <title>bzoj4127.cc</title>
      <link>/code/dbimport_243/</link>
      <pubDate>Wed, 10 Jun 2015 21:19:27 +0000</pubDate>
      
      <guid>/code/dbimport_243/</guid>
      <description>#include #include #include #include using namespace std;
const int buf_len = 45678; char buf[buf_len], *bufb(buf), *bufe(buf + 1); #define readBuf() { if (++ bufb == bufe) bufe = (bufb = buf) + fread(buf, 1, sizeof(buf), stdin); } #define readInt(x) { register int s(0), neg(0); while (!isdigit(*bufb)) { if (*bufb == &amp;lsquo;-&amp;rsquo;) neg = 1; readBuf(); } do { s = s * 10 + *bufb - 48; readBuf(); } while (isdigit(*bufb)); if (neg) x = -s; else x = s; }</description>
    </item>
    
    <item>
      <title>bzoj4004.cc</title>
      <link>/code/dbimport_225/</link>
      <pubDate>Tue, 09 Jun 2015 21:05:41 +0000</pubDate>
      
      <guid>/code/dbimport_225/</guid>
      <description>#include #include #include using namespace std;
#define _l (long long int)
const int maxn = 503; const int hmod = 1111111121;
int n, m, a[maxn][maxn], b[maxn][maxn], rb[maxn][maxn], c[maxn], o[maxn]; int t, s;
inline bool cCmp(const int&amp;amp; a, const int&amp;amp; b) { return c[a] &amp;lt; c[b]; }
void pr() { for (int i = 0; i &amp;lt; t; ++ i, putchar(10)) for (int j = 0; j &amp;lt; m; ++ j) fprintf(stderr, &amp;ldquo;%5d&amp;rdquo;, b[i][j]); }</description>
    </item>
    
    <item>
      <title>bzoj4004 [JLOI2015]装备购买</title>
      <link>/oi/dbimport_226/</link>
      <pubDate>Tue, 09 Jun 2015 21:05:32 +0000</pubDate>
      
      <guid>/oi/dbimport_226/</guid>
      <description>比较郁闷的题ovo拍了老久.最后还是找Po神要来了数据.
首先这个矩阵的基就是一个拟阵,所以可以贪心.
然后发现就是要O(n^2)判断是否线性无关.
其他人的做法是强行顺序.我觉得没辣么麻烦啊.先把原来消出来的东西备份一下.如果发现不行再备份回来就好了啊ovoovo
那么直接高消会有非常严重的精度问题(似乎是).
于是我想直接用整数搞.然后发现会有变成负数的问题和越界的问题,强行re+wa.非常不开心.
于是直接取模yeah.然后由于用了辗转相除之类的东西所以常数巨大.而且bzoj上开了O2比本机没开O2竟然慢了6倍.ovoovo</description>
    </item>
    
    <item>
      <title>hdu5267.cc</title>
      <link>/code/dbimport_253/</link>
      <pubDate>Sun, 07 Jun 2015 21:24:23 +0000</pubDate>
      
      <guid>/code/dbimport_253/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
struct edge { int t; edge *ne; };
struct seg { int l, r, rv, s; seg *ch[2]; };
const int maxn = 10003; const int maxl = 17;
int n, m, a[maxn], ca[maxn]; int dv[maxn], sz[maxl][maxn], dfb[maxl][maxn], dfe[maxl][maxn], dsr[maxl][maxn], df[maxn]; int cp[maxn], cv[maxn], cb[maxn]; dint ans[maxn], cans; dint tp[maxn], xpc[maxn]; int tvis, vis[maxn]; edge ebuf_arr[maxn &amp;laquo; 1], *ebuf, *head[maxn]; seg sbuf_arr[maxn * maxl * 3], *sbuf, *rt[maxn];</description>
    </item>
    
    <item>
      <title>hdu5267 pog loves szh IV</title>
      <link>/oi/dbimport_254/</link>
      <pubDate>Sun, 07 Jun 2015 21:24:11 +0000</pubDate>
      
      <guid>/oi/dbimport_254/</guid>
      <description>bc fst爽翻.然后这题差二十分钟没调出来不然我就是rank1.还是应该直接敲而不是去和队友商量.
静态做的话直接按位树分就好了.然后资瓷修改的时候也是一样.只是把之前求的信息在树分后的dfs序上用线段树记下来.也就是要随时知道某个分治层里的某个子树上有多少个0或者1.
然后就是讨论某个修改对当前答案的贡献.要注意分治根的值,以及有贡献的是哪些位置.中间打错了外层的dfs序范围,导致调试了很久.明明想清楚了但是打错了,不应该的.
只有完了之后交了然后怒虐标程好开心啊.</description>
    </item>
    
    <item>
      <title>bzoj4123.cc</title>
      <link>/code/dbimport_241/</link>
      <pubDate>Thu, 04 Jun 2015 22:31:32 +0000</pubDate>
      
      <guid>/code/dbimport_241/</guid>
      <description>#include #include #include using namespace std;
const int maxn = 1000003;
int n, l, a[maxn], b[maxn], s; int q[maxn], hd, tl;
int main() { #ifdef LAEKOV_LOCAL freopen(&amp;quot;.in&amp;quot;, &amp;ldquo;r&amp;rdquo;, stdin); #endif
scanf(&amp;quot;%d&amp;quot;, &amp;amp;n); for (int i = 1; i &amp;lt;= n; ++ i) scanf(&amp;quot;%d&amp;quot;, a + i); for (int i = n + 1; i &amp;lt;= n * 2; ++ i) a[i] = a[i - n]; a[0] = 0; for (int i = 1; i &amp;lt;= n * 2; ++ i) a[i] += a[i - 1]; l = (n + 1) &amp;gt;&amp;gt; 1; for (int i = 1; i + l - 1 &amp;lt;= n * 2; ++ i) b[i] = a[i + l - 1] - a[i - 1]; s = 0; hd = tl = 0; for (int i = 1; i + l - 1 &amp;lt;= n * 2; ++ i) { while (hd &amp;lt; tl &amp;amp;&amp;amp; b[q[tl - 1]] &amp;gt;= b[i]) -- tl; q[tl ++] = i; while (hd &amp;lt; tl &amp;amp;&amp;amp; q[hd] + l &amp;lt;= i) ++ hd; if (i &amp;gt;= l) s = max(s, b[q[hd]]); } printf(&amp;quot;%d\n&amp;quot;, s); }</description>
    </item>
    
    <item>
      <title>bzoj4123 [Baltic2015]Hacker</title>
      <link>/oi/dbimport_242/</link>
      <pubDate>Thu, 04 Jun 2015 22:31:15 +0000</pubDate>
      
      <guid>/oi/dbimport_242/</guid>
      <description>还比较有意思的一题.
考虑如果Alice选了某一个位置,那么Bob的策略一定是选使得Alice的和最小的一段.也就是对于所有位置,求包含它的所有区间中和最小的一个,再求个max.
这个东西先要展开一倍,然后可以比较方便地用单调队列搞定.</description>
    </item>
    
    <item>
      <title>20150422 plan before noi</title>
      <link>/diary/dbimport_024/</link>
      <pubDate>Thu, 04 Jun 2015 16:31:39 +0000</pubDate>
      
      <guid>/diary/dbimport_024/</guid>
      <description>听说要写一个计划ovo.然后计划没有变化快.
首先我们来一张日历.
SunMonTueWedThuFriSat 04.2204.2304.24 04.2504.2604.2704.2804.2904.3005.01 05.0205.0305.04ctsc day105.0505.06ctsc day205.0705.08 05.09apio05.1005.1105.1205.1305.1405.15 05.1605.1705.1805.1905.2005.2105.22 05.2305.2405.2505.2605.2705.28rshc 205.29 05.3005.3106.0106.0206.0306.0406.05 06.0606.0706.0806.0906.1006.1106.12 06.1306.1406.1506.1606.1706.1806.19 06.2006.2106.2206.2306.2406.2506.26 06.2706.2806.2906.3007.0107.0207.03 07.0407.0507.0607.0707.0807.0907.10 07.1107.1207.1307.1407.15noi 主要的事情有,五月上旬的apio和ctsc.五月中旬的zjoi.六月下旬的hn多校.七月noi集训.以及八月noi.
四月大概木有多少时间了.apio之前就去浪一浪bzoj上前几年的原题吧.熟悉一下风格顺便受一下虐.然后顺便去把别的省的今年的省选题做一做.
五月第一个星期就去ctsc和apio了.每天水一水题就好了.然后准备好被zhx各种奇怪的问题问趴下.另外要利用这个时间把弱省胡策的题搞定.
然后回来就是11号了.然后大概马上又要去zj.这种零碎的时间啥的比较郁闷,就多刷一些题吧.大概还会有胡策.有时间就多看看.学习一下各省的神牛牛牛牛们都在看什么题.
回来之后五月就只剩下一个星期了.先复习一会ds.去把toptree学了然后把sone1写了.(大概一个星期写不完?)心里的痛啊.
5月31号这一周以及六月第一周去把noi原题填一些.重点做一些图论题和dp题.这回省选就是坑在这的.然后也要补习一些论文.
6月13号这一周要会考.还是要多腾一些时间来复习一下政治和通用技术.不能不过关那就麻烦了.然后这个时候大概团抗的东西也出来了.可以看看.不能再像上次thu的aicraft那样郁闷了.
会考完大概就直奔湖南了.
然后回来就是noi集训.大概会比较累.赛前就是没事刷刷题来放松心情吧.然后还要给cdqz夏令营出题ovo.七月这个坑先放这吧.主要是用来查漏补缺.
然后八月就愉快地去noi喽.
upd@20150511 计划果然没有变化快.noi提前到了七月份,于是duang的一声时间变紧了.所幸之前没有给七月份安排什么很具体的事情.
5月出去第一次之前的事情大概都解决了.但是没有坚持每天一道bzoj.感觉懒癌已经无药可治了.当然在外面没有好用的键盘也是一个问题.不过主要还得怪自己.
发现自己的数学还是比较弱的.决定这周把矩阵论看了.反正也懒癌是吧您就多看看书吧.
夏令营的题我觉得已经差不多了就差别人的部分了晕.然后要政治会考了也要抽一点时间把前两天错过的复习课看一下.然后也要准备一下简历和自荐信.下定决定用tex搞所以要先做一个好看一点的板出来.
6月似乎又要去趟帝都了.之前觉得有坑的地方似乎都在被填ing好开心.
upd@20150513 计划永远没有变化快.因为zjoi在余姚所以愉快地放弃了TT
那这几天就闲着没事干喽.明天就动手去填sone1!
多出来的时间把mhy开的坑填掉!就这么愉快地决定了!
upd@20150603 考跪了一场thusc让我心情异常好.然后发现之前填Sone1的雄心淹没在了代码里.
发现自己有些地方有漏洞啊.然后发现六月远没有想像中的那么充实.
听zhx一句,vjudge上的题看来还是有用的,所以最近抽出些时间把题看一遍.不用全写,挑一些就好了.
然后去学习一下单纯型.</description>
    </item>
    
    <item>
      <title>20150315 first footprint</title>
      <link>/diary/dbimport_002/</link>
      <pubDate>Wed, 03 Jun 2015 10:10:36 +0000</pubDate>
      
      <guid>/diary/dbimport_002/</guid>
      <description>此页已被hack</description>
    </item>
    
    <item>
      <title>20150601</title>
      <link>/diary/dbimport_038/</link>
      <pubDate>Tue, 02 Jun 2015 10:11:01 +0000</pubDate>
      
      <guid>/diary/dbimport_038/</guid>
      <description>thusc最终还是完了.mark一下吧.
昨天考了一场很糟熇的试.于是心情很差.
今天去面试的时候有一点紧张,出来的时候没有起身看坐.大概是自己太naive了吧.
于是结果就是那么不好喽.
协议的意思大概是,如果noi前50就点,如果51到100就降一本,否则降60分.嗯,听上去也不算差是吧?
总之给我提了一个醒,如果不努力的话就被淘汰了.不能再颓了.
要登机了ovo
//hackedby laekov粉丝团帮厨: laekov姥爷好强啊OvO</description>
    </item>
    
    <item>
      <title>20150531 thusc day1</title>
      <link>/diary/dbimport_037/</link>
      <pubDate>Sun, 31 May 2015 21:12:39 +0000</pubDate>
      
      <guid>/diary/dbimport_037/</guid>
      <description>depressing
i know nobody cares what i am really feeling. nobody.
so why am i writing?
there&amp;rsquo;s really nothing to say.
killed by lazy cancer at May 31st, 2015
goodbye, the cute wrold. i will smash everything someday.</description>
    </item>
    
    <item>
      <title>bzoj2877.cc</title>
      <link>/code/dbimport_166/</link>
      <pubDate>Thu, 28 May 2015 19:39:30 +0000</pubDate>
      
      <guid>/code/dbimport_166/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
#define checkNeg(x) { if (x &amp;lt; 0) x = -x; } dint gcd(dint a, dint b) { checkNeg(a); checkNeg(b); while (a) { register dint c(b % a); b = a; a = c; } return b; }
#define md ((p-&amp;gt;l+p-&amp;gt;r)&amp;raquo;1) #define mdp(p) ((p-&amp;gt;l+p-&amp;gt;r)&amp;raquo;1) #define zp(x,y) ((x)*m+(y))</description>
    </item>
    
    <item>
      <title>bzoj2877 [Noi2012]魔幻棋盘</title>
      <link>/oi/dbimport_167/</link>
      <pubDate>Thu, 28 May 2015 19:39:13 +0000</pubDate>
      
      <guid>/oi/dbimport_167/</guid>
      <description>其实是一道没多大意思思的码农题TT然而这是我的第800题所以要mark一下.
gcd序列可以用插分序列+第一个数来支持区间加.二维那就二维差分喽.
然后发现第一个数似乎没有办法维护啊.不能做了?!
询问的方式比较奇怪,有一个中心.那就建4个方向吧.这样似乎可做了yeah.
所以我还是太naive了啊.
是时候屯一波题了.</description>
    </item>
    
    <item>
      <title>ovoo.cc</title>
      <link>/code/dbimport_269/</link>
      <pubDate>Thu, 28 May 2015 12:01:04 +0000</pubDate>
      
      <guid>/code/dbimport_269/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #define _l (long long int)
typedef pair &amp;lt;dint, int&amp;gt; dpr;
struct node { int v, t, sz; node* ch[2]; }; struct edge { int t, v; edge *next; };
const int maxn = 100009; const int maxh = 200009; const int maxnd = maxn * 43; const int mod = (1 &amp;laquo; 23) * 7 * 17 + 1;
edge ebuf_arr[maxn], *ebuf(ebuf_arr), *head[maxn]; node nbuf_arr[maxnd], *nbuf(nbuf_arr), *nrt[maxn], *srt[maxn]; int n, k, ts, th; dint sans[maxn]; dpr hp[maxh];</description>
    </item>
    
    <item>
      <title>bzoj3864.cc</title>
      <link>/code/dbimport_209/</link>
      <pubDate>Sun, 24 May 2015 10:02:08 +0000</pubDate>
      
      <guid>/code/dbimport_209/</guid>
      <description>#include #include #include using namespace std;
const int mod = 1e9 + 7; const int maxs = 17; const int maxst = (1 &amp;laquo; 15) + 3; const char deoxynucleotide[5] = &amp;ldquo;AGCT&amp;rdquo;;
#define mInc(a,b) { a += b; if (a &amp;gt;= mod) a -= mod; }
int n, m, f[2][maxst], ans[maxs]; int trv[maxst][4]; char s[maxs];
int getTrans(int i, int j) { static int fc[maxs], fd[maxs]; fc[0] = fd[0] = 0; for (int k = 0; k &amp;lt; n; ++ k) fc[k + 1] = fc[k] + ((i &amp;raquo; k) &amp;amp; 1); for (int k = 1; k &amp;lt;= n; ++ k) { if (s[k] == deoxynucleotide[j]) fd[k] = fc[k - 1] + 1; else if (fc[k] &amp;gt; fd[k - 1]) fd[k] = fc[k]; else fd[k] = fd[k - 1]; } int sn(0); for (int k = 0; k &amp;lt; n; ++ k) sn |= (fd[k + 1] - fd[k]) &amp;laquo; k; return sn; }</description>
    </item>
    
    <item>
      <title>bzoj3864 Hero meet devil</title>
      <link>/oi/dbimport_210/</link>
      <pubDate>Sun, 24 May 2015 10:01:57 +0000</pubDate>
      
      <guid>/oi/dbimport_210/</guid>
      <description>立杰的dp套dp.之前在hwadee培训的时候讲过的题啊.
考虑求lcs时候的f数组的一列,发现相邻两个数要么差1要么不差.于是15就是拿来状压这个东西的.
然后很愉快地写了一个然后很愉快地tle了.妈妈,剧本里没这一节啊.
仔细思考了一下发现每次在计数dp转移的时候去找lcs dp非常慢.而且只要给定状态和转移,目标是确定的.跑1000次浪费了.于是改成预处理转移.就好了.</description>
    </item>
    
    <item>
      <title>20150521</title>
      <link>/diary/dbimport_036/</link>
      <pubDate>Thu, 21 May 2015 21:29:05 +0000</pubDate>
      
      <guid>/diary/dbimport_036/</guid>
      <description>比较无语的一天.两道交互题ovoovo
第一题看上去只会奇数情况.然后在mhy的强烈要求下去oeis看了一下.囧.
第二题似乎std特别丑.然后pbds跑得没有普通的stl快啊ovoovo
第三题比较神,只多会20分的暴力分.
下午颓.
晚上去学了一下mysql,感觉整个人都精神了.好开心啊.然后过了许久终于更新了一下这个网站ovoovo</description>
    </item>
    
    <item>
      <title>bzoj2555.cc</title>
      <link>/code/dbimport_147/</link>
      <pubDate>Thu, 21 May 2015 19:34:55 +0000</pubDate>
      
      <guid>/code/dbimport_147/</guid>
      <description>#include #include #include using namespace std;
#define _l (long long int)
struct node { int le, sz; node *tr[27], *pt; node() { memset(tr, 0, sizeof(tr)); pt = 0; sz = 0; } };
const int maxn = 1200009; const int maxl = 4000000;
char g[maxl]; int n, mask; node nbuf_arr[maxn], *nbuf(nbuf_arr), *srt, *scur;
void decodeStr(char* a, int mask) { int l(strlen(a)); for (int i = 0; i &amp;lt; l; ++ i) { mask = (_l mask * 131 + i) % l; swap(a[i], a[mask]); } }</description>
    </item>
    
    <item>
      <title>bzoj3542.cc</title>
      <link>/code/dbimport_197/</link>
      <pubDate>Thu, 21 May 2015 19:33:45 +0000</pubDate>
      
      <guid>/code/dbimport_197/</guid>
      <description>#include #include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
struct seg { int m, a, c; seg *ch[2]; seg() { ch[0] = ch[1] = 0, m = a = c = 0; } };
#define sgtRoot 1, n + 1 #define mp ((pl+pr)&amp;raquo;1) #define lson pl, mp #define rson mp, pr #define checkNeg(x) { if (x &amp;lt; 0) x += mod; } #define mInc(x,y) { x += y; if (x &amp;gt;= mod) x -= mod; }</description>
    </item>
    
    <item>
      <title>bzoj3542 DZY Loves March</title>
      <link>/oi/dbimport_198/</link>
      <pubDate>Thu, 21 May 2015 19:33:30 +0000</pubDate>
      
      <guid>/oi/dbimport_198/</guid>
      <description>业界毒瘤ioi开的坑.然后被强行看了一下于教授的代码.然后觉得也不太难嘛.
看了一下条件.只和同行或者同列有关?那就拿map套动态建树的线段树好了辣.
然后距离是欧式距离?那就把完全平方式展开,发现只需要在线段树里记录一下个数,和,平方和,搞定了辣!
然后alloc的时候&amp;ndash;写成了++,查错良久,囧.</description>
    </item>
    
    <item>
      <title>bzoj2961 共点圆</title>
      <link>/oi/dbimport_171/</link>
      <pubDate>Thu, 21 May 2015 16:04:54 +0000</pubDate>
      
      <guid>/oi/dbimport_171/</guid>
      <description>之前觉得不可做的一道题.然后昨天听mhy一句话瞬间懂:几何反演.然后mhy说这题用cdq?骗我读书少呢?
html写公式好郁闷.把设圆心是(p,q),点是(x,y),那么点在圆内的条件是
(p-x)2+(q-y)2 ≤ p2+q2
转化一下变成
q ≥ -(x/y) * p + (x2+y2) / (y*2)
然后就可以把(p,q)看作一个点,每个询问就是询问之前的所有点是否都在这条直线的上方.
那么直接归并排序喽.处理出左边的凸壳再单调扫一遍右边的所有直线.这样复杂度是O(n*logn),又短又快yeah.
然后还听说有精度误差?我全程double没用eps也没出事啊hhh</description>
    </item>
    
    <item>
      <title>bzoj2962.cc</title>
      <link>/code/dbimport_172/</link>
      <pubDate>Mon, 18 May 2015 21:09:32 +0000</pubDate>
      
      <guid>/code/dbimport_172/</guid>
      <description>#include #include #include using namespace std;
#define _l (long long int)
const int maxc = 23; const int maxn = 50009; const int mod = 19940417;
struct dat { int a[maxc], t; inline dat() { memset(a, 0, sizeof(a)); a[0] = 1; t = 0; } inline int&amp;amp; operator[](const int&amp;amp; x) { return a[x]; } inline int operator[](const int&amp;amp; x) const { return a[x]; } void add(int); void rev(); };
struct seg { int l, r, rv, a; dat d; seg *ch[2]; inline void update(); inline void catTag(int ta, int tr) { if (tr) { a = (mod - a) % mod; d.</description>
    </item>
    
    <item>
      <title>bzoj2962 序列操作</title>
      <link>/oi/dbimport_173/</link>
      <pubDate>Mon, 18 May 2015 21:09:13 +0000</pubDate>
      
      <guid>/oi/dbimport_173/</guid>
      <description>最近整个人都被Sone1搞得头昏脑胀。不爽ing。
这个题其实就是线段树+维护的题。考虑给一个区间里每个数加C的时候的式子会变成什么样就好了。
然后要注意标记得随时下传，不能永久化。
然后感觉时间有点慢不过跑起来还将就。
然后我太弱了。</description>
    </item>
    
    <item>
      <title>20150515</title>
      <link>/diary/dbimport_035/</link>
      <pubDate>Fri, 15 May 2015 21:00:32 +0000</pubDate>
      
      <guid>/diary/dbimport_035/</guid>
      <description>毫无违和感的一天.
第一题只会40分的O(n2)级别的东西.正解没看懂.
第二题想着想着就差点睡着.正解感觉比较神奇.自己还没有把sam吃透啊.
第三题好神ovo
下午总结交流感觉好像还是有好多之前想到的东西忘讲了ovo还忘卡时了ovo每次上台都会紧张,得多练.
所以窝还是太弱辣.</description>
    </item>
    
    <item>
      <title>bzoj4066.cc</title>
      <link>/code/dbimport_234/</link>
      <pubDate>Thu, 14 May 2015 21:08:22 +0000</pubDate>
      
      <guid>/code/dbimport_234/</guid>
      <description>#include #include #include using namespace std;
#define upMax(a,b) { if (a &amp;lt; b) a = b; } #define upMin(a,b) { if (a &amp;gt; b) a = b; }
struct kdnode { int p[2], a[2][2], v, s; kdnode *ch[2]; inline void update() { a[0][0] = a[1][0] = p[0]; a[0][1] = a[1][1] = p[1]; s = v; if (ch[0]) { upMin(a[0][0], ch[0]-&amp;gt; a[0][0]); upMin(a[0][1], ch[0]-&amp;gt; a[0][1]); upMax(a[1][0], ch[0]-&amp;gt; a[1][0]); upMax(a[1][1], ch[0]-&amp;gt; a[1][1]); s += ch[0]-&amp;gt; s; } if (ch[1]) { upMin(a[0][0], ch[1]-&amp;gt; a[0][0]); upMin(a[0][1], ch[1]-&amp;gt; a[0][1]); upMax(a[1][0], ch[1]-&amp;gt; a[1][0]); upMax(a[1][1], ch[1]-&amp;gt; a[1][1]); s += ch[1]-&amp;gt; s; } } };</description>
    </item>
    
    <item>
      <title>bzoj1225.java</title>
      <link>/code/dbimport_122/</link>
      <pubDate>Thu, 14 May 2015 09:44:14 +0000</pubDate>
      
      <guid>/code/dbimport_122/</guid>
      <description>import java.util.; import java.math.;
class Main { static int n, m, a[], tp, pn[]; static BigInteger f[][]; static boolean pr[], fl[][];
static void pre() { int maxm = 30; pr = new boolean[maxm]; pn = new int[maxm]; pn[0] = 1; tp = 1; for (int i = 0; i &amp;lt; maxm; ++ i) pr[i] = false; for (int i = 2; i &amp;lt; maxm; ++ i) { if (!pr[i]) pn[tp ++] = i; for (int j = 1; j &amp;lt; tp &amp;amp;&amp;amp; i * pn[j] &amp;lt; maxm; ++ j) { pr[i * pn[j]] = true; if (i % pn[j] == 0) break; } } } public static void main(String args[]) { Scanner cin = new Scanner(System.</description>
    </item>
    
    <item>
      <title>bzoj1225 [HNOI2001] 求正整数</title>
      <link>/oi/dbimport_121/</link>
      <pubDate>Thu, 14 May 2015 09:43:59 +0000</pubDate>
      
      <guid>/oi/dbimport_121/</guid>
      <description>ioi好神啊,居然写搜索.我显然是不想写高精的啦于是用java于是花费了整整两节课TT
我的想法是dp.设答案为f[m],那么f[m]只与fd有关.设f[i][j]表示i为m的第i小的约数,且已经用了前j个素数的答案.然后就可以转移辣.
然后得二分一下用多大的素数可以卡过.毕竟java自带大常数.而且bzoj坑爹在不管有多少组数据都只多给2秒总时限ovo</description>
    </item>
    
    <item>
      <title>bzoj4071.cc</title>
      <link>/code/dbimport_239/</link>
      <pubDate>Wed, 13 May 2015 18:37:39 +0000</pubDate>
      
      <guid>/code/dbimport_239/</guid>
      <description>#include #include #include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
struct range { int l, r; }; inline bool operator &amp;lt;(const range&amp;amp; a, const range&amp;amp; b) { return a. l + a. r &amp;lt; b. l + b. r; }
struct bridge { static const int maxn = 200009; int ha[maxn], hb[maxn], ta, tb; dint sa, sb; inline void clr() { ta = tb = sa = sb = 0; } bridge() { clr(); } void balance() { while (ta &amp;gt; tb + 1) { hb[tb] = -ha[0]; sa -= ha[0]; sb += hb[tb]; pop_heap(ha, ha + ta &amp;ndash;); push_heap(hb, hb + ++ tb); } while (ta &amp;lt; tb + 1) { ha[ta] = -hb[0]; sb -= hb[0]; sa += ha[ta]; pop_heap(hb, hb + tb &amp;ndash;); push_heap(ha, ha + ++ ta); } } inline void ins(int x) { if (x &amp;lt;= ha[0]) { sa += x; ha[ta] = x; push_heap(ha, ha + ++ ta); } else { sb -= x; hb[tb] = -x; push_heap(hb, hb + ++ tb); } balance(); } inline dint qry() { return _l ha[0] * (ta - tb) - sa - sb; } };</description>
    </item>
    
    <item>
      <title>bzoj4071 [Apio2015]巴邻旁之桥</title>
      <link>/oi/dbimport_240/</link>
      <pubDate>Wed, 13 May 2015 18:37:18 +0000</pubDate>
      
      <guid>/oi/dbimport_240/</guid>
      <description>这是apio里我最自豪的一道题了.让三分党去&amp;hellip;吧.
k=1直接在所有坐标的中位数处建桥就行了不要问我为什么.
首先感受一下发现可以按(a+b)把序列分成两半,然后两半就是k=1的情况嘛.那直接处理一下每个前缀和后缀的答案就完了辣.</description>
    </item>
    
    <item>
      <title>bzoj4070.cc</title>
      <link>/code/dbimport_237/</link>
      <pubDate>Wed, 13 May 2015 18:35:21 +0000</pubDate>
      
      <guid>/code/dbimport_237/</guid>
      <description>#include #include #include #include #include using namespace std;
struct edge { int t, v; edge* next; };
const int maxn = 30009; const int bsz = 80; const int maxb = 83; const int maxnd = maxn * maxb; const int ebsz = 1000001;
int n, m, st, te, d[maxnd], tnid, nid[maxb][maxn]; edge *head[maxnd];
inline void addEdge(int u, int v, int w) { static edge* ebuf; static int cnt(0); if (!</description>
    </item>
    
    <item>
      <title>bzoj4070 [Apio2015]雅加达的摩天楼</title>
      <link>/oi/dbimport_238/</link>
      <pubDate>Wed, 13 May 2015 18:34:41 +0000</pubDate>
      
      <guid>/oi/dbimport_238/</guid>
      <description>apio的第二题.其实是我做题顺序里的最后一道.
我的方法比较奇怪.对于p分开讨论.如果p&amp;gt;c那么直接建边,否则在图的旁边再建若干条链,把这个点连到链上去.然后再跑一下最短路.
卡一卡常数就过去啦.</description>
    </item>
    
    <item>
      <title>bzoj4069.cc</title>
      <link>/code/dbimport_235/</link>
      <pubDate>Wed, 13 May 2015 18:32:49 +0000</pubDate>
      
      <guid>/code/dbimport_235/</guid>
      <description>#include #include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int) #define lpow2(x) (1ll&amp;laquo;(x))
const int maxn = 2009; const int maxb = 43;
dint a[maxn], ans; int n, ml, mh, d[maxn]; bitset f[maxn];
int bitDP(int bo) { if (ml &amp;gt; 1) { memset(f, 0, sizeof(f)); f[0][0] = 1; for (int i = 1; i &amp;lt;= n; ++ i) { f[i - 1] &amp;laquo;= 1; for (int j = 0; j &amp;lt; i; ++ j) { dint vd(a[i] - a[j]); if (((vd &amp;amp; ans) &amp;raquo; bo) !</description>
    </item>
    
    <item>
      <title>bzoj4069 [Apio2015]巴厘岛的雕塑</title>
      <link>/oi/dbimport_236/</link>
      <pubDate>Wed, 13 May 2015 18:32:07 +0000</pubDate>
      
      <guid>/oi/dbimport_236/</guid>
      <description>看上去apio的成绩都出来了,那我就可以写题解喽.
这题比较水啊,尤其是在考试的时候允许多次提交,服务器还跑得飞快.强行bitset压位就好了.
按位从高向低贪心.
对于l=1的情况直接求最少的覆盖区间就好了.
对于剩下的情况,用f[i][j]表示前i个数能否用j个区间覆盖.
完了辣</description>
    </item>
    
    <item>
      <title>20150513</title>
      <link>/diary/dbimport_034/</link>
      <pubDate>Wed, 13 May 2015 17:40:22 +0000</pubDate>
      
      <guid>/diary/dbimport_034/</guid>
      <description>比较无语的一场考试.感觉题不太能做啊.
第一题,啊,平面图!根本不会!想了想能不能反演发现好像没有意义,感觉xyz大爷当年讲过啊.于是只好朴素拿40分走人.然后发现别人居然都没有拿到40分ovo
第二题我觉得任何时候都不能赌博啊然后还是hobo厉害地发现了问题所在.本来也没有认真想,都去颓提答去了.
提答题感觉还挺好玩.先写个模拟器人工玩过了123,然后发现后面的点都有特点啊.有的是矩形最短路,有的是树形dp啥的.不过,我,都,不,想,写,了.于是写了个随便乱走的东西骗个1分2分的.懒癌晚期TT
后来还差点把spj配错结果差点以为我自己几乎ac.吓死了.其实只有35分TT
然后ioi好强啊.
所以我还是太弱了.</description>
    </item>
    
    <item>
      <title>bzoj2111.cc</title>
      <link>/code/dbimport_125/</link>
      <pubDate>Wed, 13 May 2015 17:36:29 +0000</pubDate>
      
      <guid>/code/dbimport_125/</guid>
      <description>#include #include #include using namespace std;
#define _l (long long int)
const int maxn = 1000009;
int n, mod, sz[maxn];
int modPow(int a, int x) { int s(1); for (; x; x &amp;raquo;= 1, a = _l a * a % mod) if (x &amp;amp; 1) s = _l s * a % mod; return s; }
struct modInt { int a, b; modInt() {} modInt(int ao, int bo) { a = ao, b = bo; } modInt(int xo) { a = xo; for (b = 0; a % mod == 0; a /= mod, ++ b); a %= mod; } inline void print() { if (b) puts(&amp;ldquo;0&amp;rdquo;); else printf(&amp;quot;%d\n&amp;quot;, a); } }; inline modInt operator *(const modInt&amp;amp; a, const modInt&amp;amp; b) { return modInt(_l a.</description>
    </item>
    
    <item>
      <title>bzoj2111 [ZJOI2010]Perm 排列计数</title>
      <link>/oi/dbimport_126/</link>
      <pubDate>Wed, 13 May 2015 17:36:12 +0000</pubDate>
      
      <guid>/oi/dbimport_126/</guid>
      <description>之前觉得好神的题根本没有思路.刚才才发现ovo
发现这玩意其实就是一个堆而且堆里没有相同的元素.那么对于一个点它的方案数就是左右儿子的方案数的积再乘两边大小的组合数ovo
然后被坑了直到看到zyf的题解才想起有可能mod&amp;lt;n.然后得用一个pair来代替原来的数.
无语喽ovo</description>
    </item>
    
    <item>
      <title>bzoj4059.cc</title>
      <link>/code/dbimport_233/</link>
      <pubDate>Tue, 12 May 2015 14:32:18 +0000</pubDate>
      
      <guid>/code/dbimport_233/</guid>
      <description>#include #include #include #include using namespace std;
typedef pair &amp;lt;int, int&amp;gt; ipr; typedef map &amp;lt;int, int&amp;gt; imap; typedef imap :: iterator imap_it;
struct seg { int l, r, s, a; seg *ls, *rs; }; struct oper { int x, ya, yb, t; }; inline bool operator &amp;lt;(const oper&amp;amp; a, const oper&amp;amp; b) { return a. x &amp;lt; b. x; }
const int maxn = 400009;
int n, m, a[maxn], pr[maxn], su[maxn], t; oper o[maxn]; seg sbuf_arr[maxn * 2], *sbuf, *rt; imap ri;</description>
    </item>
    
    <item>
      <title>20150511 summary for 北京多合一</title>
      <link>/diary/dbimport_033/</link>
      <pubDate>Mon, 11 May 2015 22:37:33 +0000</pubDate>
      
      <guid>/diary/dbimport_033/</guid>
      <description>去了一趟帝都,算起来大概打了4场比赛.
ctsc听说是世界上最难的oi比赛.虽然我至少有2题写出了正确的代码,然后又因为奇奇怪怪的原因把分扔掉了.本来以为自己考得稀撇然而还是拿到了au.说明在这样的比赛里稳定才是关键.当然像hobo那样玩心跳翻盘也是不错的,虽然我觉得这样风险很大.也教会我要相信自己相信出题人,不要老是怀疑人生.
apio相对开心很多.吉司机怒虐全场2小时ak把我惊呆了.然后我也就做了2.75小时而已.感觉今年题简单加上多次提交帮了大忙.虽然心虚不过最后还是拿到了au.
然后因为apio提前出来了所以还做了bop复赛,虽然感觉整个那个下午都很颓废.做了比较水的题然后就放弃了.然后还有个题强行set被卡常数了TT
然后就是pku校赛了,事实证明在acm中找一个正确的团队和写好自己的题同样重要.虽然是一支从未磨合过的队伍,但是感觉还是很好吖.然后也结交了两个很厉害的朋友.
感觉上面的东西在之前的博客里都说过了.所以就自行翻阅吧.
出来也认识了很多各地的神犇,从以前只是oj上的一个id变成了现实中活生生的人.每个人都有自己的个性,让我感觉世界一下充实了不少,也找到了自己的差距和努力的方向.顺便也为未来规划了一些互相帮助共同进步的计(hu)划(ce).
嗯很开心啦,虽然我还是很弱.</description>
    </item>
    
    <item>
      <title>20150510</title>
      <link>/diary/dbimport_032/</link>
      <pubDate>Sun, 10 May 2015 16:23:06 +0000</pubDate>
      
      <guid>/diary/dbimport_032/</guid>
      <description>pku的acm校赛.原来这么欢乐.成功抱粗腿虽然最后10分钟duang的一声rank3就变rank4了.
我的输出其实就是c和j两道比较无语的题.然后d题在帮着调精度虽然最后也没有过.队友不会用gdb心头一惊.
一个发现是队友的数学比较强,所以他们选择的题和我选择的题刚好没有交集(除了水题).感觉这样才是科学的组合啊.
我的做法?
c题好像很水啊.直接用xyz大爷在wc的时候讲的东西分治过去就行了.然后听说k=0坑了一坨人.我也挂了一次幸好马上就发现了.
d题听说可以强行解方程然后队友去写二分于是挂辣.
j题我的做法是按x坐标分组,分别处理大小大于b的组和小于b的组.总的复杂度是根号乘log.我调了一下块大小加上fread读入优化搞过去了好开心.
所以我还是太弱啦,队友好神啊orz</description>
    </item>
    
    <item>
      <title>20150509 apio2015</title>
      <link>/diary/dbimport_031/</link>
      <pubDate>Sat, 09 May 2015 12:56:43 +0000</pubDate>
      
      <guid>/diary/dbimport_031/</guid>
      <description>apio2015.据说不能透露任何信息,那就随便写点心情之类的吧.大概也没人会看.
嗯第一题把条件看错了居然过了.下来才知道我有多厉害ovo
然后三个小时不到就搞完了虽然换台评测机肯定稳死.于是出去吃饭还遇到了已经变身工作人员的vfk和毕姥爷.令人感动的是他们居然认识我了ovo
于是下午干啥呢思考ing</description>
    </item>
    
    <item>
      <title>20150506 ctsc2015 day2 and summary</title>
      <link>/diary/dbimport_030/</link>
      <pubDate>Wed, 06 May 2015 22:42:31 +0000</pubDate>
      
      <guid>/diary/dbimport_030/</guid>
      <description>ctsc就考完了.考这么差居然还能压线拿au.我的rp一定被吸光了.
今天考得比较郁闷.
花了很久去做第一题.写出了正解只是网络流的建图不够优.于是在考试结束前2分钟决定卡一个时于是就wa了.下来之后发现不卡时能过.只能说我没救了.
第二题数据结构题orz hobo.后来说了之后发现没有很好地把对象的特征抽出来.还好黑暗的算法也过了只有add的20分.
答案提交题看了一会题发现是出题人报复社会于是果断地放弃了.似乎这个决定是很英明的.
于是ctsc就完了.因为自己的奇奇怪怪的疏忽导致有2道能ac的题目的得分都不高.虽然擦线拿到了au,不过感觉还是很不光彩的.感觉自己还是缺乏对考试的掌控的感觉,于是和那些强省的强同学差了很多.毕竟我还是太弱了.
下午mhy主持的闭幕式还挺能看的啊,虽然他们也是业余的,所以还是有一些环节让我都捏了一把汗.不过句句都透着他们的心血,还是很感动的orz也像dzd主席说的一样,抓住了机会来锻炼自己.相信mhy的答辩的时候一定能做得比今天的所有人都好ovo
虽然ctsc跪了不过apio还有机会吧ovo
然后就是胡策出题的事了.ioi真是业界毒瘤orz.这种思维碰撞的感觉真的很好.
所以我还是太弱了.</description>
    </item>
    
    <item>
      <title>20150504 ctsc2015 day1</title>
      <link>/diary/dbimport_029/</link>
      <pubDate>Mon, 04 May 2015 23:09:09 +0000</pubDate>
      
      <guid>/diary/dbimport_029/</guid>
      <description>ctsc day1.早上起来的时候发现太阳都晒屁股了然后才想起这是在帝都.
如果按照时间顺序的话早上是高三的成人礼,虽然我是晚上才知道的.不得不感叹时间过得好快,依稀记得去年zhx穿西服的样子,然后现在他已经这么神了.(说得好像他当年不神一样)
早上考试比较虐心吧.第一题知道可以用dijkstra来优化最短路然后再怎么dp一下,不过觉得第二题更可写于是去写第二题了.然后就错误投资了.
第二题我写的可持久化kdtree.过掉此题的吉丽也是这么写的,可惜我把题意理解错啦.不然是能ac的.悲伤ing.最后一直觉得是我的kdtree写得有问题所以才过不了样例的.当然kdtree是可以被卡的,不过出题组没有想到kdtree的做法好开心hhhh然后正解也比较神不过还比较好理解.zhx的ds题风格.
第三题比较神啦.花神讲了一堆东西我也没太懂不过觉得相当厉害啊.
然后反正就比较虐啦.感觉自己太弱,只有每天写水题度日了.怎么最近总是投资ds题然后出大事啊伐开心.
所以我还是太弱了.</description>
    </item>
    
    <item>
      <title>20150503 ctsc2015 day0</title>
      <link>/diary/dbimport_028/</link>
      <pubDate>Sun, 03 May 2015 22:39:51 +0000</pubDate>
      
      <guid>/diary/dbimport_028/</guid>
      <description>ctsc2015 day0.第x次来帝都,看满城飘絮.(一下飞机嘴皮就开始痛)
住得比较醚.因为cdqc众来得比较晚所以分散了而且我还得当厅长了,然后意外遇到熟人yeah.
试机其实也比较无语键盘好难用电脑好难用板凳是坏的还能连外网顺便ssh玩玩yjq.
面了好多之前一直orz的神牛牛牛牛,比如ioi,tkd(原来你就是tkd!!!),popoqqq,zrt,zyf(不是zfy)&amp;hellip;考虑哪天给这个网站加个友链的功能好了.
明天去骗分喽.</description>
    </item>
    
    <item>
      <title>20150430 haoi2015 day1</title>
      <link>/post/dbimport_027/</link>
      <pubDate>Thu, 30 Apr 2015 16:01:15 +0000</pubDate>
      
      <guid>/post/dbimport_027/</guid>
      <description>今天用apio赛制做别人的省选题ovo
第一题直接用O(n3)的dp加剪枝水过去了.
第二题数据结构题无聊ing
第三题比较有意思.首先你需要有足够强的直觉来推出sg函数的感觉,然后还要用高超的常数优化技巧来过题.各种ovo
晚上还有场tyvj有奖赛ovo</description>
    </item>
    
    <item>
      <title>bzoj4031.cc</title>
      <link>/code/dbimport_231/</link>
      <pubDate>Thu, 30 Apr 2015 15:58:05 +0000</pubDate>
      
      <guid>/code/dbimport_231/</guid>
      <description>#include #include #include using namespace std;
const int maxn = 89; const int mod = 1e9; const int movx[4] = {1, 0, -1, 0}; const int movy[4] = {0, 1, 0, -1};
int n, m, a[maxn][maxn], nid[11][11], t; char g[11][11];
#define _l (long long int) #define mInc(a,b) { a += b; if (a &amp;gt;= mod) a -= mod; } #define mDec(a,b) { a -= b; if (a &amp;lt; 0) a += mod; }</description>
    </item>
    
    <item>
      <title>bzoj4031 [HEOI2015]小Z的房间</title>
      <link>/oi/dbimport_232/</link>
      <pubDate>Thu, 30 Apr 2015 15:57:53 +0000</pubDate>
      
      <guid>/oi/dbimport_232/</guid>
      <description>看上去像是插头dp啊.然后基尔霍夫矩阵也能做.
关键是模数不是质数,所以不能逆元,所以要用mhy的黑科技,碾转相除来做.
mhy太强了ovo</description>
    </item>
    
    <item>
      <title>bzoj3996.cc</title>
      <link>/code/dbimport_221/</link>
      <pubDate>Wed, 29 Apr 2015 19:04:47 +0000</pubDate>
      
      <guid>/code/dbimport_221/</guid>
      <description>#include #include #include using namespace std;
struct edge { int t, c; edge *next, *rv; };
const int maxn = 255009; const int maxe = 2000009; const int maxa = 509; const int inf = 0x3f3f3f3f;
int n, st, te, tnid, rid[maxa], ans; int tvis, vis[maxn], d[maxn]; edge ebuf_arr[maxe], *ebuf(ebuf_arr), *head[maxn];
inline edge* allocEdge(int u, int v, int c) { ebuf-&amp;gt; t = v; ebuf-&amp;gt; c = c; ebuf-&amp;gt; next = head[u]; return head[u] = ebuf ++; } inline void addEdge(int u, int v, int c) { edge* a(allocEdge(u, v, c)); edge* b(allocEdge(v, u, 0)); a-&amp;gt; rv = b; b-&amp;gt; rv = a; }</description>
    </item>
    
    <item>
      <title>bzoj3996 [TJOI2015]线性代数</title>
      <link>/oi/dbimport_222/</link>
      <pubDate>Wed, 29 Apr 2015 19:04:27 +0000</pubDate>
      
      <guid>/oi/dbimport_222/</guid>
      <description>最开始看了一下这是什么gui啊.然后仔细一看发现有玄机.
管aa[1][i]叫a[i]好了.那么b[i]j对答案产生贡献当且仅当a[i]=a[j]=1.b[i][i]对答案产生贡献当且仅当a[i]=1.c[i]对答案产生影响当且仅当a[i]=1.
然后看上去好玄妙啊.其实就是要决定哪些a[i]要选.那不是最大权闭合子图嘛?
数据范围有点大?实测一下飞快啊.</description>
    </item>
    
    <item>
      <title>bzoj4011 [HNOI2015]落忆枫音</title>
      <link>/oi/dbimport_230/</link>
      <pubDate>Wed, 29 Apr 2015 09:24:11 +0000</pubDate>
      
      <guid>/oi/dbimport_230/</guid>
      <description>题目好长啊,像个阅读题一样.还是比较有意思的一道题.有点像gorgeous和我说的那个原创题的感觉啊.
首先如果没有加边的话那么答案就是∏indegreeu.
如果加了边之后还是dag那么无影响.
如果加了边之后存在一个scc,那么答案就要减去∑(环*∏其它点的indegree).这个东西可以用随随便便的dp来解决.</description>
    </item>
    
    <item>
      <title>bzoj4011.cc</title>
      <link>/code/dbimport_229/</link>
      <pubDate>Wed, 29 Apr 2015 09:23:42 +0000</pubDate>
      
      <guid>/code/dbimport_229/</guid>
      <description>#include #include #include using namespace std;
struct edge { int t; edge* next; };
typedef long long dint; #define _l (long long int)
const int maxn = 100009; const int maxe = 200009; const int mod = 1e9 + 7;
int n, m, x, y, ans, ind[maxn], tpo[maxn], tpn[maxn], inv[maxn], f[maxn]; edge ebuf_arr[maxe], *ebuf(ebuf_arr), *head[maxn];
int modPow(int a, int x) { int s(1); for (; x; x &amp;raquo;= 1, a = _l a * a % mod) if (x &amp;amp; 1) s = _l s * a % mod; return s; }</description>
    </item>
    
    <item>
      <title>bzoj4001 [TJOI2015]概率论</title>
      <link>/oi/dbimport_223/</link>
      <pubDate>Tue, 28 Apr 2015 15:55:58 +0000</pubDate>
      
      <guid>/oi/dbimport_223/</guid>
      <description>无语的智商题啊.居然没人写题解.
首先dp打个表.cnt[i]表示大小为i的二叉树的总个数.当然这个就是catlan数.然后son[i]表示大小为i的所有不同构的二叉树的叶子数的和.
然后经过找规律(翻oeis)发现son[i] = C(2n-2,n-1).
于是就没有于是了.推一下组合数发现answer=n2(n+1) / (n2) / (n*2-1).
代码好无语.</description>
    </item>
    
    <item>
      <title>bzoj4001.pas</title>
      <link>/code/dbimport_224/</link>
      <pubDate>Tue, 28 Apr 2015 15:55:06 +0000</pubDate>
      
      <guid>/code/dbimport_224/</guid>
      <description>var n: double; begin readln(n); writeln(nn(n+1)/(2n-1)/(2n):0:9); end.</description>
    </item>
    
    <item>
      <title>20150427</title>
      <link>/diary/dbimport_026/</link>
      <pubDate>Mon, 27 Apr 2015 15:30:59 +0000</pubDate>
      
      <guid>/diary/dbimport_026/</guid>
      <description>无语的考试ovo前几天见过原题ovo
第一题水fib数列的dp.然后还只求个位.找循环节都行啊.
第二题无语的树形dp.之前没有看见树的条件.
第三题算几啊.按面积排一下序然后扫描线啥的.然后mhy还有更厉害的扫描线虽然我不会.
所以mhy好强啊.
顺手粘一发考试的时候写的画图器ovo
zao (zuo) fu (si) de hua tu qi	JS not supported	draw	clear	</description>
    </item>
    
    <item>
      <title>20150426</title>
      <link>/diary/dbimport_025/</link>
      <pubDate>Sun, 26 Apr 2015 22:50:15 +0000</pubDate>
      
      <guid>/diary/dbimport_025/</guid>
      <description>终于还是忍不了把语言换成了英语.然后整个世界的画风都变了ovo不我是指字体变了.
一天考两场ovo虽然都是网赛不过还是mark一下喽.
下午的bop本来也是去玩的所以死得比较惨.
第一题数学渣直接再见.第二题似乎是比较无语的贪心.第三题写了老半天的按询问分块最后还是放弃了.感觉计算影响太麻烦.
晚上bc居然和gorgeous分在一个房间了.于是钱没了.
1001水.1002我随便写了个分块.似乎有人直接写朴素也黑不掉啊不开心.
1003被gorgeous秒了.我还是思考了一下才想到的.其实也就是mobius随便推一下的啦.
1004我写的是按左边区间莫队+按颜色大小分块.然后写完之后发现我开的怎么是c.cc?顺手mv c.cc d.cc然后duang的一声代码不见啦.于是只好重写一遍.然后排名就很惨了.于是orz gorgeous去了.
完了发现并不好hack.于是洗澡.于是在洗澡的时候发现我的4的做法居然乘起来的复杂度是O(n2 logn).这是怎么过pre的啊我类个去.肯定fst了.于是很久之后发现居然pre==final!?一脸捂脸ing.是不是我的rp要被吸光了.
所以我还是太弱啦!</description>
    </item>
    
    <item>
      <title>bzoj3270.cc</title>
      <link>/code/dbimport_187/</link>
      <pubDate>Sun, 26 Apr 2015 13:43:38 +0000</pubDate>
      
      <guid>/code/dbimport_187/</guid>
      <description>#include #include #include #include using namespace std;
const double eps = 1e-11; const int maxa = 23; const int maxn = 409;
int n, m, t, pa, pb, mp[maxa][maxa], deg[maxn]; double p[maxa], a[maxn][maxn], s[maxn];
inline double transPsb(int a, int b) { if (a == b) return p[a]; else if (!mp[a][b]) return 0; else return (1.0 - p[a]) / deg[a]; }
void guess() { for (int i = 0; i &amp;lt; t; ++ i) { int z; for (z = i; fabs(a[z][i]) &amp;lt; eps; ++ z); if (z &amp;gt; i) for (int k = i; k &amp;lt;= t; ++ k) swap(a[i][k], a[z][k]); for (int j = i + 1; j &amp;lt; t; ++ j) { double rat(a[j][i] / a[i][i]); for (int k = i; k &amp;lt;= t; ++ k) a[j][k] -= a[i][k] * rat; } } for (int i = t - 1; i &amp;gt;= 0; &amp;ndash; i) { s[i] = - a[i][t]; for (int j = t - 1; j &amp;gt; i; &amp;ndash; j) s[i] -= s[j] * a[i][j]; s[i] /= a[i][i]; } }</description>
    </item>
    
    <item>
      <title>bzoj3270 博物馆</title>
      <link>/oi/dbimport_188/</link>
      <pubDate>Sun, 26 Apr 2015 13:40:49 +0000</pubDate>
      
      <guid>/oi/dbimport_188/</guid>
      <description>比较基础的期望+高消的题.为了说明一下高消是what,我决定写一发题解.
首先题意是有个n个点m条边的无向图.有两个人初始位置是a和b.每个时刻每个人在一个点有p_i的概率不动,否则等概率移动到相邻的点.只有在同一时刻在同一个顶点上才算相遇.相遇了他俩就玩去了.求在第i号点相遇的概率.
首先方程很好列.定义一个状态f[i][j]表示第一个人在i,第二个人在j的概率.那么f[i][j] = ∑ f[k][l] * ptrans(k,i) * ptrans(j, l),其中ptrans(a,b)表示从a移动到b的概率.
然后这个东西就用高消嘛.(upd:才发现它叫gauss而不是guess.捂脸ing)
高消就是说每次把剩下的方程里的第一个系数不为0的未知数的系数全部通过减某一个方程来把这个系数都消成0.当然被减的方程得留下系数过会再用于推答案.然后就可以不管这个被留下的方程了.
换句话说,如果把方程组看成t*(t+1)的矩阵的话,其实就是消成一个右上三角.
然后再倒着推出每个未知数的值.
这个直接算比例就完了嘛.然后有一种情况是当前a[i][i]已经为0了,那么减不掉?反正所有方程的顺序没有关系啊.你就随便找一个不是0的到前面来消就好了啊.如果剩下方程的这一个系数都是0,那这个未知数取啥就无关了.也无所谓啦.
详见代码.</description>
    </item>
    
    <item>
      <title>bzoj2961.cc</title>
      <link>/code/dbimport_170/</link>
      <pubDate>Sat, 25 Apr 2015 10:41:38 +0000</pubDate>
      
      <guid>/code/dbimport_170/</guid>
      <description>#include #include #include using namespace std;
inline double sqr(const double&amp;amp; x) { return x * x; }
struct opt { int t, i; double x, y; inline double f(double xo) { return x * xo + y; } inline void read() { scanf(&amp;quot;%d%lf%lf&amp;quot;, &amp;amp;t, &amp;amp;x, &amp;amp;y); } }; inline bool operator &amp;lt;(const opt&amp;amp; a, const opt&amp;amp; b) { if (a. x == b. x) return a. y &amp;lt; b. y; else return a.</description>
    </item>
    
    <item>
      <title>bzoj1178.cc</title>
      <link>/code/dbimport_115/</link>
      <pubDate>Thu, 23 Apr 2015 10:08:59 +0000</pubDate>
      
      <guid>/code/dbimport_115/</guid>
      <description>#include #include #include #include using namespace std;
typedef set rbt; typedef set :: iterator rbt_it;
struct cus { int l, r, i; }; inline bool rCmp(const cus&amp;amp; a, const cus&amp;amp; b) { if (a. r == b. r) return a. l &amp;gt; b. l; else return a. r &amp;lt; b. r; } inline bool iCmp(const cus&amp;amp; a, const cus&amp;amp; b) { return a. i &amp;lt; b. i; }
const int maxn = 400009; const int maxl = 19;</description>
    </item>
    
    <item>
      <title>bzoj1178 [Apio2009]CONVENTION会议中心</title>
      <link>/oi/dbimport_116/</link>
      <pubDate>Thu, 23 Apr 2015 10:08:48 +0000</pubDate>
      
      <guid>/oi/dbimport_116/</guid>
      <description>apio的题也是比较有质量的.听说这题很难写但是我感觉难点在想上啊.
首先直接两遍Lis强行判断能不能扔进去是错的.至于为啥我也不造啊.
于是就是区间询问答案最大.然后每次看把当前询问加进去后会不会对最大答案产生影响.
然后发现有点像今年sctsc那个倍增?居然还真是倍增.先去掉包含有其它区间的区间.然后找每个点向右跨过的最近的一个区间.然后再倍增一发.
好神的做法啊ovo
btw为啥bzoj第一页上充满了黑坨坨.不爽Ing.</description>
    </item>
    
    <item>
      <title>bzoj2438 [中山市选2011]杀人游戏</title>
      <link>/oi/dbimport_142/</link>
      <pubDate>Tue, 21 Apr 2015 20:59:49 +0000</pubDate>
      
      <guid>/oi/dbimport_142/</guid>
      <description>之前在哪里听过的题啊.于是卡了一晚上.
就是缩个点然后看看哪些点必需自己去点第一把火就好了.
然后有一种情况是把剩下的都查完之后只剩下一个了.那么看存不存在这种情况.那就是某个第一把火的地方的scc大小为1,且它连出去的都不必需用它查.
然后我就卡在ans&amp;gt;1上了.我傻了ovo
然后非递归tarjan还是写得不熟啊.还要再加深一下对自己想出来的算法的印象.</description>
    </item>
    
    <item>
      <title>bzoj2438.cc</title>
      <link>/code/dbimport_141/</link>
      <pubDate>Tue, 21 Apr 2015 20:59:25 +0000</pubDate>
      
      <guid>/code/dbimport_141/</guid>
      <description>#include #include #include using namespace std;
struct edge { int t; edge *next; };
const int maxn = 100009; const int maxe = 600009; const int maxst = 800009;
int n, m, vis[maxn], dfn[maxn], low[maxn], tscc, fs[maxn], ssz[maxn], ind[maxn]; edge ebuf_arr[maxe], *ebuf(ebuf_arr), *head[maxn], *hg[maxn];
inline void addEdge(edge** head, int u, int v) { ebuf-&amp;gt; t = v; ebuf-&amp;gt; next = head[u]; head[u] = ebuf ++; }
void tarjanDFS(int po) { static int stc[maxst], stv[maxn], stt[maxn], fr[maxn], d[maxn]; int tsc(1), tsv(0), tst(0), dfi(0); d[stc[tsc] = po] = 1; vis[po] = 1; while (tsc) { int p(stc[tsc &amp;ndash;]); if (dfn[p]) continue; for (; tsv &amp;amp;&amp;amp; d[p] &amp;lt;= d[stv[tsv]]; &amp;ndash; tsv) { low[fr[stv[tsv]]] = min(low[fr[stv[tsv]]], low[stv[tsv]]); if (low[stv[tsv]] == dfn[stv[tsv]]) { ssz[++ tscc] = 0; do { vis[stt[tst]] = 2; ++ ssz[fs[stt[tst]] = tscc]; } while (stt[tst &amp;ndash;] !</description>
    </item>
    
    <item>
      <title>bzoj4010.cc</title>
      <link>/code/dbimport_227/</link>
      <pubDate>Tue, 21 Apr 2015 11:52:16 +0000</pubDate>
      
      <guid>/code/dbimport_227/</guid>
      <description>#include #include #include using namespace std;
struct edge { int t; edge *next; };
const int maxn = 100009;
int n, m, ind[maxn], hp[maxn], q[maxn]; edge ebuf_arr[maxn], *ebuf, *head[maxn];
inline void addEdge(int u, int v) { ebuf-&amp;gt; t = v; ebuf-&amp;gt; next = head[u]; head[u] = ebuf ++; }
void sov() { memset(ind, 0, sizeof(ind)); memset(head, 0, sizeof(head)); ebuf = ebuf_arr; scanf(&amp;quot;%d%d&amp;quot;, &amp;amp;n, &amp;amp;m); for (int i = 0; i &amp;lt; m; ++ i) { int u, v; scanf(&amp;quot;%d%d&amp;quot;, &amp;amp;u, &amp;amp;v); addEdge(v, u); ++ ind[u]; } int th(0), tq(0); for (int i = 1; i &amp;lt;= n; ++ i) if (!</description>
    </item>
    
    <item>
      <title>bzoj4010 [HNOI2015]菜肴制作</title>
      <link>/oi/dbimport_228/</link>
      <pubDate>Tue, 21 Apr 2015 11:52:05 +0000</pubDate>
      
      <guid>/oi/dbimport_228/</guid>
      <description>bzoj都3k道题了ovo
hnoi的题好强.
这个题就建反图然后跑topsort就行了.每次选能选的里最大的扔进去.最后倒过来输出.
我也是猜的然后交上去居然是对的.
为什么呢?好神奇?</description>
    </item>
    
    <item>
      <title>bzoj1209.cc</title>
      <link>/code/dbimport_117/</link>
      <pubDate>Tue, 21 Apr 2015 09:38:20 +0000</pubDate>
      
      <guid>/code/dbimport_117/</guid>
      <description>#include #include #include #include #include using namespace std;
#ifdef WIN32 #define randInt ((rand()&amp;laquo;16)|rand()) #else #define randInt (rand()) #endif
const double eps = 1e-11; const double pi = acos(-1);
inline double sqr(const double&amp;amp; x) { return x * x; } inline int sgn(const double&amp;amp; x) { return (x &amp;gt; eps) - (x &amp;lt; -eps); }
typedef struct triobj { double x, y, z; triobj() {} triobj(const double&amp;amp; xo, const double&amp;amp; yo, const double&amp;amp; zo) { x = xo, y = yo, z = zo; } inline void read() { scanf(&amp;quot;%lf%lf%lf&amp;quot;, &amp;amp;x, &amp;amp;y, &amp;amp;z); } } point, vect; inline triobj operator +(const triobj&amp;amp; a, const triobj&amp;amp; b) { return triobj(a.</description>
    </item>
    
    <item>
      <title>bzoj1209 [HNOI2004]最佳包裹</title>
      <link>/oi/dbimport_118/</link>
      <pubDate>Tue, 21 Apr 2015 09:37:44 +0000</pubDate>
      
      <guid>/oi/dbimport_118/</guid>
      <description>三维算几ovo给mhy和idy跪烂.
三维凸包算是一种比较简单的三维算几吧.首先有一些基本的公式比如算四个点的体积就是一个底*高.不过变成了一个面的法向量点乘另一个向量.
然后就用随机增量法每次替掉一些面就好了.
然后有一种可能是所有点都共面.这种时候就随机把一些点乱移动一下让它们形成一个高度和纸一样薄的凸包再来算就行了.
感觉也不是特别恶心啊ovo</description>
    </item>
    
    <item>
      <title>bzoj2671.cc</title>
      <link>/code/dbimport_150/</link>
      <pubDate>Mon, 20 Apr 2015 21:17:53 +0000</pubDate>
      
      <guid>/code/dbimport_150/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
const int maxn = 50009;
dint n, s; int tp, pn[maxn], u[maxn], fc[maxn], tf; bool pr[maxn];
void pre() { memset(pr, 0, sizeof(pr)); u[1] = 1; tp = 0; for (int i = 2; i &amp;lt; maxn; ++ i) { if (!pr[i]) { pn[tp ++] = i; u[i] = -1; } for (int j = 0, v; j &amp;lt; tp &amp;amp;&amp;amp; i * pn[j] &amp;lt; maxn; ++ j) { pr[v = i * pn[j]] = 1; if (i % pn[j] == 0) { u[v] = 0; break; } else u[v] = -u[i]; } } }</description>
    </item>
    
    <item>
      <title>bzoj2671 Calc</title>
      <link>/oi/dbimport_151/</link>
      <pubDate>Mon, 20 Apr 2015 21:17:44 +0000</pubDate>
      
      <guid>/oi/dbimport_151/</guid>
      <description>在颓废了一天之后决定写一个题解.因为我觉得这题挺有意思.
我们需要转化一下式子.把原来的a,b改成A,B.设d=gcd(A,B),A=ad,B=bd.
那么(a+b)d | abd2,即(a+b)|ab*d.
又因为gcd(a,b)=1,所以(a+b)一定与a,b都互质.于是(a+b)|d.
设t*(a+b)=d.那么因为bd≤n,所以t(a+b)*b≤n.那么b是sqrt(n)级别的.且我们只需要统计三元组(a,b,t)的个数就行了.
answer=∑b∑a(n/b)/(a+b)(gcd(a,b)=1)然后这个玩意看上去好像是个长得怪异一点的狄利克雷卷积啊.
于是就是要求[l, r]中与b互质的数的个数?这个玩意等于∑i|bu(i)*(r/i).然后发现可以把b分解质因数.而且只留下u不为0的.于是就能出奇迹辣好厉害ovo</description>
    </item>
    
    <item>
      <title>20150419 scoi diary and summary</title>
      <link>/diary/dbimport_023/</link>
      <pubDate>Sun, 19 Apr 2015 21:43:07 +0000</pubDate>
      
      <guid>/diary/dbimport_023/</guid>
      <description>居然这么快.然后就完了.感觉好像是做了一场梦 或者玩了一场游戏ovo
既然是diary那就先diary一下吧.
day1早上起来在拥挤的餐厅里吃了面包加面包然后走去考试.
然后就开考了.第一题好神不会.第二题好水选敲.第三题想了想就是半平面交啊敲敲敲.然后发现第一题似乎取值是连续的?那就随便打个dinic乱二分一下吧.然后就完了估分200应该过2和3.
然后下午看分居然220.居然过了1和2然后3tle.居然被高一的虐.然后进去申诉居然连数据都不给那玩ball.于是要数据顺便被某负责人怒斥.然后下午果断去看电影.速7还不错.
晚上开会感觉就是flag大会.
然后就day2了昨天晚上好像被毒蚊子咬了,惨.看题发现第一题好神.第二题好神.第三题好水敲30分钟.然后发现第二题似乎可做然后去敲.然后发现第一题还是不会于是乱骗.考试结束前15分钟发现第二题题意看错试图改朴素未果.心痛ing
下午看分果然只有100虽然还是进队了不过被虐惨于是心痛回家.
diary得好水.那么再重新说一下题的做法吧ovo
day1a把≥某个数的东西当作1来跑二分图最大匹配就可以得到最多有多少个≥这个数的选择方案然后直接二分.
day1b是个水水的倍增.每个战士肯定传给最远的一个然后没有覆盖于是倍增一下看要多远才能盖一圈.然后这题数据好难造.
day1c是个半平面交.可以证明任意一边和01边都会划分成一个半平面.扔一起跑半平面交就好了.然后求那个的时候可以用数据公式不过我二分所以被卡常了不开心.
day2a似乎是树形dp反正我还没想出来.大概反正先走左先走右dp一下.因为是完全二叉树所以很多看上去不靠谱的复杂度在这里都是靠谱的.
day2b听说是线段树.其实直接维护每个0区间的左右端点扔进set里就好了.然后黑白转换的时候分情况讨论一下.每次询问的时候先把某个点的值更新一下.然后查询左右能控制到的最远的端点.如果是连在一起的话还要再找第二近的因为有可能另一边会造成答案变小.
day2c水水的链剖+持久化线段树.其实询问就是在某个时刻前就被感染的人在某条链上有多少.我比较懒就直接链剖了其实直接dfs序区间修改也能做还少一个log.不过反正链剖比较快嘛.
虽然这样但是我也只过了3题而已看来我还是太弱啊.
似乎还有总结的部分.
最后一次省选了吧.也是唯一的一次机会.以为自己会很厉害,其实还是不厉害.也算是一种成长吧.发现自己还有很长的路要走.
这回没有倒在ds怎么写上,而倒在了ds的题面上.也算是倒在自己最得意的地方了吧.成长总是痛苦的ovo
dp啥的的确比较弱.不能偏科啊.
世事无常吧.有人翻盘也有人第二天倒下了.4个a类居然没有一个人两天都发挥正常.然后女a也暴冷了.yjq差点就进队了可惜了.然后就有一些熟悉的面孔退役了.
反正就是各种奇怪的事情.其实也早就知道有这一天吧.其实也早就准备好了这一天吧.至少i survived.
于是今年省队好像更整齐了.
所以我还是太弱了啊.</description>
    </item>
    
    <item>
      <title>20150416</title>
      <link>/diary/dbimport_022/</link>
      <pubDate>Thu, 16 Apr 2015 21:32:16 +0000</pubDate>
      
      <guid>/diary/dbimport_022/</guid>
      <description>奇怪的一天ovo然后发现后天就省选了.
考试ovo然后发现整个高二都不太高兴.
第一题想了半个小时之后写了半个小时ovo充分证明思考的重要性.做法大概就是正解线段树二分.然后还卡常数无语了喽.
第二题不是做过的usaco原题么.然后就按当时的想法敲了个上凸壳下面下凸壳上面的东西.最后交之前想起没改过点的范围于是造了个109的数据.然后发现自己wa掉了.整个人都吓到了.不过也没有时间改了只好硬着头皮交上去了.结果下午发现居然过了ovo数据又水了么.讲的时候知道不用那么麻烦.找出凸多边形的核之后直接在里面找个点极角排序就完了.
第三题一直在想.想了一下dp发现应该是自动机.于是一直在想怎么建一个点数不会炸的dfa.最后才发现我没有注意到dp数组相邻两数差只能是1或者0这个性质ovo.
考成这个鬼样子居然还是rank1,被发了大洋若干.这是要我省选rp下溢直接退役的节奏啊.然后仔细一看发现有人没交ovo妈呀他们都是坏银ovo
然后就花了一个下午+一个晚上在群里水.
所以我还是太弱了.</description>
    </item>
    
    <item>
      <title>bzoj3992.cc</title>
      <link>/code/dbimport_219/</link>
      <pubDate>Thu, 16 Apr 2015 17:25:26 +0000</pubDate>
      
      <guid>/code/dbimport_219/</guid>
      <description>#include #include #include using namespace std;
#define mInc(x,y) { x += y; if (x &amp;gt;= mod) x -= mod; } #define _l (long long int)
const int maxn = 20009; const int mod = 1004535809; const int wo = 3;
int n, m, mz, l, x, a[maxn], g[maxn], ss; int wm, wp[maxn];
int modPow(int a, int x, int tmod = mod) { int s(1); for (; x; x &amp;raquo;= 1, a = _l a * a % tmod) if (x &amp;amp; 1) s = _l s * a % tmod; return s; }</description>
    </item>
    
    <item>
      <title>bzoj3992 [Sdoi2015]序列统计</title>
      <link>/oi/dbimport_220/</link>
      <pubDate>Thu, 16 Apr 2015 17:25:12 +0000</pubDate>
      
      <guid>/oi/dbimport_220/</guid>
      <description>好玩的数论题。想想发现可以像快速幂一样跑。然后就是思考如何转移优化。
发现模数比较奇怪。居然是fnt的模数ovo那就要用fft喽？可是这里是乘啊。木有关系喽，因为m是素数，所以它一定有原根。于是可以取原根的幂次，就变成加辣。
这种东西我自己当然想不出来ovo
同余系下的东西真有趣ovo</description>
    </item>
    
    <item>
      <title>20150415</title>
      <link>/diary/dbimport_021/</link>
      <pubDate>Wed, 15 Apr 2015 21:01:13 +0000</pubDate>
      
      <guid>/diary/dbimport_021/</guid>
      <description>好无语的一天ovo
上午讲的东西还是非常能听的，虽然出现了不少原题ovo然后发现自己还是好年轻啊，很多东西想得都不够透彻。
下午考试证明了正确投资的重要性。
第一题就是状态压缩dp，不过显然我写得太，丑，了。又wa又t一时爽yeah。
第二题全场基本都把题意理解错了ovo我还有什么好说的呢。不过目测没有别人写这种题意的正解。我来mark一下。
首先左右端点还是满足单调的。然后就是加点删点判断最小无向子树。以1为根，分两种情况讨论。一种是本来就是一棵子树，那么随便选一个点二分就可以找到这棵子树的最小大小。另一种是除了某个点为根的子树的另一部分。那么可以为根的点就是子树里没有已选点的点。那么用树链剖分来维护哪些点可选就可以辣。非常好写好调ovo
然后出题人理解的题意是做过的ovo
第三题各种无语水。
然后晚上题完全没有思路弃疗ing.
所以我还是太年轻了。积累一个经验就是如果题意感觉会有歧义的话一定要问清楚。</description>
    </item>
    
    <item>
      <title>bzoj2466.cc</title>
      <link>/code/dbimport_143/</link>
      <pubDate>Wed, 15 Apr 2015 20:30:43 +0000</pubDate>
      
      <guid>/code/dbimport_143/</guid>
      <description>#include #include #include using namespace std;
struct edge { int t; edge *next; };
const int maxn = 109; const int inf = 0x3f3f3f3f;
edge *head[maxn], ebuf_arr[maxn &amp;laquo; 1], ebuf; int n, f[maxn][2][2]; / f[node][if u is light][if u is chosen] */
inline void addEdge(int u, int v) { ebuf-&amp;gt; t = v; ebuf-&amp;gt; next = head[u]; head[u] = ebuf ++; }
#define protect(x) { if (x &amp;gt; inf) x = inf; }</description>
    </item>
    
    <item>
      <title>bzoj2466 [中山市选2009]树</title>
      <link>/oi/dbimport_144/</link>
      <pubDate>Wed, 15 Apr 2015 20:30:02 +0000</pubDate>
      
      <guid>/oi/dbimport_144/</guid>
      <description>之前听说是异或高消？好神的感觉。
然后可以树形dp嘛！为啥网上题解这么误导ovo
就是f[u][i][j]表示u这个点有没有亮，有没有被按开关。完了嘛。
无语了辣。</description>
    </item>
    
    <item>
      <title>20150414</title>
      <link>/diary/dbimport_020/</link>
      <pubDate>Tue, 14 Apr 2015 21:06:08 +0000</pubDate>
      
      <guid>/diary/dbimport_020/</guid>
      <description>省上奇怪的集训的day1.
早上讲的东西还是比较能听的.然后我自己非常的naive嘛.听说讲课的就是省选的出题人?然后看着这些可以&amp;quot;把握我的命运&amp;quot;的人,有种奇怪的感觉.
下午随便考了一发试.
第一题想到了dp,但是一直在想平方和存不下啊怎么办啊.然后最后才知道平方都要乘n次干嘛要存下来.
第二题水水的树形dp.
第三题还行的算几.反正就对称一下就好了.中途把线线交写丑了晕.
晚上居然还有题.
第一题第二题看了看不想做,因为感觉第三题比较有趣.可是最后还是只想到O(n)的做法不开心ovo
所以我还是太弱了.马上都要省选了啊怎么办.</description>
    </item>
    
    <item>
      <title>bzoj3944 sum</title>
      <link>/oi/dbimport_218/</link>
      <pubDate>Mon, 13 Apr 2015 23:41:20 +0000</pubDate>
      
      <guid>/oi/dbimport_218/</guid>
      <description>比较神奇的数学题.首先你得听说过一个东西叫Mertens函数.于是你可以找到一篇论文.然后你发现它是英文的.试图理解了很久没有成功.
然后终于有人良心贴出了一个blog.这回懂辣开心ovo
其实就是那一个公式:F(n) = ∑一堆约数 + ∑k=2nF([n/k])
然后发现mu和phi的左边一堆都是可以O(1)算的辣.右边强行记搜可以做到O(n2/3)的辣.
然后手写个hash啥的就能跑得飞快的辣.</description>
    </item>
    
    <item>
      <title>bzoj3944.cc</title>
      <link>/code/dbimport_217/</link>
      <pubDate>Mon, 13 Apr 2015 23:39:34 +0000</pubDate>
      
      <guid>/code/dbimport_217/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
struct node { int v; dint phi, mu; node *next; };
const int maxv = 3000009; const int hmod = 4432457;
int n, tp, pn[maxv], phi[maxv], mu[maxv]; dint sp[maxv], smu[maxv]; bool pr[maxv]; node *head[hmod];
void pre() { memset(pr, 0, sizeof(pr)); memset(head, 0, sizeof(head)); tp = 0; phi[1] = mu[1] = 1; for (int i = 2; i &amp;lt; maxv; ++ i) { if (!</description>
    </item>
    
    <item>
      <title>spoj235.cc</title>
      <link>/code/dbimport_276/</link>
      <pubDate>Mon, 13 Apr 2015 20:46:21 +0000</pubDate>
      
      <guid>/code/dbimport_276/</guid>
      <description>#include #include #include using namespace std;
#define _l (long long int)
const int maxn = 2000009; const int mod = (1 &amp;laquo; 23) * 7 * 17 + 1;
int n, a[maxn], b[maxn], c[maxn];
int readInt(int* a) { static char g[maxn]; scanf(&amp;quot;%s&amp;quot;, g); int l(strlen(g)); for (int i = 0; i &amp;lt; l; ++ i) a[l - i - 1] = g[i] - 48; return l; }
int modPow(int a, int x) { int s(1); for (; x; x &amp;raquo;= 1, a = _l a * a % mod) if (x &amp;amp; 1) s = _l s * a % mod; return s; }</description>
    </item>
    
    <item>
      <title>spoj235 Very Fast Multiplication</title>
      <link>/oi/dbimport_277/</link>
      <pubDate>Mon, 13 Apr 2015 20:46:02 +0000</pubDate>
      
      <guid>/oi/dbimport_277/</guid>
      <description>水水的fft啦.主要是来mark一下数论版fft.
有一个奇妙的东西叫原根.这个玩意要乘(p-1)次才能乘回自己.然后如果(p-1)含有很多很多个2的话,就可以拿来做fft辣.其实就是解决了fft的单位根,不用complex.剩下的照搬好辣.
水ovo.在这个前不着村后不着店的四星酒店里好无语ovo</description>
    </item>
    
    <item>
      <title>20150413</title>
      <link>/diary/dbimport_019/</link>
      <pubDate>Mon, 13 Apr 2015 11:04:45 +0000</pubDate>
      
      <guid>/diary/dbimport_019/</guid>
      <description>不打算再刷题了.省选的时候就让它保持700这个数字吧.突然闲下来感觉好奇怪.
还有一个星期就省选了呢.时间过得好快.至今后悔没有去参加2012年的省选,然后现在是2015年.
想起2013年的时候各种奇怪,叛逆?然后也只是去观摩一下.唉.然后2014年因为数组开小而抱憾.
然后我就高二了.然后就不会再有然后了.
很郁闷为什么总是要最后一次才是正位.为什么年轻的我就必需去中考,去学文化课?好羡慕初中就能来参加训练的学弟.毕竟初中的我是不会线段树的.
不管如何,六年的路走到了将要分叉的地方了.看到高三某逃课君,抛开他使得全教室环境变差不说,其实也蛮那啥的.如果真的退役了,嘴上很倔强,心里真的放得下?真的能狠下那条心去当飞行员?
我不服.唯一的出路是战斗.
来吧,scoi.</description>
    </item>
    
    <item>
      <title>bzoj3549 [ONTAK2010]Tower</title>
      <link>/oi/dbimport_200/</link>
      <pubDate>Sat, 11 Apr 2015 15:08:19 +0000</pubDate>
      
      <guid>/oi/dbimport_200/</guid>
      <description>比较神奇的dp题.其实也不能算dp辣ovo
有一个神奇的事情是,塔的高度与底层的宽度是负相关的.
所以就变成了问塔底最窄的时候塔有多高.
用f[i]来表示用从第i个砖块到第n个砖块搭起来的塔的最窄底层宽度.用s[i]来表示宽度的前缀和,然后得到一个式子:
f[i] = min(s[j-1]) - s[i - 1] (f[j] ≤ s[j - 1] - s[i - 1], j &amp;gt; i)
s是单调的.看上去很像是dp呢.
然后就变成了求s[j - 1] - f[j] ≥ s[i - 1]时的最大的s[j - 1].于是开单调队列搞吧ovo</description>
    </item>
    
    <item>
      <title>bzoj3549.cc</title>
      <link>/code/dbimport_199/</link>
      <pubDate>Sat, 11 Apr 2015 15:06:26 +0000</pubDate>
      
      <guid>/code/dbimport_199/</guid>
      <description>#include #include #include using namespace std;
const int maxn = 100009;
int n, a[maxn], sm[maxn], ans; int f[maxn], g[maxn], q[maxn], hd, tl;
int main() { #ifndef ONLINE_JUDGE //freopen(&amp;quot;.in&amp;quot;, &amp;ldquo;r&amp;rdquo;, stdin); #endif
scanf(&amp;quot;%d&amp;quot;, &amp;amp;n); sm[0] = 0; for (int i = 0; i &amp;lt; n; ++ i) { scanf(&amp;quot;%d&amp;quot;, a + i); sm[i + 1] = sm[i] + a[i]; } hd = 0, tl = 1, q[hd] = n; f[n] = 0, g[n] = 0; for (int i = n - 1; i &amp;gt;= 0; -- i) { while (hd + 1 &amp;lt; tl &amp;amp;&amp;amp; sm[q[hd + 1]] - f[q[hd + 1]] &amp;gt;= sm[i]) ++ hd; f[i] = sm[q[hd]] - sm[i]; g[i] = g[q[hd]] + 1; while (hd &amp;lt; tl &amp;amp;&amp;amp; sm[i] - f[i] &amp;gt;= sm[q[tl - 1]] - f[q[tl - 1]]) -- tl; q[tl ++] = i; } printf(&amp;quot;%d\n&amp;quot;, g[0]); }</description>
    </item>
    
    <item>
      <title>20150410</title>
      <link>/diary/dbimport_018/</link>
      <pubDate>Fri, 10 Apr 2015 22:58:29 +0000</pubDate>
      
      <guid>/diary/dbimport_018/</guid>
      <description>好像是省选前最后一天在学校考试了ovo
第一题构造水.
第二题我以为是出题人丧心病狂卡常数,然后发现我比std多一个log.然后就和朴素一个分了不开心啊.
第三题神搜索ovo
然后不知不觉自己也站到最后一次省选的面前了.这么多年,感觉积累了好多东西,要在接下来的也许是几天也许是几个月里爆发.
当初年少无知的我以及现在虽然不年少但是还是无知的我.站在茫茫的时间轴上不知所措.心里想着远方,却没有找到脚下的路.
最初开始搞oi的时候并没有想过那些功利的东西.只是一种热爱罢了.但是经历了这么多之后,人总是会变的.于是也有了些背水一站的悲壮.其实如果不是为了做自己喜欢的事情,为什么要付出这么些东西?
未来是未知的.也许几天也不能再改变些什么了.要相信世界是科学的.然后淡定地去迎接挑战.
唉,我还是太弱了.</description>
    </item>
    
    <item>
      <title>bzoj3940.cc</title>
      <link>/code/dbimport_215/</link>
      <pubDate>Fri, 10 Apr 2015 22:50:34 +0000</pubDate>
      
      <guid>/code/dbimport_215/</guid>
      <description>#include #include #include using namespace std;
const int maxn = 200009;
int n, tn, tr[maxn][26], ed[maxn], fl[maxn]; int m, pi[maxn], dl[maxn], r[maxn]; char a[maxn], g[maxn];
void trieIns(char* i) { int p(1), l(0); for (; *i; ++ i, ++ l) { int t(*i - 97); if (!tr[p][t]) { tr[p][t] = ++ tn; ed[tn] = 0; memset(tr[tn], 0, sizeof(tr[tn])); } p = tr[p][t]; } ed[p] = l; }
void acaBuild() { static int q[maxn]; int hd(0), tl(1); q[0] = 1; while (hd &amp;lt; tl) { int u(q[hd ++]); for (int i = 0; i &amp;lt; 26; ++ i) if (tr[u][i]) { int v(tr[u][i]), w; for (w = fl[u]; w &amp;amp;&amp;amp; !</description>
    </item>
    
    <item>
      <title>bzoj3940 [Usaco2015 Feb]Censoring</title>
      <link>/oi/dbimport_216/</link>
      <pubDate>Fri, 10 Apr 2015 22:50:06 +0000</pubDate>
      
      <guid>/oi/dbimport_216/</guid>
      <description>自从会了sam,似乎已经不知道acam该怎么写了ovo
这个题就是强行用ac自动机记录匹配到某个位置的时候的状态.然后如果走到一个终态的话就可以强行删掉一段,然后把当前状态变为上一个状态.
最初没有想到有可能会连续删除,于是挂了很久.最后用官网上的数据还是过不了第9个点,然后交bzoj居然过了.好神奇.我猜想是迅雷挂了hhh毕竟usaco的数据用wget根本搞不下来好伤心.
所以我还是太弱ovo</description>
    </item>
    
    <item>
      <title>20150409</title>
      <link>/diary/dbimport_017/</link>
      <pubDate>Thu, 09 Apr 2015 14:51:21 +0000</pubDate>
      
      <guid>/diary/dbimport_017/</guid>
      <description>好奇怪的题ovo他们说难度太低ovo
第一题原来构造这么简单.我还是只会朴素+乱随机ovo遇构造题必出事的节奏啊不爽啊.
第二题居然是这么水的树剖.
第三题正解居然就是朴素ovo然后我乱写了个随机化缩小范围的玩意.如果在非windows下就能过ovo然后发现是windows随机数的范围问题.当时想到了然后想物品的范围是2k肯定没有问题.卧类个擦.
所以我还是太弱啊.马上都要省选了.怎么办啊ovo</description>
    </item>
    
    <item>
      <title>bzoj2216 [Poi2011]Lightning Conductor</title>
      <link>/oi/dbimport_130/</link>
      <pubDate>Thu, 09 Apr 2015 07:40:46 +0000</pubDate>
      
      <guid>/oi/dbimport_130/</guid>
      <description>idy居然会开1d-1d这个坑ovo之前听讲的时候也只是觉得很神奇,没有真正手写过,所以不明觉厉.
这个东西需要实际问题实际分析.总的思路就是利用决策的单调性.
对于这题,设f(x)=sqrt(x-j)+a[j].那么显然它是凸的.然后若干个它还可以拼成一个奇怪的凸壳状的分段函数.然后我们要取每段的极值.怎么有种半平面交的变形的感觉.
然后发现每次插入的函数的j单增,既x单增.于是只需要开一个双端出的队列就好了.然后每次二分一下两个函数的交的x坐标.其它时候可以完全单调性搞定.
然后算的时候用double会方便很多.
似乎很有意思啊hhh</description>
    </item>
    
    <item>
      <title>bzoj2216.cc</title>
      <link>/code/dbimport_129/</link>
      <pubDate>Wed, 08 Apr 2015 22:38:49 +0000</pubDate>
      
      <guid>/code/dbimport_129/</guid>
      <description>#include #include #include #include using namespace std;
const int maxn = 500009;
int n, a[maxn], z[maxn], ans, sa[maxn], sr[maxn]; double sqa[maxn];
void pre(int n) { for (int i = 0, j = 0; j &amp;lt;= n; ++ i) for (; j &amp;lt;= i * i &amp;amp;&amp;amp; j &amp;lt;= n; ++ j) z[j] = i; for (int i = 0; i &amp;lt;= n; ++ i) sqa[i] = sqrt(i); }
inline double fi(int j, int i) { return a[j] + sqa[i - j]; } inline int fii(int j, int i) { return a[j] + z[i - j]; }</description>
    </item>
    
    <item>
      <title>bzoj3887 [Usaco2015 Jan]Grass Cownoisseur</title>
      <link>/oi/dbimport_212/</link>
      <pubDate>Wed, 08 Apr 2015 20:03:05 +0000</pubDate>
      
      <guid>/oi/dbimport_212/</guid>
      <description>明明就是usaco的水题嘛有啥好写的ovo只是想mark一下刚自己想出来的非递归的正常版的tarjan.
这题思路灰常简单.就tarjan缩scc然后在dag上找一下最长路就完了.
然后就是非递归的tarjan.考虑平时用栈建树的dfs序的方法,既把一个点的所有儿子扔进栈再递归.然而这个方法不能直接套进tarjan的dfs.因为它的一个儿子可能会对另一个儿子造成影响,有可能甚至直接改变dfs的顺序.
所以如果更新的时候一个点连出去的点还没有被访问,那么不管它是否已经在栈里,都再把它扔进去一次.这样就保证了访问的顺序.而在再次访问的时候只要判断一下是否已经访问就行了.
然后对于两个更新,首先如果直接low[p]=dfn[p]的话是不需要专门去用dfn来取min的.然后考虑倒着更新.每个点被退visit栈的时候去更新它的父亲就好.因为它的父亲一定还没有出栈.然后如果是只更新不递归那就直接访问.
这样的话空间复杂度会变成O(n+m),不过妈妈再也不用担心我暴栈了.而这个方法也比强行模拟系统栈要方便一些.
开心ovo</description>
    </item>
    
    <item>
      <title>bzoj3887.cc</title>
      <link>/code/dbimport_211/</link>
      <pubDate>Wed, 08 Apr 2015 20:00:17 +0000</pubDate>
      
      <guid>/code/dbimport_211/</guid>
      <description>#include #include #include using namespace std;
struct edge { int t; edge *next; };
const int maxn = 200009; const int maxe = 300009;
int n, m, vis[maxn], tscc, fs[maxn], cs[maxn], f[2][maxn]; int tpo[maxn], ind[maxn]; edge ebuf_arr[maxe], *ebuf(ebuf_arr), *head[maxn], *hg[maxn];
inline void addEdge(edge** head, int u, int v) { ebuf-&amp;gt; t = v; ebuf-&amp;gt; next = head[u]; head[u] = ebuf ++; }
void tarjanDFS(int po) { static int stc[maxn], stv[maxn], stj[maxn], fr[maxn], d[maxn]; static int dfb[maxn], low[maxn]; int tst(1), dfn(0), tsv(0), tsj(0); vis[stc[tst] = po] = 1; fr[po] = 0; d[po] = 1; while (tst) { int p(stc[tst &amp;ndash;]); if (dfb[p]) continue; for (; tsv &amp;amp;&amp;amp; d[stv[tsv]] &amp;gt;= d[p]; &amp;ndash; tsv) { int q(stv[tsv]); low[fr[q]] = min(low[fr[q]], low[q]); if (dfb[q] == low[q]) { cs[++ tscc] = 0; do { ++ cs[tscc]; fs[stj[tsj]] = tscc; vis[stj[tsj]] = 2; } while (stj[tsj &amp;ndash;] !</description>
    </item>
    
    <item>
      <title>20150408</title>
      <link>/diary/dbimport_016/</link>
      <pubDate>Wed, 08 Apr 2015 15:17:57 +0000</pubDate>
      
      <guid>/diary/dbimport_016/</guid>
      <description>成功被吊打.
花了五个小时去写第三题.然后证明是我太弱了.
第一题知道可以写.计划花2小时写第三题2小时写第一题的.晕啊ovo
第二题太神了ovo
第三题ovo正解用上了平面图的性质.然而我没有想到怎么正确地利用这个性质.于是只好去写lct+ett.其实是最后30分钟才想到ett的于是成功地没有写出来.郁闷ing
所以我太弱啦.</description>
    </item>
    
    <item>
      <title>20150407</title>
      <link>/diary/dbimport_015/</link>
      <pubDate>Tue, 07 Apr 2015 16:50:08 +0000</pubDate>
      
      <guid>/diary/dbimport_015/</guid>
      <description>听说比一个月之前的策爷高ovo感觉今天什么奇怪的东西也没用啊.
第一题kd-tree居然是正解.我还以为会被卡ovo
第二题差不多想到了直线的交,但是没有想到三维空间去,于是觉得此题不可做然后只好最大团了.然后我的最大团又不是mhy那种优越的最大团ovo
第三题想了一会想出了正解感觉比较trick啊ovo
然后配cena的时候装了dev搞忘配到cena里了.幸好后来去看了一下,不然就身败名裂了ovo
所以我还是太弱.</description>
    </item>
    
    <item>
      <title>bzoj1211.py</title>
      <link>/code/dbimport_120/</link>
      <pubDate>Mon, 06 Apr 2015 22:20:53 +0000</pubDate>
      
      <guid>/code/dbimport_120/</guid>
      <description>n = int(raw_input()); gl = raw_input().split(&amp;rsquo; &amp;lsquo;); a = []; a.append(0); s = 0; iz = 0; for i in range(0, n): a.append(int(gl[i]) - 1); s = s + a[i + 1]; if (a[i + 1] &amp;lt; 0): iz = 1; if (n == 1): if (a[1] == -1): print 1; else: print 0; elif (s != n - 2 or iz): print 0; else: fac = []; fac.append(1); for i in range(1, n + 1): fac.</description>
    </item>
    
    <item>
      <title>bzoj1211 [HNOI2004]树的计数</title>
      <link>/oi/dbimport_119/</link>
      <pubDate>Mon, 06 Apr 2015 22:20:35 +0000</pubDate>
      
      <guid>/oi/dbimport_119/</guid>
      <description>网没救啦.然后发现看电影居然看得无聊了.于是去愉快地刷题了ovo
来复习一下一个叫prufer序列的东西.它是用来做生成树计数的.考虑一棵有标号的树,每次把叶子中编号最大的一个节点的唯一一条边的另一边扔进序列尾部,然后把它扯了,直到只剩俩点.然后发现这个序列对于一棵树是唯一的,且一个序列对应唯一的树.且这个序列的取值全都是1到n的数,无相互限制.这也是为啥完全图的生成树个数是nn-2.
然后这个题是给定度数嘛,于是就是对于每个点要求在prufer序列中出现次数一定.那也很好做的啦.
然后要注意的是有一堆无解的情况要先判断一下.然后听说写c++要小心暴long long.我强行python无压力啦ovo</description>
    </item>
    
    <item>
      <title>bzoj3163.cc</title>
      <link>/code/dbimport_177/</link>
      <pubDate>Mon, 06 Apr 2015 21:08:41 +0000</pubDate>
      
      <guid>/code/dbimport_177/</guid>
      <description>#include #include #include #include using namespace std;
struct doll { int w, v, e; inline void read() { scanf(&amp;quot;%d%d%d&amp;quot;, &amp;amp;w, &amp;amp;v, &amp;amp;e); } };
const int maxn = 1009; const int tv = 1000;
int n, q, bsz, fa[maxn][maxn], fr[maxn][maxn], f[maxn][maxn]; doll d[maxn];
void sglDP(int* f, doll d) { int e(d. e); for (int i = 1; i &amp;lt;= e; i &amp;laquo;= 1) { e -= i; for (int j = tv; j &amp;gt;= i * d.</description>
    </item>
    
    <item>
      <title>bzoj3163 [Heoi2013]Eden的新背包问题</title>
      <link>/oi/dbimport_178/</link>
      <pubDate>Mon, 06 Apr 2015 21:08:25 +0000</pubDate>
      
      <guid>/oi/dbimport_178/</guid>
      <description>似乎是去年省选集训的时候见过啊ovo还记得当年因为把背包写错了所以被唱歌了ovo
比较有意思的题.这个题询问数是骗人的ovo其实是预处理然后O(1)询问.
把如果强行预处理的话时间是O(n3)的.于是考虑一些奇怪的黑暗.把物品强行分块.对于每一个块,可以知道它左边的总答案,右边的总答案.这个是可以O(n2)的.(二进制背包的log就忽略了)然后把左边和右边合并一下,这个是平方的.然后对于块内的每个物品,把其它的物品拿来强行跑一遍背包,这个对于一个物品的复杂度是O(n1.5)的.于是就奇妙地少了O(n0.5)的复杂度.然后就可过了ovo
我当年是怎么想到的ovo还是我当年黑暗过去了ovo</description>
    </item>
    
    <item>
      <title>bzoj2251 [2010Beijing Wc]外星联络</title>
      <link>/oi/dbimport_132/</link>
      <pubDate>Mon, 06 Apr 2015 13:51:17 +0000</pubDate>
      
      <guid>/oi/dbimport_132/</guid>
      <description>后缀数组的基础题ovo好久没写sa了还自己yy了半天ovo
为啥感觉每次写sa写得都不一样ovo
求出height数组之后,如果一个位置的height大于上一个位置的,那么高出来的这一截都是新的一个答案.那么直接朴素地去找它出现了多少次就好了.我相信出题人没有办法构造数据把我卡到三方.
所以各种题都要再复习一下ovo</description>
    </item>
    
    <item>
      <title>bzoj2251.cc</title>
      <link>/code/dbimport_131/</link>
      <pubDate>Mon, 06 Apr 2015 13:50:59 +0000</pubDate>
      
      <guid>/code/dbimport_131/</guid>
      <description>#include #include #include using namespace std;
const int maxn = 3009;
int n, a[maxn], sa[maxn], rk[maxn], hi[maxn], ho[maxn]; char g[maxn];
inline bool equStr(int a, int b, int l) { if (rk[a] &amp;gt; rk[b]) return 0; else if (a + l &amp;gt;= n &amp;amp;&amp;amp; b + l &amp;gt;= n) return 1; else if (a + l &amp;gt;= n || b + l &amp;gt;= n) return 0; else return rk[a + l] == rk[b + l]; }</description>
    </item>
    
    <item>
      <title>bzoj3611.cc</title>
      <link>/code/dbimport_203/</link>
      <pubDate>Mon, 06 Apr 2015 11:17:58 +0000</pubDate>
      
      <guid>/code/dbimport_203/</guid>
      <description>#include #include #include #include using namespace std;
const int buf_len = 4567; char buf[buf_len], *bufb(buf), *bufe(bufb + 1); #define readBuf() { if (++ bufb == bufe) bufe = (bufb = buf) + fread(buf, 1, sizeof(buf), stdin); } #define readInt(x) { register int s(0); do { readBuf(); } while (!isdigit(*bufb)); do { s = s * 10 + *bufb - 48; readBuf(); } while (isdigit(*bufb)); x = s; }
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)</description>
    </item>
    
    <item>
      <title>bzoj3611 [Heoi2014]大工程</title>
      <link>/oi/dbimport_204/</link>
      <pubDate>Mon, 06 Apr 2015 11:17:41 +0000</pubDate>
      
      <guid>/oi/dbimport_204/</guid>
      <description>继续填idy的坑ovo
这个题就是比sdoi那个题要麻烦一些.于是我决定把虚树建成真正的树来跑dp.然后这个树形dp似乎没啥麻烦的东西.就是给你一棵有关键点的树求所有点对的距离和,距离min和max.
常数又被吊打ovo无语喽.</description>
    </item>
    
    <item>
      <title>bzoj2286 [Sdoi2011]消耗战</title>
      <link>/oi/dbimport_134/</link>
      <pubDate>Mon, 06 Apr 2015 10:11:26 +0000</pubDate>
      
      <guid>/oi/dbimport_134/</guid>
      <description>idy又开坑辣.居然开的是虚树.
然后发现我好像还是不会ovo我太弱了ovo而且idy自带常数优化+代码长度优化根本打不过ovo
这个题算是相对比较容易的虚树吧.强行模拟一遍缩掉所有没有用的边之后的dfs就好了.中间要讨论一下几个点的祖先关系.yy起来还比较清晰.
然后似乎就没有啥要说的了ovo
Upd:早上起来脑洞一开发现似乎不需要讨论当前的点已经在栈里的情况啊ovo</description>
    </item>
    
    <item>
      <title>bzoj2286.cc</title>
      <link>/code/dbimport_133/</link>
      <pubDate>Sun, 05 Apr 2015 22:17:54 +0000</pubDate>
      
      <guid>/code/dbimport_133/</guid>
      <description>#include #include #include using namespace std;
struct edge { int t, v; edge *next; };
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
const int maxn = 250009; const int maxl = 19; const int inf = 0x3f3f3f3f; const dint dinf = 0x3f3f3f3f3f3f3f3fll;
int n, m; int d[maxn], dfb[maxn], dfe[maxn], dfo[maxn]; int ut[maxn][maxl], uv[maxn][maxl]; edge ebuf_arr[maxn &amp;laquo; 1], *ebuf(ebuf_arr), *head[maxn];</description>
    </item>
    
    <item>
      <title>bzoj3218 a &#43; b problem</title>
      <link>/oi/dbimport_180/</link>
      <pubDate>Sun, 05 Apr 2015 22:08:21 +0000</pubDate>
      
      <guid>/oi/dbimport_180/</guid>
      <description>gui vfk.
在hdsdfz听讲过的题.
可持久化seg tree优化建边.好像一句话就能说清楚啊.
然后证明了我的网络流的姿势严重不科学ovo
然后bzoj上样例居然是图片ovo于是附上手打的样例ovo
10 0 1 7 3 9 2 7 4 0 9 10 5 1 0 4 2 10 2 7 9 1 5 7 2 6 3 5 3 6 2 6 6 4 1 8 1 6 1 6 0 6 5 2 2 5 0 9 3 5 1 3 0 2 5 5 6 7 1 1 2 </description>
    </item>
    
    <item>
      <title>bzoj3218.cc</title>
      <link>/code/dbimport_179/</link>
      <pubDate>Sun, 05 Apr 2015 21:06:28 +0000</pubDate>
      
      <guid>/code/dbimport_179/</guid>
      <description>#include #include #include using namespace std;
struct seg { int id; seg *ls, *rs; }; struct block { int b, w, p, l, r, a; int lid, rid, mid; inline void read() { scanf(&amp;quot;%d%d%d%d%d%d&amp;quot;, &amp;amp;a, &amp;amp;b, &amp;amp;w, &amp;amp;l, &amp;amp;r, &amp;amp;p); } }; struct edge { int t, c; edge *next, *rv; };
const int maxn = 5009; const int maxnd = 90009; const int maxe = 400009; const int inf = 0x3f3f3f3f;</description>
    </item>
    
    <item>
      <title>bzoj2896 桥</title>
      <link>/oi/dbimport_169/</link>
      <pubDate>Sun, 05 Apr 2015 14:16:04 +0000</pubDate>
      
      <guid>/oi/dbimport_169/</guid>
      <description>有点像xyz在wc的时候讲的动态图连通性问题.不过这个看上去要水些啊.
考虑建一棵生成树,那么所有剩余的边覆盖了的边就不是桥.如果没有被覆盖就是桥.
于是这个题可以倒过来,支持加边和查询两点间没有被覆盖的边数.
似乎挺水.
完了.</description>
    </item>
    
    <item>
      <title>bzoj2896.cc</title>
      <link>/code/dbimport_168/</link>
      <pubDate>Sun, 05 Apr 2015 14:15:48 +0000</pubDate>
      
      <guid>/code/dbimport_168/</guid>
      <description>#include #include #include #include using namespace std;
typedef pair &amp;lt;int, int&amp;gt; epr; typedef set erbt;
struct seg { int s, z, l, r; seg *ls, *rs; }; struct edge { int t; edge *next; }; struct oper { int t, u, v, s; };
const int maxn = 30009; const int maxq = 40009; const int maxe = 100009;
int n, m, q, r[maxn]; int fa[maxn], d[maxn], sz[maxn], tc, fc[maxn], ch[maxn], cl[maxn]; seg sbuf_arr[maxn &amp;laquo; 2], *sbuf(sbuf_arr), *rt[maxn]; oper o[maxq]; erbt re; edge ebuf_arr[maxn &amp;laquo; 1], *ebuf(ebuf_arr), *head[maxn];</description>
    </item>
    
    <item>
      <title>20150404</title>
      <link>/diary/dbimport_014/</link>
      <pubDate>Sat, 04 Apr 2015 22:26:58 +0000</pubDate>
      
      <guid>/diary/dbimport_014/</guid>
      <description>被虐暴了.看来我还是太年轻.
去年的uestc校赛过了3道,今年过了4道ovo虽然很挫.
a题水水的虽然还是写错了几次还因为数据出错坑了几次.
b题随机水过去了.
c题最开始想错了,然后就放弃了.其实还能做.
d题0阶aha.
e题鹰蛋么.不过看到期望题之后就不想再想了.知道是dp,不过最后没有推对.
f题数据结构.最初都想到点分了,但是被队友坑了去想线段树,于是就再见了.其实点分+dfs序挺好写的.浪费了诶.
g题好神.
h题常数优化老久水过去了.
i题算几.队友写到结束没有成功.
j题后缀数组构造.其实都想到一半了.然后就没有再想下去了.
所以我还是太弱了啊怎么办啊.</description>
    </item>
    
    <item>
      <title>bzoj2182.cc</title>
      <link>/code/dbimport_127/</link>
      <pubDate>Fri, 03 Apr 2015 20:35:29 +0000</pubDate>
      
      <guid>/code/dbimport_127/</guid>
      <description>#include #include #include #include using namespace std;
const int buf_len = 4567; char buf[buf_len], *bufb(buf), *bufe(buf + 1); #define readBuf() { if (++ bufb == bufe) bufe = (bufb = buf) + fread(buf, 1, sizeof(buf), stdin); } #define readInt(x) { register int s(0); do { readBuf(); } while (!isdigit(*bufb)); do { s = s * 10 + *bufb - 48; readBuf(); } while (isdigit(*bufb)); x = s; }
const int maxn = 209; const int inf = 0x3f3f3f3f;</description>
    </item>
    
    <item>
      <title>bzoj2182 [Spoj1479]The GbAaY Kingdom最小直径生成树</title>
      <link>/oi/dbimport_128/</link>
      <pubDate>Fri, 03 Apr 2015 20:34:55 +0000</pubDate>
      
      <guid>/oi/dbimport_128/</guid>
      <description>下午写的东西被奇妙地吞掉了ovo
最小直径生成树,一定不要用sort,否则会tle.
首先考虑一个绝对中心的概念.既在生成树上它是所有直径的严格中心.它有可能在点上,也有可能在边上.
于是我们枚举边,试图让这个绝对中心在这条边上.那么每个点都选择到这条边的最短路树来生成.如果两个端点的最长链的差距不是很大,那么就有可能在这条边上找到最小直径生成树的绝对中心.
考虑绝对中心对一个端点的距离,会对每个点形成一个峰形的函数.要找的答案就在相邻两个峰之间.于是可以利用两边直线k相同,把b排序之后直接做.总复杂度O(n3).
然后如果每个边强行排序只会多个log,但是会tle.</description>
    </item>
    
    <item>
      <title>20150403</title>
      <link>/diary/dbimport_013/</link>
      <pubDate>Fri, 03 Apr 2015 12:44:27 +0000</pubDate>
      
      <guid>/diary/dbimport_013/</guid>
      <description>这么早就开始写总结了ovo
其实已经玩了一个上午了.写完是9点的事.
感觉今天题比较顺手,于是就ak了一发ovo
第一题似乎是做过,虽然我不记得了.水水的最小割模型.差点就忘了处理0和9的情况.幸好最后检查的时候发现了.
第二题似乎是我当年想过的费用流建边优化啊,开心ing.于是就敲上去了.于是就过了.然后发现yjq居然写的是segtree优化dp.好强.
第三题思考了一下,发现转移可以变成旋转45度的最长上升子序yeah.
所以我还是太弱了.</description>
    </item>
    
    <item>
      <title>bzoj3238.cc</title>
      <link>/code/dbimport_183/</link>
      <pubDate>Fri, 03 Apr 2015 10:39:48 +0000</pubDate>
      
      <guid>/code/dbimport_183/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
struct node { int l, i, ri; node *tr[26], *pr; node() { ri = l = 0; memset(tr, 0, sizeof(tr)); } }; struct edge { int t; edge *next; };
const int maxn = 1000009;
char a[maxn]; int n, ni, f[maxn], sz[maxn], d[maxn]; dint ans; edge ebuf_arr[maxn], *ebuf(ebuf_arr), *head[maxn]; node nbuf_arr[maxn], *nbuf(nbuf_arr), *l, *srt, *scur;</description>
    </item>
    
    <item>
      <title>bzoj3238 [Ahoi2013]差异</title>
      <link>/oi/dbimport_184/</link>
      <pubDate>Fri, 03 Apr 2015 10:39:33 +0000</pubDate>
      
      <guid>/oi/dbimport_184/</guid>
      <description>考试的时候do big die去刷bzoj.大概下午会hug zero.
sam的第二题.其实这个玩意是应该用sa做的,不过现在我觉得sa没有sam简单.虽然sam的构造和性质还是一团大雾.
这个题可以做出原串的后缀树,然后在上面dp一下.每个点对答案的贡献为任意两个不在同一子树的终态对数*深度.
然后倒过来建sam,它的parent树就是原串的后缀树.虽然我还没有成功理解这个东西.
然后坑了一会的一件事情是新建的nq节点的right集合为空.因为它只是一个扩展点,但是不是一个接受态ovo
我还是太弱啊怎么办.</description>
    </item>
    
    <item>
      <title>20150402</title>
      <link>/diary/dbimport_012/</link>
      <pubDate>Thu, 02 Apr 2015 22:43:40 +0000</pubDate>
      
      <guid>/diary/dbimport_012/</guid>
      <description>上午讲数据结构ovo感觉不少东西都比较科普向.比如&amp;quot;我们来看看怎么用fft匹配01串&amp;quot;.
然后讲的字符串题还比较能思考.后缀自动机啥的学得还是不够扎实啊.
下午考试ovo
第一题感觉就是数颜色搬到了树上再卡一下空间嘛.于是树状数组套sbt就上了.于是就被卡常数只有40了.就多了那么几百毫秒怎么也优化不下来啊.趴了.然后正解要利用树的特殊性来做到O(n*logn).非常ovo
第二题shen me gui.做法差不多想到了不过还是没有勇气去写单调队列.
第三题std写慢了吧.然后还把一堆写朴素的家伙都放过去了.严重地不爽.然后反正我分块我无压力ovo
所以我还是太弱了啊.</description>
    </item>
    
    <item>
      <title>bzoj3772.cc</title>
      <link>/code/dbimport_205/</link>
      <pubDate>Wed, 01 Apr 2015 21:50:21 +0000</pubDate>
      
      <guid>/code/dbimport_205/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
struct seg { int s; seg *ch[2]; }; struct edge { int t; edge *next; }; struct path { int u, v; inline void read() { scanf(&amp;quot;%d%d&amp;quot;, &amp;amp;u, &amp;amp;v); } };
const int maxn = 100009; const int maxl = 19;
seg sbuf_arr[maxn * maxl], *sbuf(sbuf_arr), *rt[maxn]; dint su, sd; int n, m, ut[maxn][maxl]; int d[maxn], dfo[maxn], dfb[maxn], dfe[maxn]; edge ebuf_arr[maxn &amp;laquo; 1], *ebuf(ebuf_arr), *head[maxn]; path q[maxn];</description>
    </item>
    
    <item>
      <title>bzoj3772 精神污染</title>
      <link>/oi/dbimport_206/</link>
      <pubDate>Wed, 01 Apr 2015 21:50:09 +0000</pubDate>
      
      <guid>/oi/dbimport_206/</guid>
      <description>idy又开坑辣,虽然是个无聊的无聊题.
考虑每条路径会被哪些路径包含.那条路径的两个端点一定是在条路径的两个端点的子树上.(如果这两个点有祖先关系,那么需要重新makeroot一下)
当然我不是说要用Lct.直接用可持久化线段树在dfs序上把路径存下来就完了.</description>
    </item>
    
    <item>
      <title>bzoj3509.cc</title>
      <link>/code/dbimport_195/</link>
      <pubDate>Wed, 01 Apr 2015 20:01:32 +0000</pubDate>
      
      <guid>/code/dbimport_195/</guid>
      <description>#include #include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
struct cplx { double r, i; cplx() {} cplx(double rx, double ix) { r = rx, i = ix; } }; inline cplx operator +(const cplx&amp;amp; a, const cplx&amp;amp; b) { return cplx(a. r + b. r, a. i + b. i); } inline cplx operator -(const cplx&amp;amp; a, const cplx&amp;amp; b) { return cplx(a.</description>
    </item>
    
    <item>
      <title>bzoj3509 [CodeChef] COUNTARI</title>
      <link>/oi/dbimport_196/</link>
      <pubDate>Wed, 01 Apr 2015 20:01:08 +0000</pubDate>
      
      <guid>/oi/dbimport_196/</guid>
      <description>好难得自己去开坑hhhhh
其实之前看过做法,觉得有点麻烦.于是拖到现在.然后荣登最慢yeah.不知道那些又短又快的东西是怎么来的.肯定和我不是一个写法的啦.
我的做法是把序列每b个分成一块.对于同一块,直接b2求内部有三个点或者两个点的等差三元组的数量.
对于分别在3块的,对每块把两边的所有东西卷积一次来统计.
其实也没啥技术含量ovo</description>
    </item>
    
    <item>
      <title>bzoj2395.cc</title>
      <link>/code/dbimport_137/</link>
      <pubDate>Wed, 01 Apr 2015 16:04:12 +0000</pubDate>
      
      <guid>/code/dbimport_137/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #define _l (long long int)
struct edge { int a, b, va, vb; inline void read() { scanf(&amp;quot;%d%d%d%d&amp;quot;, &amp;amp;a, &amp;amp;b, &amp;amp;va, &amp;amp;vb); } };
struct sptree { int va, vb; sptree() {} sptree(int ao, int bo) { va = ao, vb = bo; } inline dint prd() const { return _l va * vb; } void disp(int x) { printf(&amp;quot;(%d,%d)%c&amp;quot;, va, vb, x); } }; inline bool operator &amp;lt;(const sptree&amp;amp; a, const sptree&amp;amp; b) { return a.</description>
    </item>
    
    <item>
      <title>bzoj2395 [Balkan 2011]Timeismoney</title>
      <link>/oi/dbimport_138/</link>
      <pubDate>Wed, 01 Apr 2015 16:03:54 +0000</pubDate>
      
      <guid>/oi/dbimport_138/</guid>
      <description>谁说最小乘积生成树是取log了ovo题意都不一样好么.
首先这个东西一定在一个像是下凸壳一样的东西上.其实是一个反比例函数的k的最小值.
把x和y的和看作坐标,求在(x0,y0)与(x1,y1)中间的一个点,为了平均分配,要取那个三角形最大,于是可以用叉积弄出一个式子来当作x和y的系数,这样就可以直接kruskal求最小生成树了.
如果求出来的点在这个线段上,那这个区间就不用再找了.否则还得去两边继续递归.
然后最初的左端点和右端点就取x的最小生成树和y的最小生成树就好了.
这个时间复杂度似乎还是没有保证啊.有点像自适应simpson的感觉,虽然这个肯定是精确的.然后跑起来也比较快.有意思.
这个玩意还是比较好写的.虽然中间kruskal把0打成1,看了半天ovo</description>
    </item>
    
    <item>
      <title>20150401</title>
      <link>/diary/dbimport_011/</link>
      <pubDate>Wed, 01 Apr 2015 14:23:06 +0000</pubDate>
      
      <guid>/diary/dbimport_011/</guid>
      <description>说好了今天不去学校的ovo
于是在家里睡到9点半,起来吃饭,看题,帮ant选电脑,写题,出去吃饭ovo时间好紧.
居然是今年jsoi的题.
第一题水水的树形dp啊.其实都不能叫dp,把所有子树排序看一下就完了.
第二题看题面好长好麻烦不写了.于是交了个根据n的范围来wtf的东西.于是被逼唱歌.也只有这有一个字母能形容我的心情ovo.
第三题不就是树化简+无根树哈希么.随便乱写了个东西交上去居然过了ovo
所以我还是太年轻辣.</description>
    </item>
    
    <item>
      <title>20150331 HDSDFZ2015集训总结</title>
      <link>/diary/dbimport_010/</link>
      <pubDate>Wed, 01 Apr 2015 00:24:38 +0000</pubDate>
      
      <guid>/diary/dbimport_010/</guid>
      <description>在飞机上写总结ovo
不知不觉中三月就过去了呢.这是三月最后一天的晚上了诶ovo.来的时候感觉十天会很漫长,然后不知不觉就结束了.这次出来感觉收获比较大.难度比较适中,有时候能看到原题体验一下切题的快感.也有很多时候要耗尽脑细胞去想题,然后还常常听了讲之后才aha过来.当然也有听着听着就开始刮大雾了ovo.
考了六场试吧.有时候考得比较好,有时候也会被虐得很惨.说明我还是不够稳定的.遇到写得比较熟的东西还能写一写得一些分,有时候心情好能过两道题.但是多数时候还得靠骗分和暴力.可是已经有很长一段时间我都一直在试图追求正解,结果导致有时候骗分的技巧也比较拙劣,看上去发挥得并不好.省选的时候题是怎样的谁也说不清楚.所以最近不仅要复习和巩固各种算法,也要思考一下骗分暴力之类的东西该怎么写.
考试的时候纪律比较不好.有时候也会受到身旁同学的影响.有时候还会因此而受到提醒,有意无意见想到更好的idea.我觉得这样不是一种好的情况.所以还是要找一个比较安静的环境.自己在考试的时候也要严格遵守纪律.不管是正式还是非正式,有人监考还是放任自流,都要安静,独立思考.
这回讲课的同学讲得实用性也非常强.因为省选比较近,所以很多都是直接讲题,而没有再去纠结某个专题.他们也带来了一些最近比较流行的新的思路.比如cdq分治扔进线段树,再比如dp的有序与无序.还有dyf讲的积分.虽然比较实用向,但是也提醒了我有些东西是需要不停地用才能一起掌握的.一年半没碰过微积分,所以以前的基础等于白废了.不开心.
这些天也认识了一些sdfz和山东以及其它省份的神犇.发现自己如果放到全国,也并不能算一个厉害的角色.大家学习,刷题都很拼,也很有理想有追求.所以说自己也要坚定道路,并为之不懈努力.
不在的将近两个星期里sc省也发生了不少事,学校也发生了不少事.scoi发生了一些改变.不知道这是怎样一种信号.不过我觉得很适合今天在出租车上广播里的一句话,如果你站在浪尖上,那你就要把握好机会冲上巅峰.这是一个改变的时代.要善于把握变革.
然后家里也考了不少题,有些题还是比较有意思的.还有一些题我感觉我还不会做.所以说我还是有路要走的.另外常在bzoj上看到idy在开坑.还有很多我都没做过的题,填坑也填得比较狼狈.所以说身边就有很多人在默默努力.如果你不前进得更快,你就会被超越.而被超越的结果就是淘汰.世界是残酷的,但是是公平的.
怎么又扯远了.Whatever, scoi在即,退役or继续?It depends on nobody but myself. Fighting.</description>
    </item>
    
    <item>
      <title>bzoj2986 Non-Squarefree Numbers</title>
      <link>/oi/dbimport_175/</link>
      <pubDate>Tue, 31 Mar 2015 19:42:17 +0000</pubDate>
      
      <guid>/oi/dbimport_175/</guid>
      <description>比较好想的dfs容斥，然后二分答案。
就只用dfs不超过sqrt(n)的素数的平方和。</description>
    </item>
    
    <item>
      <title>bzoj2820 yy的gcd</title>
      <link>/oi/dbimport_163/</link>
      <pubDate>Tue, 31 Mar 2015 10:41:02 +0000</pubDate>
      
      <guid>/oi/dbimport_163/</guid>
      <description>idy又开坑辣。
mobius反演题么么哒。强行sqrt(n)的询问。
于是推一下式子。
answer = ∑i∑j1 (gcd(i, j) = 1)
= ∑&amp;lt;sub&amp;gt;p&amp;lt;/sub&amp;gt;∑&amp;lt;sub&amp;gt;g&amp;lt;/sub&amp;gt;u(g) * (n/(p*g)) * (m/(p*g)) 然后把p和g合起来设为v。
h(v) = ∑ u(v) (v = x/p)
然后发现h(v)函数是很好推的。
h(px) = (x % p == 0) ? (u(x)) : (u(x) - h(x))
然后就搞定啦orz.</description>
    </item>
    
    <item>
      <title>bzoj2820.cc</title>
      <link>/code/dbimport_162/</link>
      <pubDate>Tue, 31 Mar 2015 09:42:15 +0000</pubDate>
      
      <guid>/code/dbimport_162/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
const int maxn = 10000009;
int tp, pn[maxn], mu[maxn], h[maxn]; dint sh[maxn]; bool pr[maxn];
void pre() { memset(pr, 0, sizeof(pr)); tp = 0; mu[1] = 1; sh[0] = sh[1] = 0; for (int i = 2; i &amp;lt; maxn; ++ i) { if (!pr[i]) { pn[tp ++] = i; mu[i] = -1; h[i] = 1; } for (int j = 0, v; j &amp;lt; tp &amp;amp;&amp;amp; i * pn[j] &amp;lt; maxn; ++ j) { pr[v = i * pn[j]] = 1; if (i % pn[j] == 0) { mu[v] = 0; h[v] = mu[i]; break; } else { mu[v] = -mu[i]; h[v] = mu[i] - h[i]; } } sh[i] = sh[i - 1] + h[i]; } }</description>
    </item>
    
    <item>
      <title>20150330</title>
      <link>/diary/dbimport_009/</link>
      <pubDate>Mon, 30 Mar 2015 21:04:00 +0000</pubDate>
      
      <guid>/diary/dbimport_009/</guid>
      <description>终于过审核了.好感动啊.
今天考试比较开心吧.一直很膜拜出题人.
第一题想了一会想出了O(n*log2n)的正解,似乎比std还要优一些.然后不开心的是这题居然把朴素放过去了.
第二题被mhy点了一下于是就直接写了插头dp.然后再套个高精度的模板.因为比较有经验所以就调度得比较快.
第三题觉得懒得算了于是乱写了个东西弃疗.然后旁边的mhy因为看了我在写这题所以去写了simpson,结果成了全场唯一有分的还有80分.晕.
下午讲积分.感觉我一年半前学的东西就没有再用过啊.晕.看来以前的东西还是要再去复习一下的.
晚上去了橘子洲.走了好久.感觉蛮好的.然后还坐了地铁,公交.吃了过桥米线.很想找个安静的地方坐坐,消消火,不过感觉总向被什么东西压着,总是要向前去.
于是我还是太年轻喽.明天就可以回家喽.开心ovo</description>
    </item>
    
    <item>
      <title>bzoj3597.cc</title>
      <link>/code/dbimport_201/</link>
      <pubDate>Sun, 29 Mar 2015 21:19:37 +0000</pubDate>
      
      <guid>/code/dbimport_201/</guid>
      <description>#define PROC &amp;ldquo;coconut&amp;rdquo; #include #include #include using namespace std;
struct edge { int t, v; edge *next; };
const int maxn = 509; const int maxe = 6009; const double bseps = 1e-4; const double finf = 1e20;
int n, m, fp[maxn], st, vis[maxn], tvis; edge ebuf_arr[maxe], *ebuf(ebuf_arr), *head[maxn]; double d[maxn];
inline void addEdge(int u, int v, int w) { ebuf-&amp;gt; t = v; ebuf-&amp;gt; v = w; ebuf-&amp;gt; next = head[u]; head[u] = ebuf ++; //	printf(&amp;ldquo;AE %d -&amp;gt; %d of %d\n&amp;rdquo;, u, v, w); }</description>
    </item>
    
    <item>
      <title>bzoj3597 [Scoi2014]方伯伯运椰子</title>
      <link>/oi/dbimport_202/</link>
      <pubDate>Sun, 29 Mar 2015 21:19:17 +0000</pubDate>
      
      <guid>/oi/dbimport_202/</guid>
      <description>去年的省选题.之前知道了是找负环.不过一直感觉好迷是个坑.最近又想了想发现也不是很麻烦.
当年省选的时候完全对比例题无感啊.经过一年之后终于觉悟了一点东西.
考虑一个网络流,每条边的流量上限是inf,只有从源出来的边不是.然后如果进行一次正向增广会使代价增加b+d,如果进行一次逆向增广的话代价会增加a-d,前提是有流量.于是只要二分一个答案,看下存不存在一个负环来增广就好了.
然后一个spfa就迷之拿了bzoj的rank1.好开心.</description>
    </item>
    
    <item>
      <title>bzoj3922.cc</title>
      <link>/code/dbimport_213/</link>
      <pubDate>Sun, 29 Mar 2015 20:32:19 +0000</pubDate>
      
      <guid>/code/dbimport_213/</guid>
      <description>#include #include #include #include using namespace std;
struct seg { int v, l, r; seg *ls, *rs; };
const int maxn = 70009; const int maxb = 23; const int maxseg = maxn * maxb * 3;
int n, m, bv, a[maxn]; seg *br[maxb][maxb], sbuf_arr[maxseg], *sbuf(sbuf_arr);
#define midp(p) ((p-&amp;gt;l+p-&amp;gt;r)&amp;raquo;1) inline seg* sgtBuild(int l, int r) { seg* p(sbuf ++); p-&amp;gt; l = l; p-&amp;gt; r = r; p-&amp;gt; v = 0; if (l + 1 &amp;lt; r) { p-&amp;gt; ls = sgtBuild(l, midp(p)); p-&amp;gt; rs = sgtBuild(midp(p), r); } return p; } inline void sgtChg(seg* p, int po, int vo) { if (p-&amp;gt; l + 1 == p-&amp;gt; r) p-&amp;gt; v += vo; else { if (po &amp;lt; midp(p)) sgtChg(p-&amp;gt; ls, po, vo); else sgtChg(p-&amp;gt; rs, po, vo); p-&amp;gt; v = max(p-&amp;gt; ls-&amp;gt; v, p-&amp;gt; rs-&amp;gt; v); } }</description>
    </item>
    
    <item>
      <title>bzoj3922 Karin的弹幕</title>
      <link>/oi/dbimport_214/</link>
      <pubDate>Sun, 29 Mar 2015 20:31:45 +0000</pubDate>
      
      <guid>/oi/dbimport_214/</guid>
      <description>迷之数据结构.我的想法比较简单,确定一个值b,对所有小于b的k建线段树维护,对大于b的k直接朴素找.
于是时间复杂度算起来比较迷.
试了一下发现b取20的时候能过.虽然还是跑得最慢的一个.无语喽.大概我不是正解.</description>
    </item>
    
    <item>
      <title>bzoj2289.cc</title>
      <link>/code/dbimport_135/</link>
      <pubDate>Sat, 28 Mar 2015 21:48:59 +0000</pubDate>
      
      <guid>/code/dbimport_135/</guid>
      <description>#include #include #include #include using namespace std;
#define dir_l 2 #define dir_r 3
struct circle { double x, y, r; void read() { scanf(&amp;quot;%lf%lf%lf&amp;quot;, &amp;amp;x, &amp;amp;y, &amp;amp;r); } };
typedef pair &amp;lt;double, int&amp;gt; dpr;
inline double sqr(double x) { return x * x; }
const int maxn = 100009; const double finf = 1e23; const double eps = 1e-8;
int n, t; dpr y[maxn * 2]; circle c[maxn];
int checkDir(double x) { int wl(0), wr(0); t = 0; for (int i = 1; i &amp;lt;= n; ++ i) if (c[i].</description>
    </item>
    
    <item>
      <title>bzoj2289 POJ Challenge圆，圆，圆</title>
      <link>/oi/dbimport_136/</link>
      <pubDate>Sat, 28 Mar 2015 21:48:13 +0000</pubDate>
      
      <guid>/oi/dbimport_136/</guid>
      <description>白天讲课讲到的题。感觉比较有意思于是就去写了。然后这也是我超过于教授的题。感觉还是挺有意义的。
之前遇到过这个题。不过没有想出比较靠谱的方法。然后就用黑暗水过了。这回算是来对地方了。
做法比较简单。二分一个xo，看x=xo这条直线上有没有一部分被所有圆覆盖。如果有就ok。没有的话，如果有圆完全在它左或者它右，那么可以确定二分往哪边走或者无解。否则去随便找两个不相交的圆。如果它们在不同侧那就没有解了。在同一侧也可以确定方向。虽然我觉得没解这个地方需要再想想严格的证明。
不过反正填了2个点分之后终于写了道有意思的题，开心ing。
Historical Comments Unknown friend at 2016-01-18T08:27:34 @bzoj2289: “否则去随便找两个不相交的圆。如果它们在不同侧那就没有解了。” QAQ这里是有反例的……！ &amp;mdash;- anonymous
Unknown friend at 2016-01-18T08:27:34 @bzoj2289: “否则去随便找两个不相交的圆。如果它们在不同侧那就没有解了。” QAQ这里是有反例的……！ &amp;mdash;- anonymous
Unknown friend at 2016-01-18T22:40:55 @bzoj2289: 也许是吧= =表示高考解析几何比这玩意好玩多了ovo还有啊匿名是几个意思ovo &amp;mdash;- laekov
Unknown friend at 2016-01-18T22:40:55 @bzoj2289: 也许是吧= =表示高考解析几何比这玩意好玩多了ovo还有啊匿名是几个意思ovo &amp;mdash;- laekov</description>
    </item>
    
    <item>
      <title>bzoj3784.cc</title>
      <link>/code/dbimport_207/</link>
      <pubDate>Fri, 27 Mar 2015 21:33:56 +0000</pubDate>
      
      <guid>/code/dbimport_207/</guid>
      <description>#include #include #include using namespace std;
struct edge { int t, v; edge *next; };
typedef pair &amp;lt;int, int&amp;gt; dpr; struct seg { dpr d; int l, r; seg *ls, *rs; };
struct ptrec { dpr d; int l, r, du; seg *rt; }; inline bool operator &amp;lt;(const ptrec&amp;amp; a, const ptrec&amp;amp; b) { return a. d. first &amp;lt; b. d. first; }
const int maxn = 50009; const int maxl = 17; const int maxbuf = maxn * maxl;</description>
    </item>
    
    <item>
      <title>bzoj3784 树上的路径</title>
      <link>/oi/dbimport_208/</link>
      <pubDate>Fri, 27 Mar 2015 21:33:23 +0000</pubDate>
      
      <guid>/oi/dbimport_208/</guid>
      <description>又是idy开的坑。感觉回去要被他吊打致残。
树分治。最开始想用二分，然后直接去每个分治点上查询。这样的总复杂度是O(n*log3n)的。不过感觉常数比较小而且绝对省代码，只用二分不用数据结构。然后发现要输出所有的边。这个算法要用容斥一样的东西来减，根本搞不定。
于是向mhy学习。使用类似noi那个超级钢琴的思路，每次把最大的一条路径找出来，然后找它的替代品。树分治后，对于每一个树上的团，算出它的dfs序。默认一个点与dfs序在它前面的区间中最深的连边。这样就可以保证不重，也比较好写。然后用堆来维护。堆中一个点需要记录的信息是这个点的答案，线段树的根，左右端点，这个点到分治团的根的距离。然后每次找出一个最大的之后把它的区间再折成两半扔回堆里就好啦。
比较神的做法。感觉我自己是想不出来的。要是考场上遇到还真会出事呢。郁闷ing。</description>
    </item>
    
    <item>
      <title>bzoj2698 染色</title>
      <link>/oi/dbimport_155/</link>
      <pubDate>Fri, 27 Mar 2015 10:26:10 +0000</pubDate>
      
      <guid>/oi/dbimport_155/</guid>
      <description>没有五笔好烦。
无语的期望题。AC第一页最长。
首先用像借教室一样的做法去求每个位置被覆盖了多少次。然后一个下降的序列需要求导再积回来。然后发现要加回来，这个东西是不能积的。于是坑了我好久。
最后期望就是∑1-Pim。其中Pi表示第i个点被任意一个区间覆盖的概率。
水过去啦。</description>
    </item>
    
    <item>
      <title>bzoj2698.cc</title>
      <link>/code/dbimport_154/</link>
      <pubDate>Fri, 27 Mar 2015 10:25:06 +0000</pubDate>
      
      <guid>/code/dbimport_154/</guid>
      <description>#include #include #include #include using namespace std;
typedef long long dint;
const int maxn = 1000009;
int n, m, l, r; dint a[maxn], b[maxn], ss[maxn], sv[maxn], sa[maxn], sr[maxn], tot; double ans;
int main() { #ifndef ONLINE_JUDGE freopen(&amp;ldquo;in.txt&amp;rdquo;, &amp;ldquo;r&amp;rdquo;, stdin); #endif
scanf(&amp;quot;%d%d%d%d&amp;quot;, &amp;amp;n, &amp;amp;m, &amp;amp;l, &amp;amp;r); memset(sv, 0, sizeof(sv)); memset(sa, 0, sizeof(sa)); tot = 0; for (int i = 1; i + l - 1 &amp;lt;= n; ++ i) { int li(i + l - 1), ri(min(n, i + r - 1)); tot += ri - li + 1; sv[i] += ri - li + 1; sv[ri + 1] -= ri - li + 1; if (li &amp;lt; ri) { sa[li + 1] -= 1; sa[ri + 1] += 1; sr[ri + 1] += ri - li; } } a[0] = b[0] = 0; dint ad(0); for (int i = 1; i &amp;lt;= n; ++ i) { ad += sa[i]; a[i] = a[i - 1] + sv[i]; b[i] = b[i - 1] + ad + sr[i]; } for (int i = 1; i &amp;lt;= n; ++ i) a[i] += b[i]; ans = 0; for (int i = 1; i &amp;lt;= n; ++ i) ans += 1.</description>
    </item>
    
    <item>
      <title>bzoj1095 [ZJOI2007]Hide 捉迷藏</title>
      <link>/oi/dbimport_114/</link>
      <pubDate>Thu, 26 Mar 2015 23:36:27 +0000</pubDate>
      
      <guid>/oi/dbimport_114/</guid>
      <description>迷一样的欧拉序列的题。然后似乎只有岛君的题解能看啊233。
其实就是在欧拉序列上，两点u,v之间的距离=(dfb[u], dfe[v]]之间未匹配的括号数（左开右闭）。其中dfb表示左括号的位置，dfe表示右括号的位置。
然后就是写一个线段树去维护了。写得比较丑，把所有数对都记下来了。其实只用记和跟差就行了。然后要强制如果一端是空的那么这个点就不能作为端点。完了。
然后dfs这一步越写越短了，开心hhh。
于是代码巨长还巨丑还巨慢。</description>
    </item>
    
    <item>
      <title>bzoj1095.cc</title>
      <link>/code/dbimport_113/</link>
      <pubDate>Thu, 26 Mar 2015 23:35:55 +0000</pubDate>
      
      <guid>/code/dbimport_113/</guid>
      <description>#include #include #include #include #include using namespace std;
const int buf_len = 4567; char buf[buf_len], *bufb(buf), *bufe(buf + 1); #define readBuf() { if (++ bufb == bufe) bufe = (bufb = buf) + fread(buf, 1, sizeof(buf), stdin); } #define readInt(x) { register int s(0); do { readBuf(); } while (!isdigit(*bufb)); do { s = s * 10 + *bufb - 48; readBuf(); } while (isdigit(*bufb)); x = s; } #define readOpt(x) { do { readBuf(); } while (*bufb !</description>
    </item>
    
    <item>
      <title>20150326</title>
      <link>/diary/dbimport_008/</link>
      <pubDate>Thu, 26 Mar 2015 18:57:48 +0000</pubDate>
      
      <guid>/diary/dbimport_008/</guid>
      <description>考试。然后是膜拜已久的vfk神牛牛牛牛亲自讲课。比较感动。
上午的题是原题大战。的确是。
第一题感觉bzoj上见过，虽然花了一中午也没有找到。然后写了60分。其实100分和60分也差得不多了。只不过想不到嘛。这种做法还是比较通用的。要记下来。
第二题感觉是个数学题啊。推出式子去优化。不过最后也没有能把∑里的n给拿出来。原来正解需要结合原问题去化简。这个嘛，orz烂的感觉。然后一堆式子最后还得用fft去求1~n的所有第二类斯特林数。要用取模的fft。这个东西以前都不会。可以学习一下。
第三题是bzoj上原题啊。虽然还是不会做。然后写的时候有地方没有想对，所以连10分都没有拿到。比较郁闷。正解是一个分很多种情况讨论的贪心。唯一的想法是vfk真的好神。
然后还讲了一道thu集训的文学。发现demi guo早就过了，而且还只有她一个人过了。感觉又orz了。然后过了一会机房的山东同学把她给hack掉了。这个就更orz了。这题讲了之后感觉还是可以一做的吖。
最近发生了一些事情吧。关于sctsc的。据说时间推前了，而且还加上了一段时间的集训。其实也没有什么好抱怨的，因为在这件事情上我没有话语权。hbw倒是显得比较烦躁，感觉好像就是不想退役一样。其实也要有自信吧。要相信付出总是会有回报的。这么年就这样过来了。从noip完开始每一场都是最后一场了。似乎我也没有过机会让它不是。总之觉得这么些年搞OI没有让我后悔过，就已经很好了吧。好多东西都已经预习过了。现在是时候去创造自己的辉煌了。
也看到消息说no4的某wc金牌同学被挖角去了ns。好像因为作风啥的no7的同学一直和ns就走得很远，总有一种淡淡的鄙视的感觉。就算人家去年四块金牌只能引起仇恨。然而我觉得还是应该良性竞争吧。至少不是一种互相敌视的感觉。人总是要有自己的选择的。祝该君在ns愉快。虽然我知道他看不到我些文字的。或者也许这个博客就不会再被人看到。不过无所谓吧。只是一个说说话的地方而已。
所以我还是太年轻了，赶紧去刷题吧。</description>
    </item>
    
    <item>
      <title>20150322</title>
      <link>/diary/dbimport_005/</link>
      <pubDate>Wed, 25 Mar 2015 20:15:38 +0000</pubDate>
      
      <guid>/diary/dbimport_005/</guid>
      <description>来到长沙的第二天。昨天晚上感觉被子没有被晒干？
今天早上先考一发试。开始的时候感觉这个读题复杂度略高啊。然后每个题都是一堆东西套起来，根本不会做。
于是第一题先放一放。于是第二题和第三题可以暴力。赶紧先拿。第三题本来以为要写最小圆覆盖，几何类的模板都打好了然后发现不用写，直接输出就能30。开心。
第二题过了一会发现hbw在swap，于是知道了那些矩阵是出题人的诡计。是可以交换的。于是直接朴素维护就行了。懒得写平衡树了，反正跑得挺快。
然后去写第一题。yy了一会发现可以简单地搞出每个图形。于是敲，改，过。然后发现没有办法找点。于是想了一会想到一个O(n3)的东西。不管了先扔上去。然后发现和起点没有关系，虽然也不会，于是把平方的朴素又扔上去了。然后一看，原来50%的数据是x,y≤1000而不是n,m≤1000。那玩ball啊。不管了交了。
下午看成绩，20+100+30。第一题好像拿得到分的人都不多。感觉还是挺值。虽然也只是一小步。然后后面的找点的做法比较神。等会去敲risk去。第二题被抽上去讲了hhhhhhh。第三题原来有个啥东西可以把期望降下来。然后那个矩阵还有特别的规律，行列式推起来很简单，直接乘还会乘着乘着就变成0。晕。
然后讲的题感觉虽然少但是都很有营养。然后刚过了一道虽然被网络把题解给吞掉了。不知道有没有保存表单这种功能。
据说同学们在南充很厉害orz。毕竟我还是太弱，</description>
    </item>
    
    <item>
      <title>bzoj2806.cc</title>
      <link>/code/dbimport_160/</link>
      <pubDate>Wed, 25 Mar 2015 20:14:03 +0000</pubDate>
      
      <guid>/code/dbimport_160/</guid>
      <description>#include #include #include using namespace std;
#define _l (long long int)
struct node { int l; node *pr, *t[3]; node() { l = 0; pr = 0; memset(t, 0, sizeof(t)); } };
const int maxn = 1100009;
node nbuf_arr[maxn &amp;laquo; 1], *nbuf(nbuf_arr), *srt, *scur; int n, m, f[maxn], ml[maxn]; char a[maxn];
void samIns(int w) { node *np(nbuf ++), *p; np-&amp;gt; l = scur-&amp;gt; l + 1; for (p = scur; p &amp;amp;&amp;amp; !</description>
    </item>
    
    <item>
      <title>bzoj2806 ctsc2012 Cheat</title>
      <link>/oi/dbimport_161/</link>
      <pubDate>Wed, 25 Mar 2015 20:13:37 +0000</pubDate>
      
      <guid>/oi/dbimport_161/</guid>
      <description>我的SAM第一题。按照惯例几乎是照着std抄的OVO。本来以为是要在SAM上DP，后来发现好像是并列的，于是比较开心。
SAM这个东西主要就是用来匹配子串用的。建法详见clj的课件，然后现在我还处于消化状态中。
SAM匹配多个串的话也比较好弄，直接在串末再加一个字符集里没有的元素就好了。
现在假设已经用SAM匹配出了第i个位置往左ml[i]个位置都是可以匹配的，那么可以二分一个答案，然后用单调队列来DP判断。写法比较简单，虽然我急着去写SAM所以这部分也是蒙过去的。
然后网上的2个std就有2种不同的答案还和我不一样。最后还是wd学长的代码靠谱orz。
现在我可以说我是写过SAM的人了哈哈。</description>
    </item>
    
    <item>
      <title>20150325</title>
      <link>/diary/dbimport_007/</link>
      <pubDate>Wed, 25 Mar 2015 18:53:49 +0000</pubDate>
      
      <guid>/diary/dbimport_007/</guid>
      <description>今天考得比较不开心啊。
第一题似乎做过？不敢再写O(nlognsqrt(n))了，想起上回被jcvb怒斥。线段树前几天写过也不难。
第二题似乎也见过？翻了一下原来的代码发现是tarjan然后拓补排序。于是没有想就敲了然后发现环的情况处理错了。晕啊。
第三题直接想到了KM。然后就去写了，然后发现各种bug。打了一堆补丁之后终于能过了，然后常数被卡成和朴素一个分。我还有啥可说的呢。
所以啊，我还是太年轻了。
然后sam继续跪。决定去写一道题。我看有点悬。</description>
    </item>
    
    <item>
      <title>bzoj3221 Codechef FEB13 Obserbing the tree树上询问</title>
      <link>/oi/dbimport_182/</link>
      <pubDate>Mon, 23 Mar 2015 22:08:32 +0000</pubDate>
      
      <guid>/oi/dbimport_182/</guid>
      <description>很早之前就看过的题。一直被数据范围吓到，然后感觉也比较难写所以都没写。后来发现还是挺好的。
就重链dfs序维护一下每个位置的和，然后可持久化一下就完了。然后一个常数优化是如果这个点是在这次修改的时候建的，那么就直接覆盖而不是新建点。然后跑得就比较快了。</description>
    </item>
    
    <item>
      <title>bzoj3221.cc</title>
      <link>/code/dbimport_181/</link>
      <pubDate>Mon, 23 Mar 2015 22:03:37 +0000</pubDate>
      
      <guid>/code/dbimport_181/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
struct edge { int t; edge *next; }; struct seg { dint a, b, s; int t; seg *ls, *rs; }; #define sgt_root 1,n+1 #define midp ((pl+pr)&amp;raquo;1) #define pls pl,midp #define prs midp,pr
const int maxn = 100009;
int n, m, p; int d[maxn], sz[maxn], fa[maxn], tc, fc[maxn], ch[maxn], fs[maxn]; int dfb[maxn], dfe[maxn], dfo[maxn], ci, ti; edge elst[maxn &amp;laquo; 1], *ep(elst), *head[maxn]; seg *rt[0];</description>
    </item>
    
    <item>
      <title>20150323</title>
      <link>/diary/dbimport_006/</link>
      <pubDate>Mon, 23 Mar 2015 18:43:21 +0000</pubDate>
      
      <guid>/diary/dbimport_006/</guid>
      <description>其实前几天已经发现状态不好了吧。不过昨天听了hbw一席话所以还是rank1。今天就暴露了。
考试的时候感觉比较晕，也不想写代码。
第一题想到树形DP，想到链剖，想到几种似乎可以维护的方式。然后又都否掉了。最后听说正解就是我否掉的解法中的一种。
第二题想到了枚举环算树。不过对那个prufer序列并不熟悉，所以根本没有想到正确的东西。然后朴素打表还打错了。
第三题在学军见过啊。不过当时只会指数dp现在也只会指数dp。似乎是一个很神奇的容斥？no save。
所以我太弱了。
每年春天似乎都会遇到这样一段日子，感觉整个人都不太顺。是不是应该想些什么办法去抵抗？我不是一个服输的人啊。嗯。</description>
    </item>
    
    <item>
      <title>bzoj3328 PYXFIB</title>
      <link>/oi/dbimport_190/</link>
      <pubDate>Sun, 22 Mar 2015 21:22:04 +0000</pubDate>
      
      <guid>/oi/dbimport_190/</guid>
      <description>上课讲的神题。构造公式。本来用HTML写了一堆公式的。然后天杀的网就断了要我重新开然后就没了。很想骂人。那就不写了呗，自行翻课件或者yy。</description>
    </item>
    
    <item>
      <title>bzoj3328.cc</title>
      <link>/code/dbimport_189/</link>
      <pubDate>Sun, 22 Mar 2015 21:21:42 +0000</pubDate>
      
      <guid>/code/dbimport_189/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int) #define mInc(a,b) { a += b; if (a &amp;gt;= mod) a -= mod; }
const int maxn = 40009;
dint n; int k, mod;
struct matrix { static const int n = 2; int a[n][n]; matrix() {} void init() { memset(a, 0, sizeof(a)); } void setOne() { memset(a, 0, sizeof(a)); for (int i = 0; i &amp;lt; n; ++ i) a[i][i] = 1; } void operator =(const matrix&amp;amp; b) { memcpy(a, b.</description>
    </item>
    
    <item>
      <title>bzoj2700.cc</title>
      <link>/code/dbimport_156/</link>
      <pubDate>Fri, 20 Mar 2015 22:40:59 +0000</pubDate>
      
      <guid>/code/dbimport_156/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
const int maxn = 1009; const dint inf = 0x3f3f3f3f3f3f3f3fll;
int n, m, ca[maxn], cb[maxn], ta, tb; dint f[maxn][maxn][5];
#define upMin(a,b) { if (a &amp;gt; b) a = b; }
dint dp() { memset(f, 0x3f, sizeof(f)); if (ta) f[1][0][0] = ca[0] * n; if (tb) f[0][1][2] = cb[0] * n; for (int i = 0; i &amp;lt;= ta; ++ i) for (int j = 0; j &amp;lt;= tb; ++ j) if (n - i - j &amp;gt; 0) { int cc(n - i - j); if (f[i][j][0] &amp;lt; inf) { if (i &amp;lt; ta) upMin(f[i + 1][j][1], f[i][j][0] + ca[i] * cc); if (j &amp;lt; tb) upMin(f[i][j + 1][2], f[i][j][0] + cb[j] * cc); } if (f[i][j][1] &amp;lt; inf) { if (j &amp;lt; tb) upMin(f[i][j + 1][2], f[i][j][1] + cb[j] * cc); } if (f[i][j][2] &amp;lt; inf) { if (i &amp;lt; ta) upMin(f[i + 1][j][0], f[i][j][2] + ca[i] * cc); if (j &amp;lt; tb) upMin(f[i][j + 1][3], f[i][j][2] + cb[j] * cc); } if (f[i][j][3] &amp;lt; inf) { if (i &amp;lt; ta) upMin(f[i + 1][j][0], f[i][j][3] + ca[i] * cc); } } dint ans(inf); for (int i = 0; i &amp;lt;= n; ++ i) for (int j = 0; j &amp;lt; 4; ++ j) upMin(ans, f[i][n - i][j]); return ans; }</description>
    </item>
    
    <item>
      <title>bzoj2700 聚会</title>
      <link>/oi/dbimport_157/</link>
      <pubDate>Fri, 20 Mar 2015 22:40:35 +0000</pubDate>
      
      <guid>/oi/dbimport_157/</guid>
      <description>比较基础的dp。不过因为权限的原因好像做的人不多。
首先肯定先泡便宜的茶再泡贵的茶。
然后记一下上一种茶是啥，连续泡了几次。
于是用f[i][j][k][l]表示泡了i个红茶，j个绿茶，上一种茶是k，连续泡了l次的最小花费。转移是O(1)的。然后后两个反正都要手拆开，所以干脆压下来了。
似乎很水的样子。</description>
    </item>
    
    <item>
      <title>bzoj2683.cc</title>
      <link>/code/dbimport_152/</link>
      <pubDate>Fri, 20 Mar 2015 20:26:35 +0000</pubDate>
      
      <guid>/code/dbimport_152/</guid>
      <description>#include #include #include #include using namespace std;
const int max_buf = 4567; char buf[max_buf], *bufb(buf), *bufe(buf + 1); #define readBuf() { if (++ bufb == bufe) bufe = (bufb = buf) + fread(buf, 1, sizeof(buf), stdin); } #define readInt(x) { register int s(0); do { readBuf(); } while (!isdigit(*bufb)); do { s = s * 10 + *bufb - 48; readBuf(); } while (isdigit(*bufb)); x = s; }
struct query { int t, x, y, v; };</description>
    </item>
    
    <item>
      <title>bzoj2683 简单题</title>
      <link>/oi/dbimport_153/</link>
      <pubDate>Fri, 20 Mar 2015 20:26:17 +0000</pubDate>
      
      <guid>/oi/dbimport_153/</guid>
      <description>水水的cdq。久了不写练一下手。然后发现犯了一堆逗错。幸好没过样例不然就do big die了。</description>
    </item>
    
    <item>
      <title>20150319</title>
      <link>/diary/dbimport_004/</link>
      <pubDate>Thu, 19 Mar 2015 23:05:10 +0000</pubDate>
      
      <guid>/diary/dbimport_004/</guid>
      <description>怎么还审不过啊。打击积极性呢这。
再次被虐。
考试的时候总觉得题不可做啊。也许是心态异也？or多年的春季发冬？
第一题一直在想怎么整体算一个数的贡献，就搞忘了去找找一对数的贡献。晕。
第二题写的是三方的dp，然后记搜各种剪枝把随机数据给水过去了。mhy那种交替前移的才是正解。orz。这个题还是最后吃饭之前才发现写得有问题搞出来的。晕死了。
第三题想对了矩阵转移的思路。但是被i≤k的情况烦到了一直没有搞定。最后也没有调出来于是只好交暴力。最后mhy一句话，说answer可以是s[k-1]，秒懂然后就过了。最近做题似乎总欠别人一句话的感觉。
然后下午也没有心情再写题了。于是剩下的半天时间都花去码oj了。我是不是太颓废了。
所以我还是太弱。</description>
    </item>
    
    <item>
      <title>bzoj2400 Spoj839 Optimal Marks</title>
      <link>/oi/dbimport_140/</link>
      <pubDate>Thu, 19 Mar 2015 22:59:07 +0000</pubDate>
      
      <guid>/oi/dbimport_140/</guid>
      <description>多年之前讲过的最小割。
比较好想啦。
把每一位拆开。然后单独跑一遍最小割。各种连边。然后以答案为高位，数字和为低位跑就行了。
好像也没说清楚怎么建图啊。
对于原图中已经确定的点，如果它是1，就从源连过来，否则连向汇。对于每一个未知的点，把所有边建出来。然后再向汇连个1的边来表示它如果选1的话就要产生贡献。然后就差不多了吧。脑补一下。</description>
    </item>
    
    <item>
      <title>bzoj2482 Spoj1557 Can you answer these queries II</title>
      <link>/oi/dbimport_146/</link>
      <pubDate>Thu, 19 Mar 2015 22:58:43 +0000</pubDate>
      
      <guid>/oi/dbimport_146/</guid>
      <description>原来备案还没过。那之前是怎么成功访问的囧。
写了一晚上。教训还是之前那个，写之前要想清楚。写完再去改就很烦。自己yy了很久，虽然最初是听了mhy的一句提醒。好有危机感。
首先这个东西可以离线。之前一直在想在线怎么做然后也觉得没法做。
把询问按右端点排序之后问题就转化成了左端点在一个范围里的时候的最大子段。
然后用一个线段树表示从i到current right的时候的和，这个玩意可以直接区间加。然后再去维护这个东西的历史最大值。于是就变成了每个位置上接了一个add序列，要找它的前缀最大值。那么只需要存两个东西：当前的和以及当前的最大前缀和，就可以合并了。
然后线段树上维护两个add序列，分别是对整个线段的lazy tag of add和max value of son。就可写了。
然后好像跑得很慢啊TT。</description>
    </item>
    
    <item>
      <title>bzoj2482.cc</title>
      <link>/code/dbimport_145/</link>
      <pubDate>Wed, 18 Mar 2015 21:24:25 +0000</pubDate>
      
      <guid>/code/dbimport_145/</guid>
      <description>#include #include #include #include using namespace std;
const int max_buf = 4567; char buf[max_buf], *bufb(buf), *bufe(bufb + 1); #define readBuf() { if (++ bufb == bufe) bufe = (bufb = buf) + fread(buf, 1, sizeof(buf), stdin); } #define readInt(x) { register int s(0); register bool nag(0); do { readBuf(); } while (!isdigit(*bufb) &amp;amp;&amp;amp; *bufb != &amp;lsquo;-&amp;rsquo;); if (*bufb == &amp;lsquo;-&amp;rsquo;) { nag = 1; readBuf(); } do { s = s * 10 + *bufb - 48; readBuf(); } while (isdigit(*bufb)); if (nag) x = -s; else x = s; }</description>
    </item>
    
    <item>
      <title>bzoj2400.cc</title>
      <link>/code/dbimport_139/</link>
      <pubDate>Tue, 17 Mar 2015 18:17:47 +0000</pubDate>
      
      <guid>/code/dbimport_139/</guid>
      <description>#include #include #include using namespace std;
struct edge { int t, c, v; edge *next, *rv; };
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
const int maxn = 509; const int maxm = 2009; const int maxe = 10009; const int inf = 0x3f3f3f3f;
dint ansc, ansv; int n, m, ea[maxm], eb[maxm], v[maxn], st, te; int d[maxm], fp[maxn]; edge *ep, *head[maxn], elst[maxe], *fe[maxn];</description>
    </item>
    
    <item>
      <title>bzoj2986.cc</title>
      <link>/code/dbimport_174/</link>
      <pubDate>Tue, 17 Mar 2015 12:08:41 +0000</pubDate>
      
      <guid>/code/dbimport_174/</guid>
      <description>#include #include #include using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
const int maxp = 300009; const dint maxv = 1e11;
int pn[maxp], tp; bool pr[maxp]; dint qv, x, cnt;
void pre() { memset(pr, 0, sizeof(pr)); tp = 0; for (int i = 2; i &amp;lt; maxp; ++ i) { if (!pr[i]) pn[tp ++] = i; for (int j = 0; j &amp;lt; tp &amp;amp;&amp;amp; i * pn[j] &amp;lt; maxp; ++ j) { pr[i * pn[j]] = 1; if (i % pn[j] == 0) break; } } }</description>
    </item>
    
    <item>
      <title>pineapple.vim</title>
      <link>/code/dbimport_271/</link>
      <pubDate>Tue, 17 Mar 2015 07:49:05 +0000</pubDate>
      
      <guid>/code/dbimport_271/</guid>
      <description>&amp;quot; local syntax file - set colors on a per-machine basis: &amp;quot; vim: tw=0 ts=4 sw=4 &amp;quot; Vim color file &amp;quot; Maintainer:	laekov laekov@163.com &amp;quot; Last Change:	2015 Feb &amp;quot; hi clear set background=dark syntax reset let g:colors_name=&amp;lsquo;pineapple&amp;rsquo; if has(&amp;lsquo;gui&amp;rsquo;) hi Normal guibg=#000000 guifg=white hi SpecialKey term=bold ctermfg=4 guifg=Blue hi Directory term=bold ctermfg=4 guifg=Blue hi ErrorMsg term=standout cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red hi IncSearch term=reverse cterm=reverse gui=reverse hi Search term=reverse guibg=Blue guifg=White hi MoreMsg term=bold ctermfg=2 gui=bold guifg=White hi ModeMsg term=bold cterm=bold gui=bold hi LineNr term=underline ctermfg=3 guifg=Pink hi Question term=standout ctermfg=2 gui=bold guifg=White hi StatusLine term=bold,reverse cterm=bold,reverse gui=bold guifg=White guibg=Grey35 hi StatusLineNC term=reverse cterm=reverse gui=bold guifg=Grey10 guibg=Gray85 hi VertSplit guibg=Pink guifg=Black hi Title term=bold ctermfg=5 gui=bold guifg=DeepPink3 hi Visual term=reverse cterm=reverse gui=reverse guifg=Grey80 guibg=fg hi VisualNOS term=bold,underline cterm=bold,underline gui=bold,underline hi WarningMsg term=standout ctermfg=1 gui=bold guifg=Red hi WildMenu term=standout ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow hi Folded term=standout ctermfg=4 ctermbg=7 guifg=Black guibg=#e3c1a5 hi FoldColumn term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=Gray80 hi DiffAdd term=bold ctermbg=4 guibg=White hi DiffChange term=bold ctermbg=5 guibg=#edb5cd hi DiffDelete term=bold cterm=bold ctermfg=4 ctermbg=6 gui=bold guifg=LightBlue guibg=#f6e8d0 hi DiffText term=reverse cterm=bold ctermbg=1 gui=bold guibg=#ff8060 hi Cursor guifg=black guibg=white hi lCursor guifg=bg guibg=fg hi NonText guifg=green guibg=#1a1a1a &amp;quot; Colors for syntax highlighting hi Comment term=bold ctermfg=4 guifg=Cyan hi Constant term=underline ctermfg=1 guifg=Yellow hi Special term=bold ctermfg=5 guifg=#ff9c3a hi Identifier term=underline ctermfg=6 guifg=#9999ff hi Statement term=bold ctermfg=3 gui=bold guifg=#09f93f hi PreProc term=underline ctermfg=5 guifg=#888888 hi Type term=underline ctermfg=2 gui=bold guifg=#598ff9 hi Ignore cterm=bold ctermfg=7 guifg=bg hi Error term=reverse cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red hi Todo term=standout ctermfg=0 ctermbg=3 guifg=Blue guibg=Yellow else hi Normal ctermfg=white ctermbg=0 hi ErrorMsg cterm=standout cterm=bold ctermfg=7 ctermbg=1 hi IncSearch cterm=reverse ctermbg=1 ctermfg=7 hi Search cterm=reverse ctermbg=7 ctermfg=blue hi Visual cterm=reverse if $TERM == &amp;lsquo;xterm-256color&amp;rsquo; &amp;quot;	hi NonText cterm=bold ctermbg=232 ctermfg=2 &amp;quot;	hi Type cterm=bold ctermfg=4 &amp;quot;	hi Special cterm=bold ctermfg=172 hi NonText cterm=bold ctermbg=234 ctermfg=2 hi Type cterm=bold ctermfg=4 hi Special cterm=bold ctermfg=1 else hi NonText cterm=bold ctermbg=8 ctermfg=2 hi Type cterm=bold ctermfg=32 hi Special cterm=bold ctermfg=1 endif hi LineNr cterm=bold ctermfg=5 hi ModeMsg cterm=bold hi StatusLine cterm=bold ctermfg=7 ctermbg=8 hi StatusLineNC ctermfg=7 ctermbg=8 hi VertSplit ctermfg=0 ctermbg=5 hi Folded cterm=standout ctermfg=3 ctermbg=4 hi FoldedColumn cterm=standout ctermfg=3 ctermbg=4 &amp;ldquo;For syntax hilighter hi Comment cterm=bold ctermfg=6 hi Constant ctermfg=yellow hi Indentifier cterm=bold ctermfg=2 hi Statement cterm=bold ctermfg=2 hi PreProc cterm=bold ctermfg=darkgrey hi Ignore ctermfg=7 hi Error term=reverse cterm=bold ctermfg=7 ctermbg=1 hi Todo term=standout ctermbg=6 ctermfg=0 endif</description>
    </item>
    
    <item>
      <title>vimrc</title>
      <link>/code/dbimport_281/</link>
      <pubDate>Tue, 17 Mar 2015 07:48:41 +0000</pubDate>
      
      <guid>/code/dbimport_281/</guid>
      <description>set guioptions-=m set guioptions-=T
source $VIMRUNTIME/mswin.vim behave mswin
set nu set softtabstop=4 set tabstop=4 set shiftwidth=4 set nobackup set mouse=a set fdm=marker set guifont=Source\ Code\ Pro\ Semibold:h16 set hlsearch set ruler if has(&amp;lsquo;gui&amp;rsquo;) set columns=1000 set lines=1000 set cursorline endif
map : call Save() map : !mvim -ro % map : !gdb &amp;ndash;quiet %&amp;lt; map : call Compile() map : !bash check.sh map : !./%&amp;lt; &amp;lt;.in map : call Run() map : !</description>
    </item>
    
    <item>
      <title>20150316</title>
      <link>/diary/dbimport_003/</link>
      <pubDate>Mon, 16 Mar 2015 22:52:08 +0000</pubDate>
      
      <guid>/diary/dbimport_003/</guid>
      <description>今天是正儿八经地被吊打了。
早上看了题之后觉得好困。于是一趴就是俩小时。无语。
第一题似乎是奇怪的数论？二次剩余？然后发现好像不是baby-step-gaint-step的题。然后就不会了。然后还错误地以为只有两个解，于是写个常数优化的暴力就交上去了。
第二题感觉是个数位dp？依然不会。于是30分暴力。比较厉害的是有人用比较快的匹配方式拿了50分。
第三题其实是个简单的线段树的。然后我就想复杂了。我认为用线段树下放标记是会变成O(n)单次的。于是没敢写。于是写了个分块+splay。调度到最后一分钟无果。晕。知道正解之后眼泪掉下来。
下午讨论完就在改oj，然后就回去上班会了，也没有空继续调题。
倒是把oj的页宽终于调对了。然后也把代码高亮搞上了。于是就移植到这来了。什么时候才能过审核啊TT。
今天晚上要早些睡。不能再搞今天这种飞机了。</description>
    </item>
    
    <item>
      <title>hdu5189.cc</title>
      <link>/code/dbimport_251/</link>
      <pubDate>Mon, 16 Mar 2015 22:39:43 +0000</pubDate>
      
      <guid>/code/dbimport_251/</guid>
      <description>#include #include #include #include using namespace std;
typedef pair &amp;lt;double, int&amp;gt; dpr;
const int maxn = 30009; const int maxl = 15; const int max_buf = maxn * maxl * 2; const double eps = 1e-7; const double finf = 1e20;
int ibuf_arr[max_buf], *ibuf; double fbuf_arr[max_buf], *fbuf;
struct edge { int t; edge *next; };
struct line { double k, b; inline double xCross(const line&amp;amp; a) { return (a. b - b) / (k - a.</description>
    </item>
    
    <item>
      <title>hdu5189 zhx&#39;s tree</title>
      <link>/oi/dbimport_252/</link>
      <pubDate>Mon, 16 Mar 2015 22:35:14 +0000</pubDate>
      
      <guid>/oi/dbimport_252/</guid>
      <description>自己出的题还要写题解。
就是化成可以二分的形式，然后发现是找凸壳上x=x0的时候的最大值的和，看它是否大于0。
于是就写呗。据说很难写。我觉得写起来还行啊。
其实主要是为了测试系统用的。</description>
    </item>
    
    <item>
      <title>bzoj3052.cc</title>
      <link>/code/dbimport_176/</link>
      <pubDate>Mon, 16 Mar 2015 21:28:03 +0000</pubDate>
      
      <guid>/code/dbimport_176/</guid>
      <description>#include #include #include #include using namespace std;
const int maxn = 100009; const int maxl = 19;
typedef struct node { int t; node *next; } edge; node nlst[maxn], *np(nlst); struct chain { int sz; node *hd, *tl; chain() { hd = tl = 0; sz = 0; } inline void clear() { hd = tl = 0; sz = 0; } inline void push(int x) { np-&amp;gt; t = x; np-&amp;gt; next = 0; if (sz) { tl-&amp;gt; next = np; tl = np; } else { hd = np; tl = np; } ++ np; ++ sz; } inline void merge(chain a) { sz += a.</description>
    </item>
    
    <item>
      <title>20150314 BC33</title>
      <link>/diary/i11rimport_000/</link>
      <pubDate>Fri, 13 Mar 2015 22:34:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_000/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 这回我是出题人。第一次出给这么多人做。&amp;lt;/p&amp;gt; &amp;nbsp;
好像是一个很有意思的故事。我猜看到的人会喷死我。不过反正已经身败名裂了。大概我能作为bc史上最逗逼的出题人被记录下来了。
&amp;nbsp;
还是记下来这个悲伤的故事吧。也许未来某天还可以愉快地回忆一下。
&amp;nbsp;
要从去年12月强行退役开始说。当时觉得生活太无聊了于是yy了四道题去找bestcoder。当时的四道题分别是高精加，现在的第三题数据弱化版，一道灭绝树的裸题，一道动态dfs序。然后审了一下说我题太难了。于是把灭绝树扔了把第三题换成第二题，把第二题改成单峰序列这个坑题。然后听说可以出数据了。
退役的日子，时间也不多，于是拖到wc之前才在宾馆里把数据出出来了。发过去了。然后让我等一个月。
&amp;nbsp;
于是就等到开学了。周二晚上快睡觉的时候，qq上发来消息说，“下周用你的题”。于是我就被拉进了一个验题组。
&amp;nbsp;
有人对我说：1001高精，即使b进制也可以强行用java水的。于是开始郁闷了。因为早上要考试所以比他们都睡得早，当然比平时睡得晚很多。比较开心的是某君说了一句“高中生的数据结构都好强”。
&amp;nbsp;
第二天早上起来，发现他们说1004在bzoj上有原题，我还是它的弱化版。那题我都没仔细看完过题啊- -b。不开心了。那既然是原题就得换。于是与某队友一起yy良久出了一道d。后来事实证明这是个悲剧。下午把题给验题组看，说是可以。于是去写std，造数据，不亦乐乎。最后发现std因为复杂度太高，所以得把数据出弱，会不会给暴力？不管嘛。扔hdoj服务器上好像还挺快的样子。然后就因为精度误差对拍出各种错。好郁闷。然后想起还有一套给高一的题？熬夜把数据造了。
&amp;nbsp;
第三天早上起来，看到有人说第三题数据范围可以加到30，用分两半的方法。想想的确可以。于是就去写了个分两半的东西。然后悲伤地发现已经搞忘之前的datamaker的参数是怎么设计的了。于是随便传了几个参数进去，发现能造出无解的数据。那就这样呗。然后发现第一题可以改一改让高精板废掉。于是就去改了呗。然后晚上的时候第三题又挑出bug了。用c++能过，而用g++怎么都是wa。去找了个cena的g++之后发现还真wa了。然后觉得大概那个方法是错的吧。于是先把数据范围改回16好喽。又是十二点。
&amp;nbsp;
第四天早上考试脑子都不清醒了。犯了一堆逗逼错自坑110分。感觉不太好。下午的时候看到有人批斗了我的1003，原来是我排序的关键字搞错了。又改回来吧。然后又有人提醒我1004可以用分数。赶紧改。晚上感觉好累。去跑了3000之后好了一些。
&amp;nbsp;
第五天也就是今天了。怎么感觉像是审判一样。早上很晚才起。然后就发现有人又告诉我1004的精度还是不够。然后提出可以换他的1004。决定任性一把，自立deadline。最后提出的解决方案是提高std的精度，同时把数据范围从1e6降到1e3。拍了上万组之后觉得无误了。虽然最后还是徒劳。
&amp;nbsp;
下午的时候传来消息说给高一出的数据里三道有两道有问题。不是个好兆头啊。
&amp;nbsp;
晚上比赛前怎么觉得比做题还紧张。从开始到等来第一个submission的五分钟感觉是我人生中最慢的五分钟了。
&amp;nbsp;
还好1001有人过了。然后1002有人过了。至少这两个题是没有事了。（其实有）然后发现1003怎么前几次都在wa？看看怎么都写的dfs！？然后居然有dfs就过了。郁闷ing。
&amp;nbsp;
然后另一项工作是答疑。有人说我中文第二题到底是两个都要满足还是只满足一个？根本没看想了一想说只要满足一个。我想成只要是峰或者谷就行了。然后还顺便发了一发通知。几分钟过后才意识过来发错了赶紧改。据说这一下坑了很多人。
&amp;nbsp;
然后就渐渐有人过题了。感觉1003数据给水了啊。好像还真是水。看来没有成功理解当时写的datamaker。
&amp;nbsp;
直到结束也没有人交最后一题。虽然听zhx说有人在写。
&amp;nbsp;
然后，code time结束。hack开始。然后服务器就崩了。之后的20多分钟没有成功打开网站。看到不同的群里吐槽颇多。
&amp;nbsp;
然后再打开网页的时候已经完了。好像很惨的样子。
&amp;nbsp;
然后有人开始说数据水了。第二题只有一组1 1，没有成功卡掉忘减1的人。第三题what鬼，暴力随便过。
&amp;nbsp;
好吧是疏忽了。
&amp;nbsp;
所以就身败名裂了呗。
&amp;nbsp;
估计当初想骗些出题费也是无望了。
&amp;nbsp;
估计不久之后出去的时候还会被狂吐槽。
&amp;nbsp;
所以说毕竟我还是太弱了。还是好好刷题去吧。不要天天想着骗钱。</description>
    </item>
    
    <item>
      <title>20150313</title>
      <link>/diary/i11rimport_001/</link>
      <pubDate>Thu, 12 Mar 2015 18:48:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_001/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; &amp;amp;nbsp;今天是强行把270吃成了160。&amp;lt;/p&amp;gt; &amp;nbsp;
第一题，水水的单调性。然后就以为只有小写字母。想想能得20分真是神奇。
&amp;nbsp;
第二题不是个暴搜题嘛。加个最优性剪枝就能过。然后就没有注意到顺子的长度是不小于5而不是等于5。再见。
&amp;nbsp;
第三题满分做法没看懂。自己想出来的dfs能过70分。然后就判素数的时候强行int了。不开心啊。
&amp;nbsp;
所以今天是太粗心了。也许昨天晚上睡眠不足也有关系吧。
&amp;nbsp;
毕竟我太弱了。</description>
    </item>
    
    <item>
      <title>BZOJ3598 [Scoi2014]方伯伯的商场之旅</title>
      <link>/oi/i11rimport_002/</link>
      <pubDate>Wed, 11 Mar 2015 19:16:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_002/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 题目名字好长。&amp;lt;/p&amp;gt; &amp;nbsp;
当年在考场上只会分块打表的题。
&amp;nbsp;
前几天有人讲之后觉得大概可做。而且好像那个方法很优秀。
&amp;nbsp;
于是我难得地去写了一回不用记搜且不记上界的数位dp。感觉这个玩意写出来很短，但是思考和调试的复杂度变高了。我觉得是状态定义变得不明确的原因。也许再补一些题就好了。
&amp;nbsp;
考虑先让所有都合并到最低位，一个基础数位dp。（然后写丑了好久）
&amp;nbsp;
然后考虑如果把一个数字的集合位置从p移动到p+1，设这个数字从低位到高位是a[0]..a[n-1]，那么贡献就是∑a[0..p]-∑a[p+1..n-1]。显然当p从右往左移动的时候它是会先负后正的。如果它负的话就减，否则就不玩了。可以发现它们互相不影响。于是对于每一个p单独计算一遍贡献就行了。
&amp;nbsp;
然后还是没有原版跑得快。OTL。
&amp;nbsp;
#define PROC &#34;shop&#34; #include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
const int maxn = 53; const int maxm = 509; const int mb = 253;
dint l, r; int n, m, bs, a[maxn];</description>
    </item>
    
    <item>
      <title>BZOJ1604 [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居</title>
      <link>/oi/i11rimport_003/</link>
      <pubDate>Wed, 11 Mar 2015 14:47:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_003/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 在一道usaco的题上wa了三次。我也是厉害。&amp;lt;/p&amp;gt; &amp;nbsp;
其实好像有简单做法的。不过我是要脑补一下曼哈顿最小生成树。
&amp;nbsp;
对于一个平面图上的点的曼哈顿最小生成树，一定存在一种方案，使得每个点的度数至多为8。也就是说以斜率为0,inf,1,-1的四条直线分出来的八个区域里各有一个点就行了。然后是可以保证的。
&amp;nbsp;
于是就是拿俩树状数组扫四遍就行了。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstdlib&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const int inf = 0x3f3f3f3f;
struct point { int x, y, i; point() { x = -inf, y = -1; } point(int xo, int yo) { x = xo, y = yo; } inline void init(int ix) { scanf(&amp;quot;%d%d&amp;quot;, &amp;amp;x, &amp;amp;y); i = ix; } };
inline bool operator &amp;lt;(const point&amp;amp; a, const point&amp;amp; b) { return (a.</description>
    </item>
    
    <item>
      <title>20150311</title>
      <link>/diary/i11rimport_004/</link>
      <pubDate>Tue, 10 Mar 2015 23:23:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_004/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 继续傻。&amp;lt;/p&amp;gt; &amp;nbsp;
早上考试。因为事情比较多所以有些心不在焉。
&amp;nbsp;
第一题似乎很水？直接线段树搞定。拍都没拍。然后似乎有一堆人理解错题意了。
&amp;nbsp;
第二题是个最大权闭合子图一类的东西。前几天做过小m的作物，所以很快就反应出了建图的方法。
&amp;nbsp;
第三题是个数学题。打了几个小数据在oeis上找到了通项。不过这种行为搞出来的公式显然是不能拿出来用的。其实我也没细看。然后在各种郁闷下想了一会没想对，于是就交了个30分的暴力。
&amp;nbsp;
然后他们都把前两题中的至少一题写挂了。然后他们第三题都比我高。所以我还是太弱了。
&amp;nbsp;
然后花了这一天中剩下的所有时间来出题。
&amp;nbsp;
原来出题是这么郁闷的一件事情，尤其是出的题会涉及到很多的利益关系的时候。
&amp;nbsp;
感觉今天也没做什么。是我的效率太低了吧。</description>
    </item>
    
    <item>
      <title>20150310</title>
      <link>/diary/i11rimport_005/</link>
      <pubDate>Mon, 09 Mar 2015 19:22:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_005/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 今天比较傻嘛。写了个奇怪的东西还自以为能AK。&amp;lt;/p&amp;gt; &amp;nbsp;
第一题明明已经想到正确的结论了，然后又觉得它不太靠谱，于是就没敢写。晕。
&amp;nbsp;
第二题原题，虽然已经快忘了。
&amp;nbsp;
第三题原题。当年不太会，不过现在想一想就会了。然后他们暴力就过了，不开心。反正写线段树保不TLE，虽然考场上幸好随便对拍了一发不然就惨了。
&amp;nbsp;
下午讲课让我觉得有必要去补一些最近scoi的题。
&amp;nbsp;
所以我还是太弱了。</description>
    </item>
    
    <item>
      <title>20150309</title>
      <link>/diary/i11rimport_006/</link>
      <pubDate>Sun, 08 Mar 2015 21:30:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_006/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 晚上在家效率好低啊。什么都不想干。&amp;lt;/p&amp;gt; &amp;nbsp;
于是今天考试还是死得挺惨。
&amp;nbsp;
第一题没想。然后乱写得了20分。居然能得20分。然后正解比较神奇的感觉，虽然抄了一遍但是还是没有很好地理解跳的那一步。
&amp;nbsp;
第二题想了很久才发现比较简单。之前想复杂了。其实转到值域上之后就会好做许多。
&amp;nbsp;
第三题水水水水水水水水水水。然后题意。什么鬼。
&amp;nbsp;
所以我还是太弱啦。这个样子怎么省选TT。</description>
    </item>
    
    <item>
      <title>20150308 ur6</title>
      <link>/diary/i11rimport_007/</link>
      <pubDate>Sat, 07 Mar 2015 22:28:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_007/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 毕竟uoj还是缺人么，比赛比较稀疏。&amp;lt;/p&amp;gt; &amp;nbsp;
然后觉得我在这种智商向的题面前无力了。
&amp;nbsp;
第一题， 一看，不就是a[i]*(26n-1)=26*h[i]-h[i+1]么，水，敲。然后就没有考虑到26n-1≡0(mod p)的情况。于是gg。
&amp;nbsp;
第二题，居然是构造矩阵的题？首先我连基尔霍夫矩阵都要忘了。手推了一下发现消元消出来不对？原来是这一行的系数不能变。晕。然后就这样也只会暴力枚举图。20分走人。
&amp;nbsp;
第三题，似乎见过？不对啊，只见过完全图的解法。好像有10分。随手写一个吧。怎么今天三道题都有modPow。不管了弃疗。
&amp;nbsp;
结局是50+10+20=80=一个很惨的rank。所以我还是太弱啊。
&amp;nbsp;
昨天打球的时候，教练说，这一年我打球就像在赶场，没有找到自己的节奏。想想，不只是打球吧。很多时候都是在被拖着走，很没有目标感。不知道自己要去哪里，也不知道怎么去。似乎好像也做了规划，不过也没有真正去实现。到底是世界太复杂，还是我太简单？
&amp;nbsp;
不论如何，既然选择了自己的路，那爬也要爬完。</description>
    </item>
    
    <item>
      <title>BZOJ1814 Ural 1519 Formula 1</title>
      <link>/oi/i11rimport_008/</link>
      <pubDate>Sat, 07 Mar 2015 17:02:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_008/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 插头dp的练手题么。虽然之前还没写过哈密顿回路的题。&amp;lt;/p&amp;gt; &amp;nbsp;
学习了一下广义括号法。发现状态数比之前记连通性的方法要少。仔细想想发现，两个连通的插头的顺序有关。不能存在1212这种东西。所以连通性的方法记了很多废状态。那把连通性方法改进一下会不会变得更快呢？可以研究一下。我觉得应该是等效了吧。
&amp;nbsp;
今天的debug时间明显缩短了。虽然还是debug了老半天。然后怎么代码还是那么长。想起我每次都觉得把东西挤到一起看起来很不雅观，于是去写一堆找转移的函数。晕。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
const int maxn = 15; const int maxst = 50009;
#define mbit(x,y) ((x)&amp;lt;&amp;lt;((y)&amp;lt;&amp;lt;1)) #define gbit(x,y) (((x)&amp;gt;&amp;gt;((y)&amp;lt;&amp;lt;1))&amp;amp;3) #define cbit(x,y) ((x)&amp;amp;(~(3&amp;lt;&amp;lt;((y)&amp;lt;&amp;lt;1))))
int n, m, tots, slst[maxst]; bool mp[maxn][maxn]; dint f[2][maxst];
void dfsState(int l, int c, int z) { if (l == m + 1) { if (!</description>
    </item>
    
    <item>
      <title>BZOJ2402 陶陶的难题II</title>
      <link>/oi/i11rimport_009/</link>
      <pubDate>Sat, 07 Mar 2015 13:39:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_009/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; orz mhy。看mhy的刷题记录成为了我成天的刷题方向了。&amp;lt;/p&amp;gt; &amp;nbsp;
其实最初也没有想清楚。然后看了一眼mhy写的题解写了凸壳，秒懂。
&amp;nbsp;
二分一个答案，设它是ans。如果ans≥realAns的话，那么就会存在yi-ans*xi+qj-ans*pj≥0。然后i和j就分开了。于是变成了求一条路径上yi-ans*xi的最大值。把xi看作k，把yi看作b，就变成半平面交了。于是开归并式线段树把凸壳给记录下来就好了。然后复杂度大约是单次询问O(lg3(n))的？链剖后每棵树单独建树，然后复杂度我就不会算了TT。
&amp;nbsp;
于是就硬着头皮写了，然后发现跑得还挺快。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cmath&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const int maxn = 30009; const int maxl = 15; const int max_buf = maxn * maxl * 2; const double eps = 1e-6; const double finf = 1e10;
int ibuf_arr[max_buf], *ibuf(ibuf_arr); double fbuf_arr[max_buf], *fbuf(fbuf_arr);
struct edge { int t; edge *next; };
struct line { double k, b; inline double xCross(const line&amp;amp; a) { return (a.</description>
    </item>
    
    <item>
      <title>BZOJ1513 [POI2006]Tet-Tetris 3D</title>
      <link>/oi/i11rimport_010/</link>
      <pubDate>Fri, 06 Mar 2015 22:25:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_010/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 这么水的题居然还要写题解。要不要说我写了半个下午+半个晚上。&amp;lt;/p&amp;gt; &amp;nbsp;
丧心病狂想写一发zkw去抢速度rank。然后发现zkw怎么支持区间修改查询TT。课件根本没讲懂。而且max怎么区间加。
&amp;nbsp;
想了很久终于想出了来了。然后交上去发现常数巨大比普通线段树还要慢TT。到头来想想如果我直接写普通线段树说不定十多分钟就能过，而且代码量还会小一些。因为那个是可以直接通用的，但是这个比较麻烦。
&amp;nbsp;
其实写这个就题解就是想记录一下我yy出来的zkw区间修改区间查询的方法。
&amp;nbsp;
这道题是区间查询最大值+区间修改。如果是写一般的线段树，需要记录两个值a和v（至于为啥我用了这俩神奇的字母我也不知道），分别表示当前区间被完整覆盖的修改的最大值（又称lazy标记）和当前区间的最大值。然后所以zkw也要记这两个东西。
&amp;nbsp;
如果我们把zkw看作一棵树，那么每次修改和询问操作的时候都是对一些线段的a和v进行操作。（废话）
&amp;nbsp;
首先考虑修改。zkw经典的变为开区间取中间能处理a值的改变，但是不能处理v值的改变。因为v值改变的线段不一定会被当前区间包含。然后仔细考虑发现a值没有变但是v值变了的点只可能存在于两个端点到根的路径上。那就直接强行更新一发就好了啊。然后更新的区域就变成了一个有点像倒置漏斗的形状。
&amp;nbsp;
再考虑询问。a要覆盖当前区间，v要被当前区间覆盖。那不就是修改把a和v的做法反一下么。
&amp;nbsp;
然后好像也不是很麻烦的样子哈。
&amp;nbsp;
然后常数很大哈。
&amp;nbsp;
那还拿zkw做何用。
&amp;nbsp;
晕。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cctype&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const int buf_len = 4567; char buf[buf_len], *bufb(buf), *bufe(buf + 1); #define readBuf() { if (++ bufb == bufe) bufe = (bufb = buf) + fread(buf, 1, sizeof(buf), stdin); } #define readInt(x) { register int s(0); do { readBuf(); } while (!</description>
    </item>
    
    <item>
      <title>BZOJ2704 旅游</title>
      <link>/oi/i11rimport_011/</link>
      <pubDate>Fri, 06 Mar 2015 14:02:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_011/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 居然网上都没有找到程序来和我拍。好吧其实它是一道权限题而且过的人也不多。&amp;lt;/p&amp;gt; &amp;nbsp;
其实就是裸的插头DP。本来想学一下广义括号的然后被状态数吓到了于是只好还是写最小表示。连通性。
&amp;nbsp;
然后我发现最小表示连通性很容易写挂。而在findstate的时候检查一下是个不错的办法。至少这道题靠这个就可以直接debug出来问题了。
&amp;nbsp;
比上次写插头要好许多了。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
typedef long long dint; #define _l (long long int) #define mbit(x,y) ((_l x)&amp;lt;&amp;lt;((y)&amp;lt;&amp;lt;2)) #define gbit(x,y) (((x)&amp;gt;&amp;gt;((y)&amp;lt;&amp;lt;2))&amp;amp;0xf)
const int maxn = 13; const int maxst = 570009;
dint slst[maxst]; int n, m, v[maxn][maxn], tots, f[2][maxst], cnt[17]; bool av[2][maxst];
void dfsState(int l, int tot, dint z) { if (l == m) { for (int i = 1; i &amp;lt;= tot; ++ i) if (cnt[i] !</description>
    </item>
    
    <item>
      <title>BZOJ2178 圆的面积并</title>
      <link>/oi/i11rimport_012/</link>
      <pubDate>Fri, 06 Mar 2015 00:39:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_012/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 计算几何题。别人都用simpson搞。然后我决定不水一发，用hwd神犇在wc上讲的关键点法做。&amp;lt;/p&amp;gt; &amp;nbsp;
然后就搞到了12点半。发现坑数次。还专门用js写了个画圆的。当然我现在知道怎么画圆了。过两天去把oj7的统计图改一改。
&amp;nbsp;
思路是把所有圆的左右端点和所有圆的两两交的x提出来，unique一发（不然会tle显然的）。这样两个x之间的部分的圆弧是不会有交的。那么就可以视为一堆弓形和梯形了。然后扫描一下中位线的有效长度算梯形。每次新进入一个连通区域和出来的时候加相应弓形的面积。
&amp;nbsp;
需要注意按y排序的时候是按弓形与竖线的交点的y，而不是梯形的y，否则会有非常神奇的精度误差。另外算弓形面积必需要用反三角函数（至少我没研究出怎么不用）。如果用acos的话会暴精度暴得很惨。要用atan2来提高精度。
&amp;nbsp;
然后这样写连样例都会tle。仔细感受一下发现好像如果有一堆同心圆的话都会tle。然后考虑去掉包含的圆之后似乎就快了。然后就交了，然后居然跑过了。
&amp;nbsp;
然后来欣赏一下我的时间巨大，空间巨大，长度巨大。挤在一堆simpson里显得特别郁闷的代码。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cmath&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const double eps = 1e-8; const double pi = acos(-1);
inline int sgn(double x) { return (x &amp;gt; eps) - (x &amp;lt; -eps); } inline double sqr(double x) { return x * x; }
typedef struct geo_obj { double x, y; geo_obj() {} geo_obj(double xo, double yo) { x = xo, y = yo; } inline void read() { scanf(&amp;quot;%lf%lf&amp;quot;, &amp;amp;x, &amp;amp;y); } inline geo_obj vertical() { return geo_obj(-y, x); } inline double len() { return sqrt(sqr(x) + sqr(y)); } } point, vect; inline geo_obj operator +(const geo_obj&amp;amp; a, const geo_obj&amp;amp; b) { return geo_obj(a.</description>
    </item>
    
    <item>
      <title>20150306</title>
      <link>/diary/i11rimport_013/</link>
      <pubDate>Thu, 05 Mar 2015 20:41:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_013/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 严重地被虐了。&amp;lt;/p&amp;gt; &amp;nbsp;
今天考试=一道奇怪题+一道普及题+一道无脑题。然后就挂了。
&amp;nbsp;
第一题直接就想到了上次的变异最小圆覆盖。然后那道题没有过。然后这道题也比较神奇。感觉是可以用那个题的方法搞的。不过粘过来std居然错了。无语。然后居然放过了很逗的写法。更无语。
&amp;nbsp;
第二题也比较无语。普及组题。
&amp;nbsp;
第三题想一想就知道只要贪心就完了。然后边权是可以为0的于是WA傻了。完全是自己加了一句没有用的话结果就100变60了。
&amp;nbsp;
所以我还是太弱了。</description>
    </item>
    
    <item>
      <title>BZOJ1223 [HNOI2002]Kathy函数</title>
      <link>/oi/i11rimport_014/</link>
      <pubDate>Wed, 04 Mar 2015 18:36:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_014/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 比较神奇的数学题。首先你要知道这个函数的意思是把它的二进制flip。至于怎么来的我也是听说的。然后推一下发现的确是这么回事。&amp;lt;/p&amp;gt; &amp;nbsp;
于是就变成数位dp了。然后我发现数位dp常常可以用奇奇怪怪的方法水过去。然后又发现数组从0开始标号也会造成麻烦。+1-1啥的最讨厌了。
&amp;nbsp;
于是这题就变成高精度练习题了。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const int maxn = 409;
struct BigInt { int l, a[maxn], base; BigInt(int b = 10) { l = 0; base = b; } void push() { for (int i = 0; i &amp;lt; l - 1; ++ i) { a[i + 1] += a[i] / base; a[i] %= base; } for (; a[l - 1] &amp;gt;= base; ++ l) { a[l] = a[l - 1] / base; a[l - 1] %= base; } } void pull() { for (; l &amp;amp;&amp;amp; !</description>
    </item>
    
    <item>
      <title>BZOJ1023 [SHOI2008]cactus仙人掌图</title>
      <link>/oi/i11rimport_015/</link>
      <pubDate>Wed, 04 Mar 2015 15:40:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_015/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 第六百道题一定要不水！虽然离第一页还有几十道题的距离。&amp;lt;/p&amp;gt; &amp;nbsp;
很早之前见过的题吧。然后一直觉得特别难写所以都没写。以前写点不重复的仙人掌都觉得挺痛苦，更不要说这个了。
&amp;nbsp;
现在想想还行，因为我yy出了化简的方法。先搞出dfs树。然后一个顶点如果是一个环里深度最浅的，那么称它为这个环的头。可以证明一个顶点最多在一个不以它为头的环上。把这个环记下来，其它的环都从这个顶点去找边来找就行了。这样的话可以比较节省代码量，写起来也比较明了。虽然还是比mhy长。
&amp;nbsp;
然后因为我在最后一步dp的时候写了一个static的f数组，所以光荣了。debug了好久。晕。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
struct edge { int t, av; edge *next, *rv; }; struct ball { int l, *a, h; };
const int maxn = 50009; const int maxm = 200009; const int maxarr = 400009;
int n, m, cb, fb[maxn], d[maxn]; int f[maxn], ans, fd[maxn], fe[maxn]; int stc[maxn], tst; int ibuf_arr[maxarr], *ibuf(ibuf_arr); bool vis[maxn]; edge elst[maxm], *ep(elst), *head[maxn]; ball b[maxm];</description>
    </item>
    
    <item>
      <title>BZOJ2734 [HNOI2012]集合选数</title>
      <link>/oi/i11rimport_016/</link>
      <pubDate>Wed, 04 Mar 2015 09:00:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_016/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 最初感觉好多状态怎么做。&amp;lt;/p&amp;gt; &amp;nbsp;
然后发现（其实是瞟了一下题解）如果把一个数分成2a*3b*c，那么c只影响上界。2a*3b中a最大是16，b最大是10，列一张17*11的表出来，然后发现右下方还有很多空东西。于是直接像插头一样状压一下轮廓线呗。反正对一个数有影响的只有它的上面和左边。最近写插头写得有点疯啊。其实它的很多思想都是可以推广出来用的。比如最小表示啥的。
&amp;nbsp;
于是如果直接这样写的话大概要跑30000多次dp，还是比较悬。然后再想想发现只有表里能取的数的形状发生改变的时候才会改变dp的答案。表里面的数很少所以改变次数也应该很少。所以记一下上一次的形状是什么然后比较相不相同，相同就直接沿用。
&amp;nbsp;
然后跑得飞快。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
#define _l (long long int) #define pow2(x) (1&amp;lt;&amp;lt;(x))
const int maxn = 19; const int maxm = 15; const int maxv = 100000; const int maxst = pow2(11) + 9; const int mod = 1e9 + 1;
int f[2][maxst], vl[maxn][maxm], n, m, v; int dis[maxn], ldis[maxn], lans, ans;
void pre() { for (int i = 0; i &amp;lt; maxn; ++ i) { vl[i][0] = (1 &amp;lt;&amp;lt; i); if (vl[i][0] &amp;gt; maxv) vl[i][0] = -1; for (int j = 1; j &amp;lt; maxm; ++ j) if (vl[i][j - 1] &amp;gt; -1) { vl[i][j] = vl[i][j - 1] * 3; if (vl[i][j] &amp;gt; maxv) vl[i][j] = -1; } else vl[i][j] = -1; } }</description>
    </item>
    
    <item>
      <title>BZOJ3242 [Noi2013]快餐店</title>
      <link>/oi/i11rimport_017/</link>
      <pubDate>Tue, 03 Mar 2015 21:18:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_017/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 好吧我的本意是想学习一下dp的。然后发现了这道纠结了一年半还多的题。&amp;lt;/p&amp;gt; &amp;nbsp;
首先把环找出来。然后环上会长一些树。先把树的答案求了，因为它很好求。
&amp;nbsp;
然后考虑环，那么答案应该是随便断一条边之后答案的最小值（而不是最大值）。于是乎记录一下每个点按某个方向到起点的距离，记为d[i]。算一下每个点的树的深度，记为l[i]。于是每次要最大化l[i]+l[j]+|d[i]-d[j]|。反正是最大化所以顺序是没有关系的，但是不能自交。这是个比较容易错的地方。于是就去写个线段树来维护吧。只查询不修改让我总有能线性搞的想法，虽然没想清楚具体怎么实现。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; #include &amp;lt;set&amp;gt; using namespace std;
struct edge { int t, v; edge *next; };
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
const int maxn = 100009;
edge elst[maxn &amp;lt;&amp;lt; 1], *ep(elst), *head[maxn]; int n, fa[maxn], df[maxn], ol[maxn], d[maxn]; int tlp, lp[maxn &amp;lt;&amp;lt; 1]; dint lv[maxn &amp;lt;&amp;lt; 1], le[maxn &amp;lt;&amp;lt; 1], md[maxn], ans;</description>
    </item>
    
    <item>
      <title>20150304</title>
      <link>/diary/i11rimport_018/</link>
      <pubDate>Tue, 03 Mar 2015 17:39:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_018/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 又被虐了。&amp;lt;/p&amp;gt; &amp;nbsp;
第一题感受了一下感觉线段树会被卡成平方？然后果断了一个分块+smt维护凸壳。然后调了很久。舍点的地方一直有点问题。于是还写了个js来画图。然后最后还是怎么就错了两个点。完了之后发现线段树是可以保证时间复杂度的。naive了我。
&amp;nbsp;
第二题当时觉得不太可做也没有认真想。其实就是根据a[1]+a[2]的值的不同取值去推前三个数，这个我都想到了。然后就没去想a[0]+a[3]一定是剩下的最小的。然后就又naive了。想通后秒过。
&amp;nbsp;
第三题想对了。淘汰的顺序是无关的。只要有一种行就行，否则就不行。然后中间cnt写错了居然还有91分，好神奇。然后100个点把我的页面撑得也是难看啊。
&amp;nbsp;
然后又花了一个下午去思考。还好晚上可以再干点别的了。
&amp;nbsp;
所以我还是太年轻了。</description>
    </item>
    
    <item>
      <title>BZOJ1079 [SCOI2008]着色方案</title>
      <link>/oi/i11rimport_019/</link>
      <pubDate>Mon, 02 Mar 2015 21:31:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_019/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 看上去比较不可做的DP。好像别人写的记搜跑得飞快。&amp;lt;/p&amp;gt; &amp;nbsp;
我看我是写最小表示写上瘾了。
&amp;nbsp;
压一下状态，有点像今天第二题。算每种值的有多少。然后直接跑。
&amp;nbsp;
感觉废状态比较多啊，跑得好慢。另外用memset清空高维数组会比较快。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const int mod = 1e9 + 7; const int maxn = 17; const int maxst = 16009;
#define mbit(a,b) ((a)&amp;lt;&amp;lt;((b)&amp;lt;&amp;lt;2)) #define gbit(a,b) (((a)&amp;gt;&amp;gt;((b)&amp;lt;&amp;lt;2))&amp;amp;0xf) #define _l (long long int)
int m, c[maxn], n, mt, tots, slst[maxst]; int f[2][7][maxst];
void dfsState(int t, int l, int v) { if (l == mt + 1) { slst[tots ++] = v | t; } else { for (int i = 0; i &amp;lt;= t; ++ i) dfsState(t - i, l + 1, v | mbit(i, l)); } }</description>
    </item>
    
    <item>
      <title>20150303</title>
      <link>/diary/i11rimport_020/</link>
      <pubDate>Mon, 02 Mar 2015 20:29:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_020/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 被痛虐。&amp;lt;/p&amp;gt; &amp;nbsp;
zhx的出题风格越来越水了。
&amp;nbsp;
第一题最关键的结论是两个不能与当前块同字母的块也一定不能同字母。没推出来于是暴力了。然后再见。orz mhy。
&amp;nbsp;
第二题矩阵快速幂。因为昨天才写了插头所以优化还是比较在行。然后就被卡常数了。然后才知道矩阵乘还有这么神奇的优化。应该是废转移比较多。加上之后飞快虐std。
&amp;nbsp;
第三题又是想对了方向没有想到底。平衡树上的数据结构题还是比较有意思的碰到可以多做做。
&amp;nbsp;
然后一下午加大半个晚上就花在第三题和它的变形上了。
&amp;nbsp;
然后死得有点惨。
&amp;nbsp;
是我太年轻了啊。</description>
    </item>
    
    <item>
      <title>BZOJ2770 YY的Treap</title>
      <link>/oi/i11rimport_021/</link>
      <pubDate>Mon, 02 Mar 2015 16:13:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_021/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 今天考试题的弱化版。只用求LCA是谁，不用求它的深度。所以直接用线段树找下区间最值就搞定了。然后long的范围有负数坑了一发。&amp;lt;/p&amp;gt; &amp;nbsp;
好像在不平衡的平衡树上的题也比较热啊。而且我还做得比较少。是要补一补。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
typedef pair &amp;lt;int, int&amp;gt; vpr; typedef pair &amp;lt;bool, vpr&amp;gt; dpr; struct seg { int l, r; dpr d; seg *ls, *rs; }; struct query { int t, a, b; };
const int maxn = 400009;
int n, m, vl[maxn], tv; vpr a[maxn]; query q[maxn]; seg slst[maxn * 3], *sp(slst), *rt;
inline int gpos(int x) { return lower_bound(vl, vl + tv, x) - vl; }</description>
    </item>
    
    <item>
      <title>20150302</title>
      <link>/diary/i11rimport_022/</link>
      <pubDate>Sun, 01 Mar 2015 23:29:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_022/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 算是新学期开始的第一天吧。&amp;lt;/p&amp;gt; &amp;nbsp;
上午写了道水题，然后开始纠结插头。一上午都没有写出一道插头来。
&amp;nbsp;
下午有cf。状态还是和昨天一样比较差。写挫了好多次。各种WA一时爽还导致罚时很多。
&amp;nbsp;
第一题逗你玩。就看最多的字母有几种。然后乘一下都不用快速幂，虽然我顺手就写了一个。已经不会用非快速幂了么。
&amp;nbsp;
第二题用map来存位置，然后用两个堆搞一下就完了。可以证明状态变化量是线性的所以不会出事。
&amp;nbsp;
第三题逗你玩。每个位置在第j位的贡献可以用组合数算出来。然后用前缀和就行。然后各种细节导致WA傻了。
&amp;nbsp;
后面两道神题不可做。
&amp;nbsp;
ORZ xyz大爷。然后看到jcvb又在我上面很近的地方。
&amp;nbsp;
晚上写了道水题继续纠结插头，一直纠结到回家终于在11:05:56的时候过了。开心中。
&amp;nbsp;
看来还是就怕写长代码啊。怎么能这样呢。
&amp;nbsp;
看来我还是太年轻了。</description>
    </item>
    
    <item>
      <title>BZOJ1187 [HNOI2007]神奇游乐园</title>
      <link>/oi/i11rimport_023/</link>
      <pubDate>Sun, 01 Mar 2015 23:22:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_023/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 我的第二道插头DP。差不多纠结了一天。&amp;lt;/p&amp;gt; &amp;nbsp;
这道题网上的题解都讲的好简略啊。最后还得自己yy。没有用括号序列法让我觉得自己比较厉害。
&amp;nbsp;
考虑轮廓线上的m个格子，有3种情况：没有插头，有且只能往一边走，有且要往两边走。对于第二种，要用最多3个不同的值来记录连通性。还要有两个不同的值来表示第一种情况和第三种情况。我比较懒，所以直接用一个八进制数去表示，然后每次二分找编号。
&amp;nbsp;
考虑转移，分一堆情况进行讨论。默认从左上朝右下走。
&amp;nbsp;
首先是要走当前格子的情况。
&amp;nbsp;
如果左边和上面都有插头，那么看它们是否连通。如果不连通则把它们连通，如果已经连通，看是否还有其它插头。没有就更新答案，否则忽略。
&amp;nbsp;
如果只有左边有插头，再分类。如果它是第二种，那么这个格子可以新建一个第三种插头，或者把左边格子的插头接过来。如果它是第三种那么它必需把左边格子接过来。
&amp;nbsp;
如果只有上面有插头，那么必需把上面的插头接上来。
&amp;nbsp;
如果左边和上面都没有插头，那么可以新建一个第三种插头。
&amp;nbsp;
然后如果不走这个格子的话，要求上面没有插头，且左边不是第三种插头。
&amp;nbsp;
按mhy的话说，插头dp就是写起来很麻烦。的确。不过写出来也还是挺高兴的。
&amp;nbsp;
然后代码丑到不能看了。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const int maxn = 109; const int maxm = 9; const int maxst = 50009; const int inf = 0x3f3f3f3f;
#define pow8(x) (1&amp;lt;&amp;lt;(x)&amp;lt;&amp;lt;(x)&amp;lt;&amp;lt;(x)) #define mbit(x,y) ((x)&amp;lt;&amp;lt;(y)&amp;lt;&amp;lt;(y)&amp;lt;&amp;lt;(y)) #define gbit(x,y) (((x)&amp;gt;&amp;gt;(y)&amp;gt;&amp;gt;(y)&amp;gt;&amp;gt;(y))&amp;amp;7)
int f[2][maxst], n, m, a[maxn][maxm], ans; int slst[maxst], tots;</description>
    </item>
    
    <item>
      <title>BZOJ3438 小M的作物</title>
      <link>/oi/i11rimport_024/</link>
      <pubDate>Sun, 01 Mar 2015 10:46:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_024/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 我以为是最大权闭合子图来着。然后好像就直接最小割就行了吧。突然觉得我的网络流好弱。&amp;lt;/p&amp;gt; &amp;nbsp;
建源汇，分别连每个作物。对于每个组合建两个点分别边源汇，然后中间像源汇一样连它的成员。如果全在一边，那么会有一条边不用割。这也是一个集合都选对答案有贡献的建图方式。
&amp;nbsp;
然后就完了。建图和dinic都写得有些丑，所以调了半天。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
struct edge { int t, c; edge *next, *rv; };
const int maxn = 3009; const int inf = 0x3f3f3f3f;
int n, m, c, d[maxn], t, st, te; edge *head[maxn];
inline edge* newEdge(int u, int v, int c) { edge* e(new edge); e-&amp;gt; t = v; e-&amp;gt; c = c; e-&amp;gt; next = head[u]; return head[u] = e; } inline void addEdge(int u, int v, int c) { edge *a(newEdge(u, v, c)), *b(newEdge(v, u, 0)); a-&amp;gt; rv = b; b-&amp;gt; rv = a; }</description>
    </item>
    
    <item>
      <title>BZOJ3888 [Usaco2015 Jan]Stampede</title>
      <link>/oi/i11rimport_025/</link>
      <pubDate>Sun, 01 Mar 2015 08:35:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_025/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; usaco的银组都开始考这种题了么。其实还是挺水的，不过题号比较好。&amp;lt;/p&amp;gt; &amp;nbsp;
就按y排序，挨个把时间轴上的东西扔掉就完了。写离散可能还没有直接写smt快呢。
&amp;nbsp;
然后线段有一边要减1有点坑。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstdlib&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
typedef long long dint; #define _l (long long int)
struct cow { int y; int ta, tb; };
struct node { int l, r, w; node ls, rs; }; typedef pair &amp;lt;node, node &amp;gt; npr;
const int maxn = 50009;
inline bool operator &amp;lt;(const cow&amp;amp; a, const cow&amp;amp; b) { return a.</description>
    </item>
    
    <item>
      <title>20150301 hihoc9</title>
      <link>/diary/i11rimport_026/</link>
      <pubDate>Sat, 28 Feb 2015 21:21:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_026/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 连续两天都是一天两场。&amp;lt;/p&amp;gt; &amp;nbsp;
上午考试比较naive。
&amp;nbsp;
第一题反正也不会，就随便写了个乱枚举的东西，还骗到80分。正解比较神奇，不过今天是没有时间写了。
&amp;nbsp;
第二题想到了正确的解法，但是没有优化好，加上高精写挂了，于是只有85分。
&amp;nbsp;
第三题数据结构那一部分想的是对的，但是前面对期望不熟没有想清楚，于是直接想简单了。也就是把我的链剖再改得更麻烦一些。
&amp;nbsp;
所以说在学长们出的比较难的题面前我还是很无力的。
&amp;nbsp;
下午讨论，改第二题。状态不好啊，改东西改了好久。
&amp;nbsp;
晚上hihoc9去拿github玩偶。
&amp;nbsp;
第一题小学生题么。然后排序的时候把m写成n于是挂了一次。所以虽然一血但是分也不高。
&amp;nbsp;
第二题有点像中国象棋棋盘上放炮的那个题。唯一的区别是这题两个炮可以放在一起。用dp，f[i][j][k]表示做了i列，有j行和为2，有k行和为1的方案数。对于每一个高度可以O(n3)预处理出答案。中间有一个转移写错了调了好久。幸好样例比较良心。于是总时间复杂度是四方的。n=100感觉很悬。本机不开O2的话会TLE一点。想到mac比较慢于是交了然后过了。
&amp;nbsp;
第三题神题。
&amp;nbsp;
第四题感觉可做，于是交了16次最后没有过。首先要判合法。最初没有判。然后建出树之后归并，用组合数。然后求阶乘的逆元的时候千万不要再像今天这样naive去线性筛了。我觉得我的思路是对的啊。不开心。（upd：看了题解之后觉得我的想法好像也不是太对）
&amp;nbsp;
于是今天被一堆人虐了。-16真心不好看。
&amp;nbsp;
我还是太年轻了啊。
&amp;nbsp;
明天下午有cf，比较开心。</description>
    </item>
    
    <item>
      <title>201503xx plan</title>
      <link>/diary/i11rimport_027/</link>
      <pubDate>Fri, 27 Feb 2015 23:03:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_027/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 不是之前写过长期计划么？然后发现自己完成计划的水平和美工水平差不多。&amp;lt;/p&amp;gt; &amp;nbsp;
之前总觉得省选离开学是件很遥远的事情。直到这最后一次面对它，才发现原来它这么近。
&amp;nbsp;
第三次考省选了吧。之前对省选的感觉还是以不会做的骗分题居多。唯一一道会做的ds题还因为数组少开一倍而少了30分。去年省选的时候，听说省选题是可以想ac的，那么也只有抓紧最后一次机会了。
&amp;nbsp;
三月有4.5个星期。估计大约每周白天正式考试3-4场，晚上网赛若干。考试的时候就专心考试。然后尽量在当天把三道题都搞懂写过。晚上如果不是太晚的话也可以玩一玩。剩下的时间就去刷题好了。
&amp;nbsp;
每天要保证一道bzoj，不管是水题还是什么的。也不要太功利去想600道喽第一页喽。埋头写代码，面包总会有的。剩下的也不要老盯着bzoj，hdu、poj、spoj啥的只要有没做过的好题就要写。
&amp;nbsp;
第一周去学习DP。把插头DP再加强一下，数位DP也要写一写。正好有MHY的专题是吧。然后有可能会考到DS+DP的题，还有单调队列和斜率优化啥的再加CDQ之类的，如果还能翻到的话也写写好了。
&amp;nbsp;
Upd:插头dp做了几道题，写得相对比较熟了。数位dp练了一道水水的kathy函数。然后ds+dp的奇怪题还有仙人掌啥的都写了一点。感觉这个周的任务完成得还是不错。
&amp;nbsp;
第二周去复习图论。不要只盯着数据范围是105的题。也要涉及一些n相对小而复杂度的指数高一些的题。要仔细思考。图论里也有不少的论题，比如弦图，平面图，完美消啥的，不妨复习一下。还有网络流。最大流最小割，费用流，分数规划，对偶啥的。
&amp;nbsp;
第三周去写一些字符串以及ds的题。字符串的几个常用算法要再熟悉一遍，不要看到题就想hash。但是不会做的时候能拿hash水那就水呗，拿个不常用的素数试试。然后后缀自动机这种东西还是留到noi之前再去想办法弄懂吧。
&amp;nbsp;
第四周复习数论和杂题。再写写fft。然后bzoj上有些比较奇怪的数学题啥的，可以参考一下题解。然后O(n2/3)求前缀和v那个玩意也要学习一下，我预感有可能会考到。
&amp;nbsp;
计划的关键在于落实。不要天天沉浸于水题也不要天天浪费在不可做的题上。
&amp;nbsp;
For my dream, fighting.</description>
    </item>
    
    <item>
      <title>20150228 bc31</title>
      <link>/diary/i11rimport_028/</link>
      <pubDate>Fri, 27 Feb 2015 22:40:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_028/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 又是愉快的一天两场。&amp;lt;/p&amp;gt; &amp;nbsp;
早上是高三众出了一套据称是NOIP模拟题的玩意。感觉比较坑，不过还是可做。
&amp;nbsp;
第一题是个简单的思考题，除了高精以外没啥恶心的地方。但是当时觉得有点麻烦，想对了方向但是没有继续想下去。当然一个重要的原因是第二题和第三题比较吸引人。
&amp;nbsp;
第二题是个灭绝树的比较裸的题。这玩意比较简单不过比较偏。这种考点就是要严防的。建树还比较简单。问题是求一堆链的并比较麻烦。当然我直接上链剖了反正最近写得比较多，半个小时就搞定了整道题。然后也可以不用链剖用DFS序的，不过我觉得可能我思考和调试的时间会比直接无脑码链剖的时间还要长。
&amp;nbsp;
第三题是去年冬令营前模拟的时候考过的原题吧，大概日期是20140122？印象比较深的原因是时空穿梭有这个部分分不过那题我还是暴0了。一年过去了，于是我决定硬推mobius，然后推了若干页草稿纸，中间还经历了一次重启之后最终还是推出来了。中间重启的原因还是对mobius反演不够熟悉。不过感觉经过上次在80ms的学习之后，自己的数论水平还是有些进步吧。至少现在看到mobius不会昏了。
&amp;nbsp;
于是考试的时候第一题30暴力+100+100。没写丑东西还是比较欣慰的。
&amp;nbsp;
下午各种事情没有刷题没有改题没有写总结。
&amp;nbsp;
晚上7点17分想起有BC。
&amp;nbsp;
a题小学生题水。
&amp;nbsp;
b题中学生题数位DP水。然后写了半天。久了不写手生。怎么感觉说这句话说了整整一个寒假了。
&amp;nbsp;
c题不是当年SCOI那个题的升级版吗？然后naive了一次因为如果有车把两行隔开的话两个王就不会产生影响了。然后发现要先处理出所有大小方块的王的放法数，然后枚举一下n的正整数拆分，还要用在xj学到的枚举排列去重的方法。细节各种麻烦。写之交之过pt之玩之fst之，错因未知。
&amp;nbsp;
d题不会。题解都那么长一定是神题。
&amp;nbsp;
然后去写上午的第一题，然后脑洞大开写了个java，然后去补bzoj，然后写总结。事情好多TT
&amp;nbsp;
所以我还是太年轻了啊。</description>
    </item>
    
    <item>
      <title>BZOJ1455 罗马游戏</title>
      <link>/oi/i11rimport_029/</link>
      <pubDate>Thu, 26 Feb 2015 14:52:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_029/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 左偏树+并查集的一眼题嘛。然后合并的时候搞忘了如果两个人已经在同一个团里要跳过，于是左偏树自交去了。&amp;lt;/p&amp;gt; &amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
#define szof(p) ((p)?(p-&amp;gt;sz):0) struct node { int sz, vl, id; node *ls, rs; node() {} node(int v, int i) { vl = v; id = i; sz = 1; ls = rs = 0; } inline void update() { if (szof(ls) &amp;lt; szof(rs)) swap(ls, rs); } }; node merge(node p, node q) { if (!p) return q; else if (!</description>
    </item>
    
    <item>
      <title>BZOJ1295 [SCOI2009]最长距离</title>
      <link>/oi/i11rimport_030/</link>
      <pubDate>Wed, 25 Feb 2015 21:26:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_030/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 多老的省选题了。&amp;lt;/p&amp;gt; &amp;nbsp;
就处理一下任意两个格子之间最少要经过几个1，如果小于等于t就更新答案。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cmath&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
#define mkword(x,y) (((x)&amp;lt;&amp;lt;16)|(y)) #define hiword(x) ((x)&amp;gt;&amp;gt;16) #define loword(x) ((x)&amp;amp;0x0000ffff)
const int maxn = 33; const int maxnd = 909; const int movx[4] = {0, 0, 1, -1}; const int movy[4] = {1, -1, 0, 0};
typedef pair &amp;lt;int, int&amp;gt; dpr;
inline int sqr(int x) { return x * x; }
int n, m, t, d[maxn][maxn], ans; int mp[maxn][maxn]; dpr hp[maxnd &amp;lt;&amp;lt; 2];</description>
    </item>
    
    <item>
      <title>BZOJ3757 苹果树</title>
      <link>/oi/i11rimport_031/</link>
      <pubDate>Wed, 25 Feb 2015 21:10:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_031/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 今天晚上的效率比白天高啊。&amp;lt;/p&amp;gt; &amp;nbsp;
树上莫队的另一道题。比糖果公园好写到哪里去了。
&amp;nbsp;
然后手写链表丑掉了导致调试半天+RE了一发。我还是太年轻了。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cmath&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
typedef struct node { int t; node *next; } edge; const int maxn = 50009; const int maxm = 100009; const int maxl = 17; node nlst[maxn], *np(nlst); struct chain { int sz; node *hd, *tl; chain() { hd = tl = 0; sz = 0; } inline void clear() { hd = tl = 0; sz = 0; } inline void push(int x) { np-&amp;gt; t = x; np-&amp;gt; next = 0; if (sz) { tl-&amp;gt; next = np; tl = np; } else { hd = np; tl = np; } ++ np; ++ sz; } inline void merge(chain a) { if (a.</description>
    </item>
    
    <item>
      <title>BZOJ1415 [Noi2005]聪聪和可可</title>
      <link>/oi/i11rimport_032/</link>
      <pubDate>Wed, 25 Feb 2015 20:19:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_032/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 最近很颓啊。&amp;lt;/p&amp;gt; &amp;nbsp;
这题很久之前看过。当时以为是高消就没管。然后开坑之神idy做了之后仔细一想才知道不是。
&amp;nbsp;
这题的做法是dp。首先因为边数少所以不用floyd，直接bfs预处理出所有t[i][j]表狼在i，兔子在j的时候狼下一步去哪。然后有一个结论是每一步两个玩意的距离至少缩短1，所以状态是不会有环的，这也是为啥可以不用高消。然后坑点是不能直接开状态队列，因为那不是拓补序。要先把每个点的入度算出来再跑dp。结局是我的代码超长。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
struct edge { int t; edge *next; };
#define mkword(x,y) (((x)&amp;lt;&amp;lt;16)|(y)) #define hiword(x) ((x)&amp;gt;&amp;gt;16) #define loword(x) ((x)&amp;amp;0x0000ffff)
const int maxn = 1009; const int maxst = 1000009; const int inf = 0x3f3f3f3f;
int n, m, st, te, deg[maxn], d[maxn], t[maxn][maxn], ind[maxn][maxn]; edge elst[maxn &amp;lt;&amp;lt; 1], *ep(elst), *head[maxn]; double f[maxn][maxn], g[maxn][maxn], c[maxn], ans;</description>
    </item>
    
    <item>
      <title>BZOJ3052 [wc2013]糖果公园</title>
      <link>/oi/i11rimport_033/</link>
      <pubDate>Wed, 25 Feb 2015 18:49:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_033/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 盯idy发现的题，之前想学然后放弃了，于是今天几乎写了一天。有种紧迫感啊。然后发现好多认识的人都是最近过的。&amp;lt;/p&amp;gt; &amp;nbsp;
思路比较简单，树上莫队。因为要修改，所以要把块的大小变成n2/3，然后用1086的方法分块。好像也可以直接按dfs序分块。两个端点和时间为三个关键字跑莫队。复杂度可以感受一下反正我也不会证。
&amp;nbsp;
要注意千万要控制LCA的用量，必需只能是O(n)级别的。在爬树的时候必需O(1)。我就是在移动时间的时候不小心手贱每次用一遍LCA，然后去检查在移动端点花了好久的时间。
&amp;nbsp;
比较不开心的是发现mac没法改栈空间？有两个点始终暴栈。而且拿另一台电脑的openSUSE跑，结果发现它的cpu没有mac好，跑得还比mac快！我猜是操作系统在捣鬼。mac还是比较坑啊不开心。然后在bzoj上跑的时间几乎是本地的5倍也是比较厉害啊。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cmath&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const int maxn = 100009; const int maxl = 19;
typedef struct node { int t; node *next; } edge; node nlst[maxn], *np(nlst); struct chain { int sz; node *hd, *tl; chain() { hd = tl = 0; sz = 0; } inline void clear() { hd = tl = 0; sz = 0; } inline void push(int x) { np-&amp;gt; t = x; np-&amp;gt; next = 0; if (sz) { tl-&amp;gt; next = np; tl = np; } else { hd = np; tl = np; } ++ np; ++ sz; } inline void merge(chain a) { sz += a.</description>
    </item>
    
    <item>
      <title>BZOJ2916 [Poi1997]Monochromatic Triangles</title>
      <link>/oi/i11rimport_034/</link>
      <pubDate>Wed, 25 Feb 2015 10:10:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_034/</guid>
      <description>	&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 每日一水。不过这题还比较有意思。最初没看清题，觉得没法数总三角形个数。&amp;lt;/p&amp;gt; &amp;nbsp;
同色=总-不同色。对于一个不同色，会有两个顶点的两边颜色不同。直接按照顶点统计一下不同色的边组数，然后减一下就完了。
&amp;nbsp;
说好的糖果呢。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const int maxn = 1009;
int n, m, t, c, w[maxn];
int main() { #ifndef ONLINE_JUDGE //freopen(&amp;ldquo;in.txt&amp;rdquo;, &amp;ldquo;r&amp;rdquo;, stdin); #endif
scanf(&amp;quot;%d%d&amp;quot;, &amp;amp;amp;n, &amp;amp;amp;m); memset(w, 0, sizeof(w)); t = n * (n - 1) * (n - 2) / 6; for (int i = 0; i &amp;amp;lt; m; ++ i) { int u, v; scanf(&amp;quot;%d%d&amp;quot;, &amp;amp;amp;u, &amp;amp;amp;v); ++ w[u]; ++ w[v]; } c = 0; for (int i = 1; i &amp;amp;lt;= n; ++ i) c += w[i] * (n - w[i] - 1); c &amp;amp;gt;&amp;amp;gt;= 1; printf(&amp;quot;%d\n&amp;quot;, t - c); } </description>
    </item>
    
    <item>
      <title>BZOJ1180 [CROATIAN2009]OTOCI &amp;amp; BZOJ2843 极地旅行社</title>
      <link>/oi/i11rimport_035/</link>
      <pubDate>Tue, 24 Feb 2015 20:58:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_035/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 难得的水水的双倍题。&amp;lt;/p&amp;gt; &amp;nbsp;
看上去是想考lct然后忘强制在线了么？那就直接预处理出形态然后链剖呗。当然我还没有达到mhy这种认为lct比tcd好写的水平。
&amp;nbsp;
中间还把修改写挂了一次，然后1180的询问数是2843的3倍又re了一次。晕。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
struct edge { int t; edge *next; }; struct seg { int l, r, s[2]; seg *ls, *rs; }; struct query { char o; int a, b, s; };
const int maxn = 30009; const int maxm = 300009;
int n, m, r[maxn], d[maxn], v[maxn], u[maxn]; int fa[maxn], sz[maxn], tc, fc[maxn], ch[maxn], cl[maxn]; int qret[2]; seg slst[maxn &amp;lt;&amp;lt; 2], *sp(slst), *rt[maxn]; edge elst[maxn &amp;lt;&amp;lt; 1], *ep(elst), *head[maxn]; query q[maxm];</description>
    </item>
    
    <item>
      <title>BZOJ1822 [JSOI2010]Frozen Nova 冷冻波</title>
      <link>/oi/i11rimport_036/</link>
      <pubDate>Tue, 24 Feb 2015 16:08:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_036/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 简单的算几+网络流么。然后花了将近两天。最近总和算几过不去啊。&amp;lt;/p&amp;gt; &amp;nbsp;
判断线段和圆是否有交还是比较简单的。反正不要让我用解析。先找下垂线，然后找下垂足，然后点乘一下搞定。然后错得不知道怎么死的。搞了很久。
&amp;nbsp;
然后二分网络流水水水水水水水水。
&amp;nbsp;
感觉mac好卡啊，gdb巨卡，bash也非常卡。难道我又没有搞对打开方式？
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cmath&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
inline long double sqr(long double x) { return x * x; }
typedef struct geo_obj { double x, y; geo_obj() {} geo_obj(double x0, double y0) { x = x0, y = y0; } inline void read() { scanf(&amp;quot;%lf%lf&amp;quot;, &amp;amp;x, &amp;amp;y); } inline geo_obj rev() { return geo_obj(-y, x); } inline double len() { return sqrt(sqr(x) + sqr(y)); } inline double sqLen() { return sqr(x) + sqr(y); } } point, vect; inline geo_obj operator +(const geo_obj&amp;amp; a, const geo_obj&amp;amp; b) { return geo_obj(a.</description>
    </item>
    
    <item>
      <title>BZOJ2157 旅游</title>
      <link>/oi/i11rimport_037/</link>
      <pubDate>Tue, 24 Feb 2015 10:10:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_037/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 去找水题于是找到这么一道恶心的代码题。其实应该可以用函数指针来优化一下代码量，不过懒得了。虽然复制粘贴导致调试了老半天。&amp;lt;/p&amp;gt; &amp;nbsp;
水水的链剖+线段树。然后tag打一打就好了。
&amp;nbsp;
最近是装备了高超的开坑技巧啊。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
struct seg { int l, r, s, a, b, rv; seg *ls, *rs; inline void update() { if (l + 1 &amp;lt; r) { s = ls-&amp;gt; s + rs-&amp;gt; s; a = min(ls-&amp;gt; a, rs-&amp;gt; a); b = max(ls-&amp;gt; b, rs-&amp;gt; b); if (rv) { s = -s; swap(a, b); a = -a; b = -b; } } else a = b = s; } inline void chgTag() { s = -s; swap(a, b); a = -a; b = -b; rv ^= 1; } inline void downTag() { if (rv) { rv = 0; if (l + 1 &amp;lt; r) { ls-&amp;gt; chgTag(); rs-&amp;gt; chgTag(); } } } }; struct edge { int t, v; edge *next; };</description>
    </item>
    
    <item>
      <title>BZOJ1845 [Cqoi2005] 三角形面积并</title>
      <link>/oi/i11rimport_038/</link>
      <pubDate>Sun, 22 Feb 2015 21:48:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_038/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 比较基础的算几。当是hwd在wc的时候讲的东西拿来练练吧。（都过去多久了）&amp;lt;/p&amp;gt; &amp;nbsp;
算几的板比较长。然后记得还有道半平面交精度题至今没过！？什么效率。
&amp;nbsp;
这题的思路比较简单。找出所有的关键x，分段。每段内都是一堆边不相交的梯形，那么答案=∑(▵x*∑中位线并的长度)。总时间复杂度到了O(n3)。不过n才100显然可过。至于n等于1000的题暂时不会啊。我太弱了。
&amp;nbsp;
然后这题也有神奇的精度误差，答案要-1e-7才能过。
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const double eps = 1e-7; inline int sgn(double x) { return (x &amp;gt; eps) - (x &amp;lt; -eps); } inline double sqr(double x) { return x * x; }
typedef struct geo_obj { double x, y; inline geo_obj() {} inline geo_obj(double x0, double y0) { x = x0, y = y0; } inline void read() { scanf(&amp;quot;%lf%lf&amp;quot;, &amp;amp;x, &amp;amp;y); } } point, vect; inline geo_obj operator +(const geo_obj&amp;amp; a, const geo_obj&amp;amp; b) { return geo_obj(a.</description>
    </item>
    
    <item>
      <title>BZOJ2342 [Shoi2011]双倍回文</title>
      <link>/oi/i11rimport_039/</link>
      <pubDate>Sun, 22 Feb 2015 16:52:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_039/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 久了不写manacher又手生了只好抄红书了。&amp;lt;/p&amp;gt; &amp;nbsp;
后面的过程就是对每个位置i找一个最远的位置j满足j在i为中心的回文子串的一半以内且j最小。然后直接拿个set就能搞定。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; #include &amp;lt;set&amp;gt; using namespace std;
const int maxn = 500009;
char a[maxn]; int d[maxn &amp;lt;&amp;lt; 1], n;
void manacher() { d[0] = 1; for (int i = 1, j = 0; i &amp;lt; (n &amp;lt;&amp;lt; 1) - 1; ++ i) { int p(i &amp;gt;&amp;gt; 1), q(i - p), r(((j + 1) &amp;gt;&amp;gt; 1) + d[j] - 1); if (r &amp;lt; q) d[i] = 0; else d[i] = min(r - q + 1, d[(j &amp;lt;&amp;lt; 1) - i]); while (p - d[i] &amp;gt;= 0 &amp;amp;&amp;amp; q + d[i] &amp;lt; n &amp;amp;&amp;amp; a[p - d[i]] == a[q + d[i]]) ++ d[i]; if (q + d[i] - 1 &amp;gt; r) j = i; } }</description>
    </item>
    
    <item>
      <title>BZOJ1040 [ZJOI2008]骑士</title>
      <link>/oi/i11rimport_040/</link>
      <pubDate>Sun, 22 Feb 2015 11:48:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_040/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 多少年前的坑了。&amp;lt;/p&amp;gt; &amp;nbsp;
用mac写的第一篇题解呢。
&amp;nbsp;
环套树DP。先把树上的情况处理了，然后枚举取不取环上的第一个。
&amp;nbsp;
要注意会有重边的情况，比较恶心。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cctype&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const int buf_len = 4000; char buf[buf_len], *bufb(buf), *bufe(buf + 1); #define readBuf() { if (++ bufb == bufe) bufe = (bufb = buf) + fread(buf, 1, sizeof(buf), stdin); } #define readInt(x) { register int s(0); do { readBuf(); } while (!isdigit(*bufb)); do { s = s * 10 + *bufb - 48; readBuf(); } while (isdigit(*bufb)); x = s; }</description>
    </item>
    
    <item>
      <title>BZOJ1017 [JSOI2008]魔兽地图DotR</title>
      <link>/oi/i11rimport_041/</link>
      <pubDate>Sat, 21 Feb 2015 12:41:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_041/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 数据水。填坑。语文阅读题，看到都不想做。&amp;lt;/p&amp;gt; &amp;nbsp;
就一树形dp。f[i][j][k]表示第i个物品，上供j个，花k块钱的代价。背包转移是O(m2)的，因为是一棵树所以转移次数是O(n)的，但是还要考虑j最大为100。一个技巧是合并完所有的东西之后再考虑把上供的烧掉。虽然这样的复杂度还是有点高。
&amp;nbsp;
毕竟我还是太弱啊，居然又花了一个上午。（虽然睡到十点）
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
struct edge { int t, v; edge *next; };
const int maxm = 2009; const int maxn = 53; const int maxa = 103;
int n, m, f[maxn][maxa][maxm], ans[maxm], vl[maxn], vmax[maxn]; bool lf[maxn], ir[maxn]; edge elst[maxn], *ep(elst), *head[maxn];
inline void addEdge(int u, int v, int w) { ep-&amp;gt; t = v; ep-&amp;gt; v = w; ep-&amp;gt; next = head[u]; head[u] = ep ++; }</description>
    </item>
    
    <item>
      <title>BZOJ2331 [SCOI2011]地板</title>
      <link>/oi/i11rimport_042/</link>
      <pubDate>Fri, 20 Feb 2015 17:20:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_042/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 插头DP的基础题。想插头DP都是将军没走的时候给我讲的了，距今有大半年了吧。mhy已经写了无数道了，我才开始写。唉，还是效率太低。&amp;lt;/p&amp;gt; &amp;nbsp;
插头DP的意思是把已经处理的部分的轮廓线上对后面状态有影响的东西状压下来，然后挨着处理每个格子的状态（比如方向，或者这里的地板怎么铺之类的）。
&amp;nbsp;
具体到这道题来说，考虑一个相邻格子之前的边，那么它可能没有连接两个相同的磁砖，有可能连接了两个还没有拐过弯的磁砖，有可能连接了两个已经拐过弯的磁砖，一共是3种情况，所以用一个三进制数把它压下来。然后直接一路转移过去就行了。要注意的是每行都处理完了之后要把最边上的那一条从右移动到左，所以还需要把所有的状态都改一下。
&amp;nbsp;
今天效率比较低，心不在焉，然后在最后一个转移的地方wa了大半天。插头DP的调试也比较麻烦。所以我还是naive。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const int maxn = 13; const int maxa = 109; const int maxs = 200009; const int mod = 20110520;
bool mp[maxa][maxa]; int n, m, a[maxn], b[maxn], f[2][maxs];
#define fc f[cur] #define fp f[prv] #define doNothing ; inline void mInc(int&amp;amp; a, int b) { a += b; if (a &amp;gt;= mod) a %= mod; }</description>
    </item>
    
    <item>
      <title>20150218 CF292</title>
      <link>/diary/i11rimport_043/</link>
      <pubDate>Tue, 17 Feb 2015 03:42:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_043/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 凌晨的cf到底算头天的还是当天的是个严重的问题。理论上说应该用睡觉作为两天的分界线啊。那万一今天我心情好不睡觉了怎么办。&amp;lt;/p&amp;gt; &amp;nbsp;
虽然我还是太弱。弃b保c暴手速抢到了一个rank22，于是直接从紫变橙了。
&amp;nbsp;
a题是个简单的贪心，把阶乘拆成2,3,5,7的幂的乘积，然后按7532的顺序贪心。至于为啥是对的不知道。
&amp;nbsp;
b题是个简单的贪心，找有没有度数为1的点，然后一直这样连下去看能不能连完。至于为啥是对的不知道。
&amp;nbsp;
c题是个简单的线段树，把区间复制一倍然后推个简单的式子每次只询问不修改。
&amp;nbsp;
d题e题神题不会完全没思路放弃了。然后发现jcvb和xyz111都过了d，看代码像是虚树一样的玩意？没懂。明天去看题解。
&amp;nbsp;
所以有两道题都是凭感觉蒙对的么？太神奇了。
&amp;nbsp;
然后今天只交了3次，比较欣慰，说明代码状态好些了。
&amp;nbsp;
虽然我还是太年轻。</description>
    </item>
    
    <item>
      <title>BZOJ3769 SPOJ8549 BST again</title>
      <link>/oi/i11rimport_044/</link>
      <pubDate>Mon, 16 Feb 2015 22:16:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_044/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 什么鬼。&amp;lt;/p&amp;gt; &amp;nbsp;
很好想的dp。f[i][j]表示深度不超过i且大小为j的二叉树的个数。转移是f[i][j] = ∑(f[i - 1][k] * f[i - 1][j - k - 1])。
&amp;nbsp;
然后直接暴力是O(n3)的。在spoj上能过在bzoj上不能过。在bzoj上得用记忆化搜索来减掉一些无用的东西。虽然我觉得很烦。
&amp;nbsp;
然后试图用fft，发现fft比暴力还慢。然后试图用fnt，然后发现fnt好像不能对1e9+7这种质数用。因为1e9+6只有来一个2。真悲伤。我还是太弱啊。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;cmath&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const int maxn = 609; const int mod = 1000000007;
#define _l (long long int)
int f[maxn][maxn];
int getf(int i, int j) { if (i == 0) return j &amp;lt;= 1; else if (j == 0) return 1; else if (f[i][j] == -1) { f[i][j] = 0; for (int k = 0; k &amp;lt; j; ++ k) f[i][j] = (f[i][j] + _l getf(i - 1, k) * getf(i - 1, j - k - 1)) % mod; } return f[i][j]; }</description>
    </item>
    
    <item>
      <title>20150215 WC2015 Summary</title>
      <link>/diary/i11rimport_045/</link>
      <pubDate>Sat, 14 Feb 2015 19:58:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_045/</guid>
      <description>	&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;div&amp;gt; 低烧，鼻炎以及疼痛的扁桃让我意识不太清醒。依稀记得昨天第一次登上ccf的领奖台。一年来对这一刻憧憬了太多，却也没有想过这样一种结局。&amp;lt;/div&amp;gt; &amp;nbsp; yzjc教授光荣地退役了。一年半一路走过，看到他的成长，在一次又一次的考试中最终生存下来，NOIP，省队，国家集训队。他既是我的好朋友，也是我的好老师。他的勤奋和认真教会了我很多。令我吃惊的是，在知道自己退役的消息之后，他是那样平静，如果是我也许会反应得很激烈吧。我想，那是一个已经实现了自己的梦想的OIer的表现。不论最终是否能站到IOI的赛场上，只要这些年，过得无悔，就已经是一件令人满意的事情了。 &amp;nbsp; 记得去年wc的时候，虽然分数也是个银牌，还超过了不少学长，不过毕竟连超额都不是，只能在台下眼巴巴地看。noi的时候又只有银牌。给d类金牌发奖的时候还激动了一下，然后就只听主持人向我许诺了一张至今也不曾拿到的奖状。人总是要成长的。 &amp;nbsp; 想想这一年，也渐渐地能从只会写骗分和高超的骗分，到能找出一些正解了。虽然wc的题注定不会让任何人有想出正解的机会，甚至就算想到了一些能得到部分分的算法，也会想方设法不给你好结果。我也出过题，出题人和做题人的矛盾，就是这样。 &amp;nbsp; 失败也不是偶然，成功才是。只要有短板，那它总会出现并造成致命一击。曾经无数次地说要平衡要平衡，然后从刷题记录看又只是写了更多的水题和数据结构。似乎总是有各种理由让自己换个时间再写这道不是那么好写的题。总是在下定决心然后把决心抛之脑后。我需要改变。 &amp;nbsp; 省选也不远了。过完寒假就只有一个月了。想当初觉得noip前的一个月也很长，期末考试前的一个月也很长，然而实际上来不及干什么，一个月就过去了。如果没有把任务安排到天的史无巨细的计划，时间是不会等人的。 &amp;nbsp; 学OI也已经整整六年了。指不定哪一场就是最后一场了。既然如此不舍，那就把自己的每一场都当作最后一战去战斗吧。 &amp;nbsp; </description>
    </item>
    
    <item>
      <title>20150213 WC2015 Day1</title>
      <link>/diary/i11rimport_046/</link>
      <pubDate>Thu, 12 Feb 2015 21:01:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_046/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;div&amp;gt; &amp;lt;div&amp;gt; Day1&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; &amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; 考试才开始？不，考试已经结束了。这就是wc的感觉吧。早上起床的时候还感觉信心满满，对未来充满了希望。然后在考场上看到题后感觉心中一紧。再到看到成绩之后差点趴在键盘上。毕竟我还是太年轻了吧。&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; &amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; 考试，有三道题。&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; &amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; 第一题感觉不太会做，但是中间有40分看上去就像是数据结构可以解决的问题。然后思考了一下写了一个可持久化treap来当堆用。然后就debug了半天，虽然最后不会wa了。其实调试的时候已经发现会mle，但是总还是存着那一点侥幸，写了个动态alloc就交了。然后就痛失30分。其实如果认真想想应该能想到更好的做法的。当然还是太懒了。记得徐老师说过，再验证的代码也得写，不写就得死。这次，是侥幸心干掉了我。以后还是要记住，不完美的东西的期望就是0，切记。&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; &amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; 第二题看到小强和阿米吧就不想做了。仔细看了题之后发现的确不太好理解，或者说也不太好做。其实如果认真读 下题写个暴力。可惜了啊。&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; &amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; 然后第三题还是花了两个多小时，虽然最后也没有到集训附后平均分。主要是黑白最短距离那个点卡住了。高度了很久。我觉得是太久没有写各种不同的代码了吧。然后觉得如果认真再想想还是能想出更好的解法的吧。&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; &amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; 今天比较大的一个失误就是把时间分配给第一题了，然后它还挂了。虽然这种事情谁也说不清楚。&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; &amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; 所以说我还是太弱了。如果没有数据结构题的话就只能听天由命了。即使有数据结构题也不一定能拿到，那我还怎样拿分呢？不能这样！&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; &amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; 下午看了成绩出来，很郁闷。坐在操场上看天。有架遥控飞机在天上试飞。不时地掉下来，然后又顽强地冲上天空。其实oi的路也一样，人生的路也一样，不时会有折翼，但是心是属于蓝天的。所以不论摔得再疼，也总要再爬起来，去与这个世界战斗。&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; &amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; 所以？如果不想消失，那就得去反抗。&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; &amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; 另外明天就是2月14号了。祝我爱的人和爱我的人还有许许多多素不相识的人幸福。虽然我相信没有人会看到这段话。&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt; &amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;nbsp;</description>
    </item>
    
    <item>
      <title>20150212 WC2015 Day0.8</title>
      <link>/diary/i11rimport_047/</link>
      <pubDate>Wed, 11 Feb 2015 22:35:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_047/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 最后一天的讲座了。时间好快。&amp;lt;/p&amp;gt; &amp;nbsp;
早上小强的讲座，比去年有趣一些，不过还是只能orz而已。
&amp;nbsp;
下午clj的讲座，果断没有认真听，研究guavas去了。不过其实已经比去年生动多了。后面听了一些也觉得有一些收获，虽然都是陈题。
&amp;nbsp;
晚上先看了死神来了5，然后屯了两道bzoj的水题，然后继续颓。唉。
&amp;nbsp;
总之，明天，加油。for everyone</description>
    </item>
    
    <item>
      <title>20150211 WC2015 Day0.6</title>
      <link>/diary/i11rimport_048/</link>
      <pubDate>Tue, 10 Feb 2015 22:33:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_048/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 居然就超过0.5了。&amp;lt;/p&amp;gt; &amp;nbsp;
今天讲的东西还比较可听啊。
&amp;nbsp;
上午hwd神牛讲的算几。毕竟是专业老师，讲东西就是不一样。比较有梯度，也不像其他人那样照着ppt念，于是比较可听，虽然前面的东西是不是过于有点基础了。不过有一个发现是直接把一个向量看作n维空间里的点求距离应该是比较靠谱的算法。可以向这个方向再试一下。
&amp;nbsp;
下午是沈洋讲构造。还是比较厉害吧。构造这玩意，感觉主要还是看题说话。最后一道题讲到了图形，想起了我们的guavas，什么时候才能搞出来啊。
&amp;nbsp;
晚上试机无话，只是差点忘了vimrc该怎么写。看完了Angel Beats，然后在整理文件也没有写题。是不是太颓废了一点啊不能这样，虽然bzoj挂了不开心。AB这些玩意也就是娱乐一下呗。虽然也没啥很吸引人的地方。以后出来无聊还是多刷题好了。
&amp;nbsp;
毕竟我还是太年轻啊。</description>
    </item>
    
    <item>
      <title>20150210 WC2015 Day0.4</title>
      <link>/diary/i11rimport_049/</link>
      <pubDate>Mon, 09 Feb 2015 22:06:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_049/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 今天好像比昨天下午好一点，吧。&amp;lt;/p&amp;gt; &amp;nbsp;
上午是ydl讲ioi2014的题，感觉还是比较可想的。然后讲图的树分就再见了。感觉好麻烦。然后虽然也比较有用。有趣的是到了下课时间瞬间大伙都精神了冲出去抢饭。感受到了一年半前在jxfls的时候的感觉。
&amp;nbsp;
下午是dhh讲拟阵。这玩意好像还比较好玩，也比较好懂，虽然前一段走神了还是靠idy才搞懂的定义。汗。然后这玩意最大的（目前可知的）意义是证明贪心。然后顺便AC了一道题哈哈。然后继续抢饭。
&amp;nbsp;
晚上的营员交流是一个神奇的kd-tree的应用，虽然很娱乐向。然后是jcvb的生成函数只能看看根本不会。拉格朗日这个名字倒是听说过不少次，不过从来没有弄懂过。过两天有空了好好学习一下。接着是cyb神牛的均摊分析，终于懂得了原来只写路径压缩的dset是不对的，虽然估计还是照写不误。也比较惊讶那么麻烦的放缩和递归的式子居然有人有耐心推出来。最后是两个神牛讲pq-tree。这个比较不可听，感觉好厉害的样子，不过可能用处比较，呵。
&amp;nbsp;
所以毕竟我还是太弱了一些啊。</description>
    </item>
    
    <item>
      <title>BZOJ3105 [cqoi2013]新Nim游戏</title>
      <link>/oi/i11rimport_050/</link>
      <pubDate>Mon, 09 Feb 2015 21:57:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_050/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 今天wc讲的题。主要其实是用拟阵来证明贪心的正确性。就构造一下就好了。不选的集合构成一个拟阵的基，如果基不能异或出0就是线性无关的。然后按照拟阵的贪心方法挨个加。&amp;lt;/p&amp;gt; &amp;nbsp;
策略是从大到小排个序能不选就不选，用异或消元来判断一下就好了。许久没有写了，还好没有搞忘。
&amp;nbsp;
代码还是比较短的，开心ing。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
typedef long long dint; #ifdef WIN32 #define lld &amp;ldquo;%I64d&amp;rdquo; #else #define lld &amp;ldquo;%lld&amp;rdquo; #endif #define _l (long long int)
const int maxn = 109;
int n, a[maxn], b[maxn], c[maxn], t; dint s;
bool hasZero() { for (int i = 0; i &amp;lt; t; ++ i) b[i] = c[i]; for (int i = 31, j = 0; i &amp;gt;= 0 &amp;amp;&amp;amp; j &amp;lt; t; &amp;ndash; i) { for (int k = j; k &amp;lt; n; ++ k) if ((b[k] &amp;gt;&amp;gt; i) &amp;amp; 1) { swap(b[k], b[j]); break; } if ((b[j] &amp;gt;&amp;gt; i) &amp;amp; 1) { for (int k = j + 1; k &amp;lt; n; ++ k) if ((b[k] &amp;gt;&amp;gt; i) &amp;amp; 1) { b[k] ^= b[j]; if (!</description>
    </item>
    
    <item>
      <title>20150209 WC2015 Day0.2</title>
      <link>/diary/i11rimport_051/</link>
      <pubDate>Mon, 09 Feb 2015 08:04:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_051/</guid>
      <description>	&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;div&amp;gt; 昨天晚上一直在搞wifi也没有搞定，把写日记都搞忘了。决定以后安安心心地用流量。&amp;lt;/div&amp;gt; &amp;nbsp; wc第一天。因为考试要被称为day1，所以只好压缩一下天的编号了。 &amp;nbsp; 上午xyz大爷讲动态图。本来只会O(m^2)的算法的。居然变成了O(sqrt(m))，是厉害。不过就考试的时候千万不要让我写。感觉好麻烦。然后后面5道cf之前讲过，虽然好像有点忘了。不能天天睡觉啊。 &amp;nbsp; 下午的素数测试真的只有发呆了。大概就是怎么怎么暴算怎么怎么怎么睁着眼就睡着了。确实是前沿科学，不过AKS大概在1s内是跑不出10^18的素数的。怎么玩啊。 &amp;nbsp; 晚上的营员交流比白天有趣，有点后悔上回在寝室打游戏。VFK玩转仙人掌！他玩转了我玩不溜啊。还是强行转换成LCT维护，1000行代码24KB怎么能看。后面讲的东西稍微好些，不过还是挺吓人的。 &amp;nbsp; 然后pb.ds这玩意哪天试试，不过还是要小心不要在考场上作死。毕竟敲个splay啥的也要不到多久是吧。而且毕竟是系统封装的，性能啥的估摸着还是比不过手写吧？毕竟咱们可是会丧心病狂常数优化的民族。 &amp;nbsp; 然后讲了平面图？呼。呼。 &amp;nbsp; 然后写oj的哥们orz。感觉我们自己的oj只能叫校内文件共享网站啊。啥沙箱没有，评测方式也比较单一，虽然我估计是很难遇到那样的非传统题的。然后也没有有数据库也没有用远程连接。 &amp;nbsp; 毕竟我还是太弱啊。明天不要睡觉不要睡觉不要睡觉。 </description>
    </item>
    
    <item>
      <title>BZOJ1453 [Wc]Dface双面棋盘</title>
      <link>/oi/i11rimport_052/</link>
      <pubDate>Sat, 07 Feb 2015 15:07:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_052/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 有离线镜像还是能省不少流量。开心。不过流量还是用得飞快啊。&amp;lt;/p&amp;gt; &amp;nbsp;
这就是个cdq重构的题。学习了前几天xyz大爷讲的扔线段树的做法，省了不少代码。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
struct node { int v, c; node *next; }; struct seg { int l, r; node *head; seg *ls, *rs; };
const int maxa = 209; const int maxn = 40009; const int maxm = 10009; const int maxnd = maxn * 23; const int mov[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};</description>
    </item>
    
    <item>
      <title>20150208 WC2015 Day-1</title>
      <link>/diary/i11rimport_053/</link>
      <pubDate>Sat, 07 Feb 2015 11:45:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_053/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 报道日。看到了很多人，的名字。&amp;lt;/p&amp;gt; &amp;nbsp;
然后在宿舍里拿手机连网。
&amp;nbsp;
证明我还是以上网的yeah。</description>
    </item>
    
    <item>
      <title>HDU5173 GTY&#39;s game II</title>
      <link>/oi/i11rimport_054/</link>
      <pubDate>Fri, 06 Feb 2015 23:10:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_054/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; bc的题。今天bc又挂了。这题没有写完，然后b题fst了。伤心啊。&amp;lt;/p&amp;gt; &amp;nbsp;
其实思路比较简单。直接链剖dfs序上把所有区间找出来swap就好了。不过代码实现起来还是比较麻烦的，很容易绕晕。加上smt久了没写手生了，于是就调了一晚上。唉，我还是太年轻了。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstdlib&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
struct node { int v, s, sz, w, rv; node ls, rs; inline void update() { sz = 1; s = v; if (ls) { sz += ls-&amp;gt; sz; s += ls-&amp;gt; s; } if (rs) { sz += rs-&amp;gt; sz; s += rs-&amp;gt; s; } } inline void fix() { if (rv) { swap(ls, rs); if (ls) ls-&amp;gt; rv ^= 1; if (rs) rs-&amp;gt; rv ^= 1; rv = 0; } } }; typedef pair &amp;lt;node, node&amp;gt; npr;</description>
    </item>
    
    <item>
      <title>20150205~07</title>
      <link>/diary/i11rimport_055/</link>
      <pubDate>Fri, 06 Feb 2015 16:30:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_055/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 这两天wa傻了都忘写总结了。&amp;lt;/p&amp;gt; &amp;nbsp;
5号考试。乱写骗分弄了个rank3。mhy直接暴力过a题，怒拿rank1，orz。
&amp;nbsp;
6号lc讲课。没怎么听。都去写题去了。
&amp;nbsp;
今天考试。太神了不可做。第一题只会暴力和最简单的矩阵。不，最简单的矩阵还推错了。第二题题面有错再见。第三题神题没法做再见。
&amp;nbsp;
看来我还是太弱了。</description>
    </item>
    
    <item>
      <title>BZOJ2642 Pku3968 Jungle Outpost</title>
      <link>/oi/i11rimport_056/</link>
      <pubDate>Wed, 04 Feb 2015 21:28:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_056/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 看mhy写了好几天了啊。然后研究了一下，居然过得比他早。&amp;lt;/p&amp;gt; &amp;nbsp;
首先敌人一定可以炸连续的一段。然后就是要看炸掉任意连续一段之后还有没有剩下的公共部分，既半平面交。
&amp;nbsp;
然后我yy出了一个半平面交的做法。找出一条基准直线，按方向顺时针方向排序。然后按照正常半平面交的方法根据栈顶两个元素和当前直线的位置关系判断是否需要退栈。然后当找到一条与基准直线的角度大于等于π的直线（直线是有向的，也可以说是成负角）且它把栈里退到只剩基准直线一条的时候，这些半平面没有交。否则这些半平面有交。
&amp;nbsp;
至于证明嘛，我也不会（挠头），毕竟是感受出来的。然后感觉这次代码写得比较漂亮，开心。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cmath&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
inline double sqr(double x) { return x * x; }
struct point { double x, y; inline point() {} inline point(double x0, double y0) { x = x0, y = y0; } inline void read() { scanf(&amp;quot;%lf%lf&amp;quot;, &amp;amp;x, &amp;amp;y); } }; struct vect { double x, y; inline vect() {} inline vect(double x0, double y0) { x = x0, y = y0; } inline vect(point a, point b) { x = b.</description>
    </item>
    
    <item>
      <title>BZOJ1815 [Shoi2006]color 有色图</title>
      <link>/oi/i11rimport_057/</link>
      <pubDate>Wed, 04 Feb 2015 17:46:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_057/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 一道burnside，做了几次之后感觉比较经典了。然后发现网上居然没有题解。&amp;lt;/p&amp;gt; &amp;nbsp;
枚举正整数拆分，既每个质换的长度。然后枚举gcd算每类置换的贡献。再用错排公式来算每类置换的数量。然后求和。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
#define _l (long long int)
const int maxn = 63;
int n, m, mod, ans, g[maxn][maxn]; int sq[maxn], tq, fac[maxn], finv[maxn], vinv[maxn];
int modPow(int a, int x) { int s(1); for (; x; x &amp;gt;&amp;gt;= 1, a = _l a * a % mod) if (x &amp;amp; 1) s = _l s * a % mod; return s; }</description>
    </item>
    
    <item>
      <title>20150204</title>
      <link>/diary/i11rimport_058/</link>
      <pubDate>Tue, 03 Feb 2015 20:57:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_058/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 今天是xyz大爷讲课。感觉讲的好多东西的时间复杂度看上去好看，实际实现起来还是比较麻烦的。尤其是对于我这种人来说。&amp;lt;/p&amp;gt; &amp;nbsp;
停停停不是昨天才说了多难的代码都得写吗？
&amp;nbsp;
然后今天把出的题给搞定了。不过据说要一个月后才能骗到钱。不开心。
&amp;nbsp;
所以我还是年轻啦。抓紧时间玩玩guavas吧。</description>
    </item>
    
    <item>
      <title>20150203</title>
      <link>/diary/i11rimport_059/</link>
      <pubDate>Mon, 02 Feb 2015 23:47:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_059/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 再次考试。考得稍有起色。&amp;lt;/p&amp;gt; &amp;nbsp;
做出了一道数据结构题，虽然是拿分块水的。
&amp;nbsp;
第二题想了不少东西不过都不对。ETT不会。然后正解比较神。平面图求域？也不会。
&amp;nbsp;
答案提交题比较逗，checker被很厉害的某些同学直接反编译了。现装了wine，为了解决字符集的问题最后还用vbox装了个xp。然后也发现没有多大用处。也就写了最简单的两个点，算是标准暴力分吧。
&amp;nbsp;
下午徐老师讲的东西还是比较有启发性的。竞赛，比的不仅仅是知识和能力以及思维，还有策略。当然前三者是基础。但是在考试之前，更多的还是要明白，心静手热才是最好的状态。
&amp;nbsp;
晚上吃了肥牛。吃的时候一时爽，整晚上都是酱油味，略不爽。
&amp;nbsp;
看到了zhx写的情系母校学法指导。觉得竞赛的生活，唉。无言以表。
&amp;nbsp;
然后花了一晚上出题的数据，还找到了队友帮我验题。然后发现我的压轴题是不是有点太难写了。汗。
&amp;nbsp;
所以毕竟我还是太年轻啊。</description>
    </item>
    
    <item>
      <title>20150202</title>
      <link>/diary/i11rimport_060/</link>
      <pubDate>Sun, 01 Feb 2015 21:30:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_060/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 今天休息。&amp;lt;/p&amp;gt; &amp;nbsp;
上午去了西湖，租了三辆自行车。感觉自己通电发光了，1018W呢。试图从桥上冲下去拍双手脱把，虽然没拍到自己。虽然平时不骑车，也从来没有骑车上过街，不过其实骑车玩还是多好玩的。
&amp;nbsp;
中午去书吧，吃饭。好文艺。没想到闹市边上也会有这样安静之所。下午去步行街买了点礼品。
&amp;nbsp;
下午晚上写了2道题。紫荆花没有花想像中的那么多时间。陶陶的题最后发现是在逗。效率还是低啊。
&amp;nbsp;
出题的任务也确定了，又得奋斗了。</description>
    </item>
    
    <item>
      <title>BZOJ2401 陶陶的难题I</title>
      <link>/oi/i11rimport_061/</link>
      <pubDate>Sun, 01 Feb 2015 21:18:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_061/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 推了半天，发现还是得sqrt，过不到啊。&amp;lt;/p&amp;gt; &amp;nbsp;
然后发现与经典的问题相比，就是n=n。然后这不是做过的那个LCM sum的前缀和就完了嘛。傻了。
&amp;nbsp;
然后第一次MLE是因为明明压了8位，还是开了30长的数组。第二次WA是因为高精输出的时候%08d写成了%8d。是不是明天又要逗极而死了。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
typedef long long dint;
#define _l (long long int)
const int maxlen = 7; const dint base = 1e8; struct BigInt { dint dig[maxlen], len; BigInt() { len = 0; } void set(dint x) { dig[0] = x; len = 1; while (dig[len - 1] &amp;gt;= base) { dig[len] = dig[len - 1] / base; dig[len - 1] %= base; ++ len; } } void copy(const BigInt&amp;amp; x) { len = x.</description>
    </item>
    
    <item>
      <title>BZOJ3435 [Wc2014]紫荆花之恋</title>
      <link>/oi/i11rimport_062/</link>
      <pubDate>Sun, 01 Feb 2015 20:07:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_062/</guid>
      <description>想起去年在考场上完全没有思路不想写数据结构于是骗了30分。现在想想当初还是naive。
&amp;nbsp;
这题看上去就是点分治。因为要动态加点所以要动态。然后利用替罪羊树的方法重构树上的一团东西（不能叫团，否则命名重复了）。
&amp;nbsp;
本来以为要写很久，结果也没写多久。奇怪的是，把maintain展开到insert里面之后就跑得飞快了，否则过不到而且根本跑不下来9和10。又丑了郁闷。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cctype&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const int buf_len = 4000; const size_t buf_size = buf_len * sizeof(char); char buf[buf_len], *bufb(buf), *bufe(buf + 1); #define readBuf() { if (++ bufb == bufe) bufe = (bufb = buf) + fread(buf, 1, buf_size, stdin); } #define readInt(x) { register int s(0); do { readBuf(); } while (!isdigit(*bufb)); do { s = s * 10 + *bufb - 48; readBuf(); } while (isdigit(*bufb)); x = s; }</description>
    </item>
    
    <item>
      <title>20150201</title>
      <link>/diary/i11rimport_063/</link>
      <pubDate>Sat, 31 Jan 2015 23:27:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_063/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 白天JZP讲课。上午讲数学之类的玩意然后又走神了发现听不懂。&amp;lt;/p&amp;gt; &amp;nbsp;
下午讲了好多题都是做过的。比较开心。然后给noi-linux装上了ati的官方驱动，分辨率终于正常了。然后把gnome2的特效开到最高之后竟然发现窗口移动有果冻一样的效果，玩了好久。
&amp;nbsp;
晚上打hiho，果然又发现了jcvb的身影。好不容易暴手速敲完b，然后发现他早过了，虽然后来发现是我写复杂了，晕。然后当我敲完a的时候发现他敲完了c。然后c的分是a的三倍，晕。最后还是硬把c给yy出来了，感觉还是一道好题啊，以后出题啥的可以考虑。毕竟期望题一般我也懒得想。然后d题直接放弃了。感觉今天的hiho是在宣传一个叫啥忘了的卡牌游戏？然后a和d的题目质量稀撇。
&amp;nbsp;
三道题的做法么。
&amp;nbsp;
a题直接dfs就好了。数据范围太小了点。虽然坑点略多。
&amp;nbsp;
b题就是维护一下左边的一堆玩意的啥乘积和一样的玩意？水水的线段树，发现每次我写线段树都写得比别人麻烦。
&amp;nbsp;
c题比较好玩。用f[i]表示i号点与它的父亲点不同色的概率，也就是它对答案造成+1贡献的概率，然后每次bfs一下，按它和它的父亲距起点的距离讨论一下就好了。
&amp;nbsp;
于是我还是太弱了又被吊打了。
&amp;nbsp;
明天休息，开心。</description>
    </item>
    
    <item>
      <title>POJ2154 Color</title>
      <link>/oi/i11rimport_064/</link>
      <pubDate>Sat, 31 Jan 2015 23:18:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_064/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 首先是burnside，对于旋转x下都要当作一个置换，所以总共有n个。然后第i个的不动点数量等于n&amp;lt;sup&amp;gt;gcd(n,i)&amp;lt;/sup&amp;gt;，然后统计一下个数是phi(gcd(n,i))个。&amp;lt;/p&amp;gt; &amp;nbsp;
然后发现要用奇奇怪怪的东西来求phi。我用的方法是分解质因数然后DFS，跑得飞快。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
#define _l (long long int)
const int maxn = 50009;
int n, mod; int tp, pn[maxn], phi[maxn]; bool pr[maxn];
void pre() { memset(pr, 0, sizeof(pr)); tp = 0; phi[1] = 1; for (int i = 2; i &amp;lt; maxn; ++ i) { if (!pr[i]) { pn[tp ++] = i; phi[i] = i - 1; } for (int j = 0; j &amp;lt; tp &amp;amp;&amp;amp; i * pn[j] &amp;lt; maxn; ++ j) { pr[i * pn[j]] = 1; if (i % pn[j] == 0) { phi[i * pn[j]] = phi[i] * pn[j]; break; } else phi[i * pn[j]] = phi[i] * phi[pn[j]]; } } }</description>
    </item>
    
    <item>
      <title>20150131</title>
      <link>/diary/i11rimport_065/</link>
      <pubDate>Fri, 30 Jan 2015 22:26:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_065/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 又是考试的一天。JZP出的题ORZ。&amp;lt;/p&amp;gt; &amp;nbsp;
因为有答案提交题所以其它题基本都弃疗了，不过答案提交题做得也比较惨。
&amp;nbsp;
第一题是burnside套burnside。最后15分钟的时候把内层写了，外层太难想就写了个暴力，然后用考试的1/20的时间得了接近一半的分。
&amp;nbsp;
第二题三维算几看上去就恶心。直接乱骗分显然是不行的。然后听讲之后发现我自己想得还是比较麻烦，解析几何里面有一些更简单的做法。
&amp;nbsp;
第三题还是停留在纯随机的水平上，也没有仔细分析数据，于是嘛，再见了。
&amp;nbsp;
晚上出去吃饭没有打成BC，然后回来之后看了下题发现不打是英明的因为我都不会做。
&amp;nbsp;
毕竟我还是太弱了。</description>
    </item>
    
    <item>
      <title>20150130</title>
      <link>/diary/i11rimport_066/</link>
      <pubDate>Thu, 29 Jan 2015 20:57:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_066/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 立杰讲课orz。ioi金牌，讲的东西也比较深。因为去年wc的时候直接睡过去了，心怀欠意，于是还是认真做了下笔记。&amp;lt;/p&amp;gt; &amp;nbsp;
讲了一堆东西。期望，DS，DP和DP套DP，网络流。然后感觉还是有很多新的不同的思路。以后要认真听课啊。而且发现做笔记是一个让自己不走神的好方法。勤动笔。
&amp;nbsp;
晚上去街上逛了一下，其实也只是到另一个街区里绕了点路而已。然后吃了碗大概有点辣味的酸菜牛肉面。开心。
&amp;nbsp;
然后晚上就调一道水水的MIDDLE就花了两个多小时。学会了函数指针的用法，感觉以后做标记维护比较复杂的题在代码上会稍微好些。然后只是在纠结一个很小的问题就是到底怎么二分，一直没有理清楚。
&amp;nbsp;
所以我还是太弱了。</description>
    </item>
    
    <item>
      <title>BZOJ2653 middle</title>
      <link>/oi/i11rimport_067/</link>
      <pubDate>Thu, 29 Jan 2015 20:50:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_067/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 老久之前就看到过的题，不过不会做。今天晚上也是花了差不多俩小时才调过，虽然大概一个半小时都在纠结二分怎么写的问题。我没救了。&amp;lt;/p&amp;gt; &amp;nbsp;
考虑经典的中位数二分，是把≤x的数字取-1，&amp;gt;x的数取1，然后算最大子串看是否大于-1或1中的某一个，具体要看题目要求偶数是取上整还是下整什么的。
&amp;nbsp;
然后这题就把所有东西排序之后拿可持久化线段树把这个序列搞出来，然后照着之前的思路二分就好了。线段树用来维护最大和最小前缀和。
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
struct dat { int sm, s; }; struct seg { int l, r; dat v[2]; seg *ls, *rs; };
#define _l (long long int)
typedef pair &amp;lt;int, int&amp;gt; vpr; typedef dat(*dat_mf)(const dat&amp;amp;, const dat&amp;amp;);
const int maxn = 20009; const int maxnd = maxn * 19; const dat null_str = {0, 0}; const dat neg_str0 = {-1, -1}; const dat neg_str1 = {-1, -1}; const dat pos_str0 = {1, 1}; const dat pos_str1 = {1, 1};</description>
    </item>
    
    <item>
      <title>BZOJ3351 [ioi2009]Regions</title>
      <link>/oi/i11rimport_068/</link>
      <pubDate>Wed, 28 Jan 2015 18:44:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_068/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; ioi的数据结构题，果然还是比较BT的。&amp;lt;/p&amp;gt; &amp;nbsp;
做法是对颜色分开，大的颜色预处理，小的颜色直接暴力。
&amp;nbsp;
然后一个小错又坑了好久。我真的没救了。
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstdlib&amp;gt; #include &amp;lt;cctype&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const int buf_len = 4000; const size_t buf_size = buf_len * sizeof(char); char buf[buf_len], *bufb(buf), *bufe(buf + 1); #define readBuf() { if (++ bufb == bufe) bufe = (bufb = buf) + fread(buf, 1, buf_size, stdin); } #define readInt(x) { register int s(0); do { readBuf(); } while (!isdigit(*bufb)); do { s = s * 10 + *bufb - 48; readBuf(); } while (isdigit(*bufb)); x = s; }</description>
    </item>
    
    <item>
      <title>20150129</title>
      <link>/diary/i11rimport_069/</link>
      <pubDate>Wed, 28 Jan 2015 16:33:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_069/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 又考挂了。&amp;lt;/p&amp;gt; &amp;nbsp;
应该是早就能预测到这一点的。只是自己还太naive了而已。
&amp;nbsp;
记得很久之前就给自己下过定义，只会复制，不会创造。只是个匠人的命。现在想想，也是。
&amp;nbsp;
大概真的是省选之后就可以回班上认真上课了吧。到时候不要再回实验楼。
&amp;nbsp;
发现自己根本没有办法集中注意力。也不知道自己到底在干啥？
&amp;nbsp;
是该被淘汰了。</description>
    </item>
    
    <item>
      <title>20150128</title>
      <link>/diary/i11rimport_070/</link>
      <pubDate>Tue, 27 Jan 2015 21:04:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_070/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 听了一天的课。很多都是和计算几何有关的东西。计算几何印象中一般都是省选里的压轴题，代码量恶心。然后也比较orz。好多东西都没听懂，且有催眠的效果，于是下午果(bei)断(po)选择弃疗自己写题。&amp;lt;/p&amp;gt; &amp;nbsp;
上午讲的杂题。然后simpson啥的，然后就去写lemon tree了。感觉这个还是非常有用的，而且代码量也令人开心。然后也讲到了我做过的原题，但是又想不起来怎么做了。囧。看来我还是要xxxx啊。
&amp;nbsp;
下午讲了一些线性代数相关的东西。矩阵行列式啥的基本没听懂，待会再去消化一下。然后三维算几，这个太恶心了。然后才明白同桌用矩阵算叉积是多么厉害。还发现平面的法向量的求法，以后如果还有机会遇到解析几何题的话可以试试。再有就是那个矩阵求生成树啥的，比较神奇。然后要先补一下行列式。
&amp;nbsp;
晚上把simpson写了，然后xxxx。
&amp;nbsp;
明天要考试，开心。
&amp;nbsp;
所以毕竟我还是太年轻了。</description>
    </item>
    
    <item>
      <title>BZOJ1502 [NOI2005]月下柠檬树</title>
      <link>/oi/i11rimport_071/</link>
      <pubDate>Tue, 27 Jan 2015 20:55:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_071/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 今天几乎讲了一天的算几。或者说能听的只有算几。然后就去做了一道基础题。&amp;lt;/p&amp;gt; &amp;nbsp;
刚开始的时候比较naive，把相交的情况想简单了，打算直接上数学，然后悲剧地发现还有其它的不好算交点的情况，于是就去写simpson了。
&amp;nbsp;
simpson就是一个估计用的，s = (4 * f(mid) + f(l) + f(r))*(r-l)/6。至于为啥是对的就不知道了。反正比较能用。然后每次直接去扫一遍所有能交的地方，取max就行了，比挨个算交点方便许多。
&amp;nbsp;
然后第一次写，代码也比较乱。
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;cmath&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const int maxn = 509; const double pi = asin(1) * 2; const double eps = 1e-6;
#define x1 x1 #define x2 x2 #define y1 y1 #define y2 y2
int n; double tht, x[maxn], h[maxn], r[maxn]; double crd[maxn]; double x1[maxn], x2[maxn], y1[maxn], y2[maxn]; bool c[maxn];</description>
    </item>
    
    <item>
      <title>BZOJ2816 [ZJOI2012]网络</title>
      <link>/oi/i11rimport_072/</link>
      <pubDate>Tue, 27 Jan 2015 20:51:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_072/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 听说是水水的splay，果然是。&amp;lt;/p&amp;gt; &amp;nbsp;
乍一看要用lct，然后因为度数只有2，所以肯定是一条链。然后就直接用splay来维护。然后因为少写了句splay(v)导致多调了至少一节课的时间。我没救了。
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; #include &amp;lt;map&amp;gt; using namespace std;
#define upmax(a,b) { if (a &amp;lt; b) a = b; }
struct splay_node { int vl, vm, rv; splay_node *pt, *ls, *rs; inline void update() { vm = vl; if (ls) upmax(vm, ls-&amp;gt; vm); if (rs) upmax(vm, rs-&amp;gt; vm); } inline void fix() { if (rv) { swap(ls, rs); if (ls) ls-&amp;gt; rv ^= 1; if (rs) rs-&amp;gt; rv ^= 1; rv = 0; } } };</description>
    </item>
    
    <item>
      <title>BZOJ3870 Our happy ending</title>
      <link>/oi/i11rimport_073/</link>
      <pubDate>Tue, 27 Jan 2015 20:48:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_073/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 立杰出的题，orz。&amp;lt;/p&amp;gt; &amp;nbsp;
一个时间比较微妙的状压DP。用一个二进制状态表示0~k中哪些数已经可以被表示出来了，然后大于k的数直接乘，因为对状态不产生影响。
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
#define pow2(x) (1&amp;lt;&amp;lt;(x)) #define _l (long long int)
const int maxn = 21; const int maxb = pow2(maxn) + 9; const int mod = 1e9 + 7;
int n, k, l, f[2][maxb], zu, va;
#define incm(a,b) { a += b; if (a &amp;gt;= mod) a %= mod; }
int sov() { int prv(0), cur(1); memset(f, 0, sizeof(f)); va = max(0, l - k) + 1; zu = pow2(k + 1) - 1; f[cur][1] = 1; for (int ti = 0; ti &amp;lt; n; ++ ti) { swap(cur, prv); for (int i = zu; i; &amp;ndash; i) f[cur][i] = 0; for (int i = zu; i; &amp;ndash; i) if (f[prv][i]) { for (int j = 1; j &amp;lt;= k; ++ j) { int zn((i | (i &amp;lt;&amp;lt; j)) &amp;amp; zu); incm(f[cur][zn], f[prv][i]); } incm(f[cur][i], _l f[prv][i] * va % mod); } } int ans(0); for (int i = zu, e = pow2(k); i &amp;gt;= e; &amp;ndash; i) incm(ans, f[cur][i]); return ans; }</description>
    </item>
    
    <item>
      <title>BZOJ2815 [ZJOI2012]灾难</title>
      <link>/oi/i11rimport_074/</link>
      <pubDate>Tue, 27 Jan 2015 20:45:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_074/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 灭绝树的模板题么。之前不知道这题，差点当原创题出出去了。&amp;lt;/p&amp;gt; &amp;nbsp;
好像有不少人不知道这东西的样子？orz zhx。
&amp;nbsp;
灭绝树只有一句口诀：一个东西的父亲是所有入边的另一端的点的LCA。
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
struct edge { int t; edge *next; };
const int maxn = 70009; const int maxl = 19; const int maxe = 2000009;
int n, ind[maxn], oud[maxn], tpo[maxn], ath[maxn][maxl], sz[maxn], d[maxn]; edge *ha[maxn], *hr[maxn], *ht[maxn];
inline void addEdge(edge** head, int u, int v) { edge* ep = new edge; ep-&amp;gt; t = v; ep-&amp;gt; next = head[u]; head[u] = ep; }</description>
    </item>
    
    <item>
      <title>BZOJ3251 树上三角形</title>
      <link>/oi/i11rimport_075/</link>
      <pubDate>Mon, 26 Jan 2015 23:00:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_075/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 原来在win下也有敲回车的bug。开心。&amp;lt;/p&amp;gt; &amp;nbsp;
这题坑啊。暴力还是很好想的，如果个数超过几十个的话就肯定有解了。比较坑的是两边之和大于第三边，边权231-1然后加起来就超过int的范围了。连WA若干次再见。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
struct edge { int t; edge *next; };
const int maxn = 100009; const int maxc = 88;
int n, m, v[maxn], d[maxn], fa[maxn], c[maxc]; edge *head[maxn], elst[maxn &amp;lt;&amp;lt; 1], *ep(elst);
void bfs() { static int q[maxn]; int hd(0), tl(1); q[0] = 1; memset(d, 0, sizeof(d)); d[1] = 1; while (hd &amp;lt; tl) { int p(q[hd ++]); for (edge* e = head[p]; e; e = e-&amp;gt; next) if (!</description>
    </item>
    
    <item>
      <title>20150127</title>
      <link>/diary/i11rimport_076/</link>
      <pubDate>Mon, 26 Jan 2015 17:19:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_076/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 毕竟我太年轻。&amp;lt;/p&amp;gt; &amp;nbsp;
xyz大爷的题，感觉是ds专题练习。然后自己逗了。
&amp;nbsp;
第一题神构造，也没认真想。
&amp;nbsp;
第二题写完debug完大概用了2个小时，然后就一直在改常数，也没有改下来。然后TLE到和暴力一个分。然后整场考试就再见了。然后下午回来发现是估计距离的时候有两个sqr写成了abs。真想一头撞死。这个错不会导致wa也不会导致tle也不会导致re，只会默默地给你增加时间复杂度，然后还让你感觉似乎好像就是常数的问题。太可怕了。
&amp;nbsp;
第三题比较神。lct果然没法做，要把询问拿来分块。好麻烦喽。然后自己的10分都没拿到。再见。
&amp;nbsp;
一道题把自己坑了，然后挂了，那就很悲剧了。wc这种考试还是要讲究策略的。还要有高超的debug技巧。</description>
    </item>
    
    <item>
      <title>20150126</title>
      <link>/diary/i11rimport_077/</link>
      <pubDate>Sun, 25 Jan 2015 22:43:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_077/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 来到了千里之外的海边。（好像也不是海边）&amp;lt;/p&amp;gt; &amp;nbsp;
早晨坐了飞机坐出租。
&amp;nbsp;
下午去逛了下西湖，然后回去写了点题，然后去xj各种orz。
&amp;nbsp;
然后晚上继续写题。发现自己还是异常的傻。
&amp;nbsp;
第一次在另一个城市过这么久。呵。fighting。</description>
    </item>
    
    <item>
      <title>BZOJ2419 电阻</title>
      <link>/oi/i11rimport_078/</link>
      <pubDate>Sun, 25 Jan 2015 21:33:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_078/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 记得这是高一的时候ty同学和我说的东西了。然后现在才解决，可以打败上帝造题的七分钟，荣登解决时间最长的题目了。&amp;lt;/p&amp;gt; &amp;nbsp;
其实也就是一个高斯消元，用电势来列方程。不过高斯消元写得不熟，平时有空都写ds的题去了。以后不能再这样了。
&amp;nbsp;
用自己的代码高亮脚本了，虽然还不完善不过还是很开心的。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;cmath&amp;gt; #include &amp;lt;cstdlib&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const int maxn = 109; const double inf = 1e100; const double eps = 1e-8;
double x[maxn], a[maxn][maxn], b[maxn][maxn]; int n, m, perm[maxn];
int main() { #ifndef ONLINE_JUDGE freopen(&amp;ldquo;in.txt&amp;rdquo;, &amp;ldquo;r&amp;rdquo;, stdin); #endif
srand(19970911); while (scanf(&amp;quot;%d%d&amp;quot;, &amp;amp;amp;n, &amp;amp;amp;m) != EOF) { for (int i = 1; i &amp;amp;lt;= n; ++ i) perm[i] = i; if (n &amp;amp;gt; 2) random_shuffle(perm + 2, perm + n); for (int i = 1; i &amp;amp;lt;= n; ++ i) for (int j = 1; j &amp;amp;lt;= n; ++ j) if (i == j) a[i][j] = 0; else a[i][j] = inf; while (m --) { int u, v; double p; scanf(&amp;quot;%d%d%lf&amp;quot;, &amp;amp;amp;u, &amp;amp;amp;v, &amp;amp;amp;p); u = perm[u]; v = perm[v]; if (u == v) continue; a[u][v] = 1.</description>
    </item>
    
    <item>
      <title>20150125</title>
      <link>/diary/i11rimport_079/</link>
      <pubDate>Sat, 24 Jan 2015 22:24:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_079/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 又考试了。明天就要走了。&amp;lt;/p&amp;gt; &amp;nbsp;
早上的题大概就是告诉我，没有数据结构我就完蛋了，有数据结构我也有可能会完蛋。
&amp;nbsp;
第一题burnside好神，估计也不会想到。这个内容平时的确是忽视了。
&amp;nbsp;
第二题不是bzoj上有差不多的原题么。所以也没怎么想就敲了个LCT+主席树。然后发现常数还是比较大的。什么时候要好好研究一下怎么把splay的常数搞小。然后也还是花了好一会才写对。毕竟久了没写有点手生啊。（不是才一个多月而已么）
&amp;nbsp;
第三题，扩展最小圆覆盖。又明确了一下算法，之前掌握得也比较粗。然后觉得自己也不太能想到正解。毕竟是大神的题。
&amp;nbsp;
然后下午颓废，终于搞出了一个LaTeX的题的版，虽然还处在丑暴的阶段。然后被zhx果断扔掉了。
&amp;nbsp;
晚上收拾东西，又准备出发了。
&amp;nbsp;
估计许久敲不到青轴了。最后狠狠地敲一下。</description>
    </item>
    
    <item>
      <title>BZOJ3136 [Baltic2013]brunhilda</title>
      <link>/oi/i11rimport_080/</link>
      <pubDate>Fri, 23 Jan 2015 21:32:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_080/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 决心写一道usaco之外的题，于是就挑中了这道。&amp;lt;/p&amp;gt; &amp;nbsp;
为啥这编辑器有BUG，每次按回车要向下跳？
&amp;nbsp;
发现可以预处理DP。f_i表示第i个数被砍完需要最少多少刀。对于每一个i，设p_i是它的质因子里最大的一个在给定集合里的，那么它可以转移到(i+1,i+p_i)这个范围。然后f_i显然不减，所以用单调队列之类的玩意。
&amp;nbsp;
然后卡着时间限制过了。不知道前面那些秒跑的人是怎么搞的。
&amp;nbsp;
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespace std;
const int maxn = 10000009; const int maxm = 100009;
int k[maxn], f[maxn], n, m, q, p[maxm], v[maxm];
void pre(int n) { sort(p, p + m); memset(k, 0, sizeof(k)); for (int i = 0; i &amp;lt; m; ++ i) if (!i || p[i] != p[i - 1]) for (int j = 0; j &amp;lt;= n; j += p[i]) k[j] = p[i];</description>
    </item>
    
    <item>
      <title>20150124</title>
      <link>/diary/i11rimport_081/</link>
      <pubDate>Fri, 23 Jan 2015 20:41:41 +0000</pubDate>
      
      <guid>/diary/i11rimport_081/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 颓废了一天。&amp;lt;/p&amp;gt; &amp;nbsp;
白天也就写了一道BZOJ的水题，然后胡乱改了几个页面。
&amp;nbsp;
然后晚上去BC。不知道是不是因为不能在连续两场比赛里面发挥得比较好。于是再见了。虽然现在还没完。
&amp;nbsp;
A和B分别因为逗错了一次，然后C想了一个多小时没想出来，D完全没有思路。再见。
&amp;nbsp;
看来是学太久学傻了啊。
&amp;nbsp;
要小心了。
&amp;nbsp;</description>
    </item>
    
    <item>
      <title>BZOJ3314 [Usaco2013 Nov]Crowded Cows</title>
      <link>/oi/i11rimport_082/</link>
      <pubDate>Fri, 23 Jan 2015 10:51:41 +0000</pubDate>
      
      <guid>/oi/i11rimport_082/</guid>
      <description>&amp;lt;div class=&amp;quot;post_brief&amp;quot;&amp;gt;&amp;lt;p&amp;gt; 又搬blog。发现这里可以自定义css之后就果断了。&amp;lt;/p&amp;gt; &amp;nbsp;
写道水题试试。set的应用。然后还写丑WA了两次，我没救了。
&amp;nbsp;
代码高亮是坏了吗？不要吓我。
&amp;nbsp;
决定直接用oj7的代码版了，没有高亮就算了。
#include &amp;lt;cstdio&amp;gt; #include &amp;lt;algorithm&amp;gt; #include &amp;lt;set&amp;gt; using namespace std;
typedef multiset &amp;lt;int&amp;gt; rb_tree; typedef rb_tree :: iterator rb_node; typedef pair &amp;lt;int, int&amp;gt; cow;
const int maxn = 50009;
int n, d, x[maxn], a[maxn], r[maxn]; cow c[maxn]; rb_tree t;
int main() { #ifndef ONLINE_JUDGE freopen(&amp;ldquo;in.txt&amp;rdquo;, &amp;ldquo;r&amp;rdquo;, stdin); #endif
scanf(&amp;quot;%d%d&amp;quot;, &amp;amp;amp;n, &amp;amp;amp;d); for (int i = 1; i &amp;amp;lt;= n; ++ i) { scanf(&amp;quot;%d%d&amp;quot;, x + i, a + i); c[i] = cow(x[i], a[i]); r[i] = 0; } sort(c + 1, c + n + 1); for (int i = 1; i &amp;amp;lt;= n; ++ i) { x[i] = c[i].</description>
    </item>
    
    <item>
      <title>BZOJ2693 jzptab</title>
      <link>/oi/lofterimport_000/</link>
      <pubDate>Sat, 17 Jan 2015 18:36:19 +0000</pubDate>
      
      <guid>/oi/lofterimport_000/</guid>
      <description>多组询问，硬根号。yy了一下午，在去80MSWC的时候的病历上打了若干草稿，最后硬yy出来了。
其实拿LaTeX来当公式编辑器蛮好的。
然后d(a)函数可以线性筛，讨论一下是不是倍数就行了。
发现数论真的好神奇。
lofter的html源码好讨厌啊。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
&amp;nbsp;
using namespace std;
&amp;nbsp;
#define _l (long long int)
&amp;nbsp;
const int maxn = 10000009;
const int maxq = 10009;
const int mod = 1e8 + 9;
&amp;nbsp;
int pn[maxn], tp, d[maxn];
bool pr[maxn];
int q, m[maxq], n[maxq], t;
&amp;nbsp;
#define incm(_a_,_b_)&amp;nbsp;{&amp;nbsp;\
&amp;nbsp;&amp;nbsp;&amp;nbsp; _a_+=_b_;&amp;nbsp;\
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (_a_&amp;gt;=mod||_a_&amp;lt;=-mod)&amp;nbsp;\
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _a_%=mod;&amp;nbsp;\
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (_a_&amp;lt;0)&amp;nbsp;\
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _a_+=mod;&amp;nbsp;\
}
&amp;nbsp;
void pre(int n)&amp;nbsp;{</description>
    </item>
    
    <item>
      <title>BZOJ2709 [Violet 1]迷宫花园</title>
      <link>/oi/lofterimport_001/</link>
      <pubDate>Sat, 17 Jan 2015 12:17:59 +0000</pubDate>
      
      <guid>/oi/lofterimport_001/</guid>
      <description>水水的二分+最短路么？
然后读入坑死了检查了好久的最短路。
没救了。
然后发现我好像进前100了，小小地开心一下。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef pair &amp;lt;double, int&amp;gt; dpr;
struct edge {
int v, t;
edge *next;
};
#define nid(_x_,_y_)&amp;nbsp;((_x_-1)*m+(_y_))
const int maxn = 10009;
const int maxa = 109;
const int maxe = 80009;
const int mov[4][2]&amp;nbsp;=&amp;nbsp;{{1, 0},&amp;nbsp;{-1, 0},&amp;nbsp;{0, 1},&amp;nbsp;{0,&amp;nbsp;-1}};
const double eps = 1e-8;
int n, m, st, te, c[maxn];
char mp[maxa][maxa];
double d[maxn], tg;
edge *head[maxn],&amp;nbsp;*ep, elst[maxe];
dpr hp[maxe];</description>
    </item>
    
    <item>
      <title>BZOJ1273 [BeiJingWc2008]序列</title>
      <link>/oi/lofterimport_002/</link>
      <pubDate>Fri, 16 Jan 2015 17:13:02 +0000</pubDate>
      
      <guid>/oi/lofterimport_002/</guid>
      <description>逃掉数学考试。感觉解几纯粹不给人希望。
这题还是比较有意思。做法是把每位分开预处当总共加了多少的时候这一位上是1的数字有多少个。然后每一层是线性的。询问是O(1)的。
然后发现自己的代码能力已经没救了。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#define pow2(x)&amp;nbsp;(1&amp;lt;&amp;lt;(x))
typedef long long dint;
#ifdef WIN32
#define lld &amp;quot;%I64d&amp;quot;
#else
#define lld &amp;quot;%lld&amp;quot;
#endif
const int maxn = 100009;
const int maxl = 16;
const int maxv = pow2(maxl)&amp;nbsp;- 1;
int n, m, c[maxv + 3],&amp;nbsp;*t[maxl], b;
dint s;
void pre()&amp;nbsp;{
for (int i = 0; i &amp;lt; maxl;&amp;nbsp;++ i)&amp;nbsp;{
int len(pow2(i));
t[i]&amp;nbsp;= new int[(len &amp;lt;&amp;lt; 1)&amp;nbsp;+ 3];
t[i][0]&amp;nbsp;= 0;
for (int j = 0; j &amp;lt;= maxv;&amp;nbsp;++ j)</description>
    </item>
    
    <item>
      <title>20150116</title>
      <link>/oi/lofterimport_003/</link>
      <pubDate>Fri, 16 Jan 2015 13:56:04 +0000</pubDate>
      
      <guid>/oi/lofterimport_003/</guid>
      <description>感觉自己坚持不下去了。
现在真不知道为什么要回去上课。好多次想跑掉然后还是没有跑。毕竟还是，唉。
物理十分钟够我想一道选择题还多半是错的。化学生物英语啥的基本就是不会。zhx告诉我回去可以拿数学RANK1然后发现解析根本做不了。想起初中的时候很自豪地认为我的解析几何很厉害。现在才学会做人。
上课还是那种走神的样子。也没有想OI的题，也不想听课。不知不觉就跑掉了。最后只有利用上课的时间做作业。然后，不会，不开心，担惊受怕。
每天唯一的娱乐就是晚上去码一下OJ。然后发现我的东西写得太丑，如果数据量一大根本就handle不了。当初做的时候也是边做边改，好多东西根本就不科学。但是也不想重新来写。于是乱七八糟的东西越堆越多。
发现自己好像很少认真想过如果滚掉了会怎样。每次都推说去学校对面电脑城修电脑好了。但是世界真的允许我这样做吗？也许如果真的那样的话会过一个很痛苦的高三然后再上一个很痛苦的大学然后痛苦一辈子？不知道。只能说不上一个好的大学也不一定就没有好的前途吧。但是好的前途是什么？我发现我连这样简单的问题都没有想清楚。所以说造成恐惧的不是对现实的无力，而是对未来的迷惑？
不知道。
看到昨天的情系母校，最大的感慨是大学也不是天堂。大学有更多更麻烦的事情要去做。去上大学也不过是换个坑而已。要找到自己真正喜欢的事情？依然难。而再以后呢？工作？我只能推断它是一个更大的火坑。怎么办？
还没想清楚。
魏总说过的一句话很有道理，noi金牌这条路至少在这里是不会断的。我想这也是我现在唯一能抓住的东西了吧。不管怎样，下周就期末考试了。在我退役之前大概是不会再有这样的苦日子了。但是也是时候去学会成熟了。
期末需要加油，未来更要加油。
Historical Comments Unknown friend at 2015-01-16T23:02:27 找到适合自己的路才是最重要的 想走就走吧
Unknown friend at 2015-01-17T12:18:11 谢谢</description>
    </item>
    
    <item>
      <title>BZOJ2393 Cirno的完美算数教室</title>
      <link>/oi/lofterimport_004/</link>
      <pubDate>Sun, 11 Jan 2015 11:12:49 +0000</pubDate>
      
      <guid>/oi/lofterimport_004/</guid>
      <description>充分证明我已经学傻了。把ONLINE_JUDGE打成ONLINE_JUGE还WA了若干次。然后开了个10^10的数组直接CE还想了好久是怎么回事。
10^10大概会TLE，真正的数据大概只有10^9。
做法比较简单直接容斥+剪枝，反正凑起来的几个数不会很多。
#ifndef ONLINE_JUGE
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long dint;
#ifdef WIN32
#define lld &amp;quot;%I64d&amp;quot;
#else
#define lld &amp;quot;%lld&amp;quot;
#endif
const int maxa = 2048;
const dint maxn = 10000000000LL;
//const dint maxn = 100000LL;
int e, t;
dint l, r, s, a[maxa], ans;
bool g[maxa];
void pre()&amp;nbsp;{
t = 0;
for (int l = 1; l &amp;lt;= 10;&amp;nbsp;++ l)
for (int j = 0; j &amp;lt;&amp;nbsp;(1&amp;nbsp;&amp;lt;&amp;lt; l);&amp;nbsp;++ j)&amp;nbsp;{</description>
    </item>
    
    <item>
      <title>BZOJ2813 奇妙的Fibonacci</title>
      <link>/oi/lofterimport_005/</link>
      <pubDate>Thu, 08 Jan 2015 20:46:03 +0000</pubDate>
      
      <guid>/oi/lofterimport_005/</guid>
      <description>的确比较奇妙。
有一个奇妙的玩意是fib[gcd(i, j)]&amp;nbsp;== gcd(fib[i], fib[j])。(fib[1]&amp;nbsp;= fib[2]&amp;nbsp;= 1)
然后就比较可搞了。
线性筛处理每个数的因子个数和因子和。开一点变量然后推一下就出来了。
然后要注意fib[2]也可以整除所有奇数，包括1。表示在这上面坑了2次提交。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
#define _l (long long int)
const int maxn = 10000009;
const int mod = 1000000007;
int tp, pn[maxn], sa[maxn], sb[maxn], b[maxn], c[maxn];
bool pr[maxn];
void pre(int n)&amp;nbsp;{
memset(pr, 0, sizeof(pr));
tp = 0;
sa[1]&amp;nbsp;= 1;
sb[1]&amp;nbsp;= 1;
b[1]&amp;nbsp;= 1;
c[1]&amp;nbsp;= 0;
for (int i = 2; i &amp;lt;= n;&amp;nbsp;++ i)&amp;nbsp;{
if (!</description>
    </item>
    
    <item>
      <title>BZOJ3522 [Poi2014]Hotel</title>
      <link>/oi/lofterimport_006/</link>
      <pubDate>Thu, 08 Jan 2015 19:14:45 +0000</pubDate>
      
      <guid>/oi/lofterimport_006/</guid>
      <description>水水的dp。拿pascal玩玩边表。然后莫名其妙地发现在main上先是ce然后全wa。下到数据一测就过了，交bzoj还是过了。不开心。
必定是一个中间点然后连三条出去。所以直接枚举中间点然后bfs就好了。相当于每条边被转移了两次所以还是O(n^2)的。最初想错了想成三方了把自己吓了一跳。
pascal啊。
type
edge =&amp;nbsp;^edger;
edger = record
t: longint;
next: edge;
end;
const
maxn = 5009;
//ONLINE_JUDGE = false;
ONLINE_JUDGE = true;
var
n, i, j, u, v: longint;
ans: int64;
d, cd, sd, td: array [0&amp;nbsp;.. maxn] of longint;
head: array [0&amp;nbsp;.. maxn] of edge;
ei: edge;
procedure addEdge(u, v: longint);
var
ep: edge;
begin
new(ep);
ep^. t := v;
ep^. next := head[u];
head[u]&amp;nbsp;:= ep;
end;</description>
    </item>
    
    <item>
      <title>BZOJ3851 2048</title>
      <link>/oi/lofterimport_007/</link>
      <pubDate>Thu, 08 Jan 2015 15:00:21 +0000</pubDate>
      
      <guid>/oi/lofterimport_007/</guid>
      <description>题号是3851，题目名称是2048。
比较厉害的DP。最初没有想到怎么表示状态。其实就是一个≤2048的自然数就可以表示状态了。
然后转移不能一个一个来，每个值要一起来，&amp;nbsp;然后拿组合数来算。然后就行了。
虽然hdu上还是过不到。好慢的说。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
#define _l (long long int)
const int maxn = 100009;
const int mod = 998244353;
int n, f[2][2051], c[2051];
int fac[maxn], finv[maxn], p2[maxn];
int modPow(int a, int x)&amp;nbsp;{
int s(1);
for (; x; x &amp;gt;&amp;gt;= 1, a = _l a * a % mod)
if (x&amp;nbsp;&amp;amp; 1)
s = _l s * a % mod;
return s;</description>
    </item>
    
    <item>
      <title>BZOJ2527 [Poi2011]Meteors</title>
      <link>/oi/lofterimport_008/</link>
      <pubDate>Thu, 08 Jan 2015 11:46:07 +0000</pubDate>
      
      <guid>/oi/lofterimport_008/</guid>
      <description>全局二分+树状数组，其实还是比较水。
比较坑的一点是直接求和会暴long long。如果≥Pi了要直接break掉。好坑啊。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;&amp;nbsp;
int _d_;
#define readInt(_x_)&amp;nbsp;{&amp;nbsp;\
int&amp;amp; _s_ =&amp;nbsp;(_x_&amp;nbsp;= 0);&amp;nbsp;\
while (!isdigit(_d_&amp;nbsp;= getchar()));&amp;nbsp;\
while (_s_&amp;nbsp;=&amp;nbsp;(_s_&amp;nbsp;&amp;lt;&amp;lt; 3)&amp;nbsp;+&amp;nbsp;(_s_ &amp;lt;&amp;lt; 1)&amp;nbsp;+ _d_ - 48, isdigit(_d_ = getchar()));&amp;nbsp;\
}
typedef long long dint;
const int maxn = 300009;
struct node {
int v;
node *next;
};
struct rain {
int l, r, a;
};
struct bintree {
dint t[maxn];
int n;
bintree()&amp;nbsp;{</description>
    </item>
    
    <item>
      <title>BZOJ1112 [POI2008]砖块</title>
      <link>/oi/lofterimport_009/</link>
      <pubDate>Wed, 07 Jan 2015 22:26:51 +0000</pubDate>
      
      <guid>/oi/lofterimport_009/</guid>
      <description>水一发。
本来可以直接拿主席树找中位数的，但是因为main上只有32MB，所以只好写了个splay。感觉现在是爱上指针了。然后kth的时候少打个等号又wa又re好爽。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long dint;
#ifdef WIN32
#define lld &amp;quot;%I64d&amp;quot;
#else
#define lld &amp;quot;%lld&amp;quot;
#endif
#define _l (long long int)
const int maxn = 100009;
#define nsz(p)&amp;nbsp;((p)?(p-&amp;gt;sz):0)
#define sof(p)&amp;nbsp;((p)?(p-&amp;gt;s):0)
struct splay_node {
&amp;nbsp;&amp;nbsp; int v, sz;
&amp;nbsp;&amp;nbsp; dint s;
&amp;nbsp;&amp;nbsp; splay_node *ls,&amp;nbsp;*rs,&amp;nbsp;*pt;
&amp;nbsp;&amp;nbsp; inline void init(int v0)&amp;nbsp;{
&amp;nbsp;&amp;nbsp; v = v0;
&amp;nbsp;&amp;nbsp; sz = 1;
&amp;nbsp;&amp;nbsp; s = v0;
&amp;nbsp;&amp;nbsp; pt = ls = rs = 0;</description>
    </item>
    
    <item>
      <title>BZOJ1097 [POI2007]旅游景点</title>
      <link>/oi/lofterimport_010/</link>
      <pubDate>Wed, 07 Jan 2015 21:30:50 +0000</pubDate>
      
      <guid>/oi/lofterimport_010/</guid>
      <description>比较简单易懂的状压。
最初想懒一下把起点和终点也压进来然后发现刚好会超一点空间。然后不压进来的话就是100MB左右，很好奇MAIN上面64MB的内存应该怎么做。拿MAP么？
代码各种难看啊郁闷。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct edge {
int t, v;
edge *next;
};
#define pow2(x)&amp;nbsp;(1&amp;lt;&amp;lt;(x))
typedef pair &amp;lt;int, int&amp;gt; dspr;
const int maxn = 20009;
const int maxe = 400009;
const int maxk = 20;
const int maxz = pow2(20)&amp;nbsp;+ 3;
int n, m, k, d[maxn];
int f[maxz][maxk], ds[maxk], dt[maxk], dk[maxk][maxk], ans;
int g, pr[maxk];
edge *ep,&amp;nbsp;*head[maxn];
dspr hp[maxe];
inline void addEdge(int u, int v, int w)&amp;nbsp;{</description>
    </item>
    
    <item>
      <title>BZOJ3858 Number Transformation</title>
      <link>/oi/lofterimport_011/</link>
      <pubDate>Tue, 06 Jan 2015 21:10:22 +0000</pubDate>
      
      <guid>/oi/lofterimport_011/</guid>
      <description>yy了一个sqrt的玩意，不过因为n在变所以没有保障啊。
肯定不是正解了。
1s的题跑了1.3s居然AC，好厉害。
#include &amp;lt;cstdio&amp;gt;
typedef long long dint;
#ifdef WIN32
#define lld &amp;quot;%I64d&amp;quot;
#else
#define lld &amp;quot;%lld&amp;quot;
#endif
dint calc(dint n, dint k)&amp;nbsp;{
if (n&amp;nbsp;&amp;lt;= 1)
return k;
for (dint i = 1, j; i &amp;lt;= k; i = j + 1)&amp;nbsp;{
if (n&amp;nbsp;&amp;lt;= i)
return k;
j =&amp;nbsp;(n&amp;nbsp;- 1)&amp;nbsp;/&amp;nbsp;((n - 1)&amp;nbsp;/ i);
if (j&amp;nbsp;&amp;gt; k)
j = k;
n =&amp;nbsp;((n&amp;nbsp;- 1)&amp;nbsp;/ i + 1)&amp;nbsp;* j;
}
return n;</description>
    </item>
    
    <item>
      <title>BZOJ2870 最长道路</title>
      <link>/oi/lofterimport_012/</link>
      <pubDate>Mon, 05 Jan 2015 20:14:31 +0000</pubDate>
      
      <guid>/oi/lofterimport_012/</guid>
      <description>最初觉得挺麻烦的一道题没思路。有点像并查集直接搞但是不好维护直径。
然后发现树上到任意一点的最远点一定是直径的两个端点之一。于是直接把直径是哪俩点记下来就好了。然后按点权从大到小往树里插。
然后莫名其妙地抢到了第二快。这么老的题也是蛮欣慰的。大概是读入优化2333
#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
void setRand()&amp;nbsp;{
FILE* pf = fopen(&amp;quot;.rs&amp;quot;,&amp;nbsp;&amp;quot;r&amp;quot;);
int hsv;
if (pf)&amp;nbsp;{
fscanf(pf,&amp;nbsp;&amp;quot;%d&amp;quot;,&amp;nbsp;&amp;amp;hsv);
fclose(pf);
}
srand(hsv);
printf(&amp;quot;Seed =&amp;nbsp;%d\n&amp;quot;, hsv);
pf = fopen(&amp;quot;.rs&amp;quot;,&amp;nbsp;&amp;quot;w&amp;quot;);
fprintf(pf,&amp;nbsp;&amp;quot;%d&amp;quot;,&amp;nbsp;(hsv &amp;lt;&amp;lt; 1)&amp;nbsp;|&amp;nbsp;(rand()&amp;nbsp;&amp;amp; 1));
fclose(pf);
}
#define readArg(a,b)&amp;nbsp;{ if (argc&amp;nbsp;&amp;gt; a) sscanf(args[a],&amp;nbsp;&amp;quot;%d&amp;quot;,&amp;nbsp;&amp;amp;b);&amp;nbsp;}
void mklr(int m, char s)&amp;nbsp;{
int l, r;
do
l = rand()&amp;nbsp;% m + 1, r = rand()&amp;nbsp;% m + 1;
while (l&amp;nbsp;&amp;gt; r);
printf(&amp;quot;%d %d%c&amp;quot;, l, r, s);
}</description>
    </item>
    
    <item>
      <title>BZOJ3834 [Poi2014]Solar Panels</title>
      <link>/oi/lofterimport_013/</link>
      <pubDate>Mon, 05 Jan 2015 12:04:52 +0000</pubDate>
      
      <guid>/oi/lofterimport_013/</guid>
      <description>orz jason_yu提醒了我一句“最简单的优化”，才想起来。
如果d合法的话那么b/d-(a-1)/d&amp;gt;0。然后用整除优化到sqrt就可过。虽然比较慢。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
int main()&amp;nbsp;{
int t, a, b, c, d, s, e;
scanf(&amp;quot;%d&amp;quot;,&amp;nbsp;&amp;amp;t);
while (t&amp;nbsp;--)&amp;nbsp;{
scanf(&amp;quot;%d%d%d%d&amp;quot;,&amp;nbsp;&amp;amp;a,&amp;nbsp;&amp;amp;b,&amp;nbsp;&amp;amp;c,&amp;nbsp;&amp;amp;d);
-- a;
-- c;
s = 1;
e = min(b, d);
for (int i = 1, j; i &amp;lt;= e; i = j + 1)&amp;nbsp;{
j = min(b /&amp;nbsp;(b&amp;nbsp;/ i), d /&amp;nbsp;(d&amp;nbsp;/ i));
if (a&amp;nbsp;/ i)
j = min(j, a /&amp;nbsp;(a&amp;nbsp;/ i));
if (c&amp;nbsp;/ i)</description>
    </item>
    
    <item>
      <title>BZOJ3829 [Poi2014]FarmCraft</title>
      <link>/oi/lofterimport_014/</link>
      <pubDate>Sun, 04 Jan 2015 23:05:42 +0000</pubDate>
      
      <guid>/oi/lofterimport_014/</guid>
      <description>树型贪心orz
写丑了。调了半个晚上，然后发现是起点最耗时的时候的情况搞错了，只用走n-1条路而不是n条。晕。
对于每个节点贪心按f[p]-2*sz[p]排序或者用原式也行。不过巨慢。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
int _d_;&amp;nbsp;
#define readInt(_x_)&amp;nbsp;{&amp;nbsp;\
int&amp;amp; _s_ =&amp;nbsp;(_x_&amp;nbsp;= 0);&amp;nbsp;\
while (!isdigit(_d_&amp;nbsp;= getchar()));&amp;nbsp;\
while (_s_&amp;nbsp;= _s_ * 10 + _d_ - 48, isdigit(_d_ = getchar()));&amp;nbsp;\
}
struct edge {
int t;
edge *next;
};
const int maxn = 500009;
int n, v[maxn], t, f[maxn], sz[maxn], dfo[maxn], st[maxn];
edge *ep,&amp;nbsp;*head[maxn];
inline void addEdge(int u, int v)&amp;nbsp;{
ep-&amp;gt; t = v;</description>
    </item>
    
    <item>
      <title>BZOJ3831 [Poi2014]Little Bird</title>
      <link>/oi/lofterimport_015/</link>
      <pubDate>Sun, 04 Jan 2015 13:37:14 +0000</pubDate>
      
      <guid>/oi/lofterimport_015/</guid>
      <description>一血yeah yeah。
第一眼觉得是比较麻烦的单调队列。
然后发现转移的时候只会加1或者不加。
那么取的时候只用取队首，队里首先fi单不降然后hi单减。那么一定没有方案比取队首差。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
int _d_;&amp;nbsp;
#define readInt(_x_)&amp;nbsp;{&amp;nbsp;\
int&amp;amp; _s_ =&amp;nbsp;(_x_&amp;nbsp;= 0);&amp;nbsp;\
while (!isdigit(_d_&amp;nbsp;= getchar()));&amp;nbsp;\
while (_s_&amp;nbsp;= _s_ * 10 + _d_ - 48, isdigit(_d_ = getchar()));&amp;nbsp;\
}
const int maxn = 1000009;
int n, m, a[maxn], f[maxn], q[maxn];
int getTrans(int l, int r)&amp;nbsp;{
int v0 = f[q[l]];
while (l&amp;nbsp;&amp;lt; r)&amp;nbsp;{
int mid =&amp;nbsp;(l&amp;nbsp;+ r + 1)&amp;nbsp;&amp;gt;&amp;gt; 1;</description>
    </item>
    
    <item>
      <title>BZOJ3401 [Usaco2009 Mar]Look Up 仰望</title>
      <link>/oi/lofterimport_016/</link>
      <pubDate>Fri, 02 Jan 2015 21:46:13 +0000</pubDate>
      
      <guid>/oi/lofterimport_016/</guid>
      <description>签到题。表示今天虽然废了一天但是还是坚持写了题的。
单调栈搞定。
因为打球把小指头打残了所以不想敲include所以写了pascal，然后发现include不用小指。
const
maxn = 100009;
var
n, i, t: longint;
a, st, ans: array[0 .. maxn] of longint;
begin
readln(n);
for i := 1 to n do
readln(a[i]);
t := 0;
for i := n downto 1 do begin
while (t&amp;nbsp;&amp;gt; 0) and (a[i]&amp;nbsp;&amp;gt;= a[st[t]]) do
dec(t);
if t = 0 then
ans[i]&amp;nbsp;:= 0
else
ans[i]&amp;nbsp;:= st[t];
inc(t);
st[t]&amp;nbsp;:= i;
end;
for i := 1 to n do</description>
    </item>
    
    <item>
      <title>BZOJ3825 [Usaco2014 Nov]Marathon</title>
      <link>/oi/lofterimport_017/</link>
      <pubDate>Thu, 01 Jan 2015 16:08:54 +0000</pubDate>
      
      <guid>/oi/lofterimport_017/</guid>
      <description>英语阅读题。做完去翻译题面然后写英语作业了。
就维护一下区间里的距离和and忽略一个点的收益的最大值。完了。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct seg {
int l, r;
int s, v;
seg *ls,&amp;nbsp;*rs;
};
const int maxn = 100009;
int n, m, x[maxn], y[maxn], d[maxn], v[maxn];
seg *rt,&amp;nbsp;*sp;
inline void upDis(int i)&amp;nbsp;{
if (i&amp;nbsp;&amp;lt; n)
d[i]&amp;nbsp;= abs(x[i + 1]&amp;nbsp;- x[i])&amp;nbsp;+ abs(y[i + 1]&amp;nbsp;- y[i]);
else
d[i]&amp;nbsp;= 0;
}
inline void upVal(int i)&amp;nbsp;{
if (i&amp;nbsp;&amp;gt; 1 &amp;amp;&amp;amp; i &amp;lt; n)
v[i]&amp;nbsp;= d[i - 1]&amp;nbsp;+ d[i]&amp;nbsp;- abs(x[i + 1]&amp;nbsp;- x[i - 1])&amp;nbsp;- abs(y[i + 1]&amp;nbsp;- y[i - 1]);</description>
    </item>
    
    <item>
      <title>BZOJ3826 [Usaco2014 Nov]Cow Jog</title>
      <link>/oi/lofterimport_018/</link>
      <pubDate>Thu, 01 Jan 2015 15:30:07 +0000</pubDate>
      
      <guid>/oi/lofterimport_018/</guid>
      <description>新题么。略水。
就一个序列，如果起点单增的话只要终点单增就不会冲突。
然后最少单增子序列覆盖=最长不降子序。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long dint;
#define _l (long long int)
const int maxn = 100009;
int n, m, a[maxn], t[maxn], s;
dint v[maxn], v0[maxn];
int btQry(int p)&amp;nbsp;{
int s = 0;
for (; p; p -=&amp;nbsp;(p&amp;nbsp;&amp;amp;&amp;nbsp;-p))
s = max(s, t[p]);
return s;
}
void btChg(int p, int v)&amp;nbsp;{
for (; p &amp;lt;= n; p +=&amp;nbsp;(p&amp;nbsp;&amp;amp;&amp;nbsp;-p))
t[p]&amp;nbsp;= max(t[p], v);
}</description>
    </item>
    
    <item>
      <title>20150101</title>
      <link>/oi/lofterimport_019/</link>
      <pubDate>Thu, 01 Jan 2015 00:20:32 +0000</pubDate>
      
      <guid>/oi/lofterimport_019/</guid>
      <description>2015，嗯，还习惯性地敲2014。一年就过去了，好快。
2014年1月1号已经是一年前的事情了，略恐怖。
感觉不只过了一年啊。
这一年我都在干啥？
寒假的时候去wc打个酱油，骗分的结果还不错。然后感觉讲课完全像在冬眠。好多课根本听不懂没法听。是我太弱吧。
开学之后就一直在教室和机房两边跑。对省队还怀有一丝幻想。直到，见到省选题。然后就以能拿的分没拿到不能拿的分也没拿到的分再见了。当时安慰自己太年轻，现在想来，也真是。
然后看到学长们填thu的自招表，也去跟着填了一个表。然后，当然肯定被毫无疑问地打了回来。令人触目惊心的是要填各次大考的成绩。半期缺考+垫底的我心中一惊啊。
然后期末的调研考试考得不好但是也比半期进步了不少。毕竟半期是停课裸考还没考完。
然后暑假很荣幸地去参观noi。结果自己再次犯傻把最简单第一题写错然后抱着AG哭。记得第一天估分的时候信心满满地报了个200+然后看到第一题60的时候。唉。
暑假回来感觉愉快不少，毕竟终于可以不上课了。
然后就全力准备noip，虽然常常刷题不小心就打开了bzoj。
然后就去了noip。然后再次犯傻的bird。于是没拿到省rank1。
然后半期经过三天“认真”复习之后真的垫底了。文化课看来是废了。
然后就又去学习thu集训的题了。然后跟着去了bj80ms。然后发现在诸如jiry和dzy大神的眼里我也只是根草而已，连菜都算不上。
然后回来了，然后被告愉快的停课生涯结束了。然后愉快地直接在月考中勇夺rank1还是倒数的。
老师问一年里收获是啥？学会了放弃吧。有多少付出才会有多少回报。然后当你面对你付出后血淋淋的伤口的时候，你会是怎样一种心情？也不见得能用愉快来形容吧。
管他去死。
既然都这样了，也只能继续了。人在矮桅下，不得不低头。等哪天离开矮檐了，再考虑去把让我低头的人的头给砍下来当夜壶。然后再深情地表达尊敬，还能写出一篇不错的议论文。
虽然也不是没有道理。有些事情总是要面对的。
不要忘了本，然后该干啥干啥吧。</description>
    </item>
    
    <item>
      <title>BZOJ3301 [USACO2011 Feb] Cow Line</title>
      <link>/oi/lofterimport_020/</link>
      <pubDate>Thu, 01 Jan 2015 00:00:03 +0000</pubDate>
      
      <guid>/oi/lofterimport_020/</guid>
      <description>新年第一题哈哈。虽然没有成功拿到fb。
所谓阶乘进制数么。略水。只不过加一减一啥的得小心些。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long dint;
#define pow2(x)&amp;nbsp;(1&amp;lt;&amp;lt;(x))
#ifdef WIN32
#define lld &amp;quot;%I64d&amp;quot;
#else
#define lld &amp;quot;%lld&amp;quot;
#endif
const int maxn = 21;
dint fac[maxn];
int n, k, t, x[maxn];
dint a;
void sovPerm()&amp;nbsp;{
t = 0;
for (int i = n; i;&amp;nbsp;-- i)&amp;nbsp;{
int r =&amp;nbsp;(a&amp;nbsp;- 1)&amp;nbsp;/ fac[i - 1]&amp;nbsp;+ 1, c = 0;
a -=&amp;nbsp;(r&amp;nbsp;- 1)&amp;nbsp;* fac[i - 1];</description>
    </item>
    
    <item>
      <title>BZOJ3823 定情信物</title>
      <link>/oi/lofterimport_021/</link>
      <pubDate>Sun, 28 Dec 2014 01:38:08 +0000</pubDate>
      
      <guid>/oi/lofterimport_021/</guid>
      <description>解锁成就：半夜过题。（其实是因为在搞bsd）
仔细看下题推一下发现第n维中m维元素的个数为2^(n-m)*C(n,m)。
然后组合数好像得nlogn用逆元？恭喜tle。
然后yy了一个用线性筛的办法，只是素数用快速幂，这样大约可以降低复杂度，然后就能过了。好神奇。
代码好长TT。
#include &amp;lt;cstdio&amp;gt;
#include&amp;nbsp;&amp;lt;cstring&amp;gt;
#define _l (long long int)
const int maxn = 10000009;
int tp, pn[maxn], inv[maxn];
bool pr[maxn];
int n, mod, s, c, p;
int modPow(int a, int x)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp; int s = 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (; x; x &amp;gt;&amp;gt;= 1, a = _l a * a % mod)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (x&amp;nbsp;&amp;amp; 1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s = _l s * a % mod;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return s;</description>
    </item>
    
    <item>
      <title>BZOJ1367 [Baltic2004]sequence</title>
      <link>/oi/lofterimport_022/</link>
      <pubDate>Sat, 27 Dec 2014 21:01:20 +0000</pubDate>
      
      <guid>/oi/lofterimport_022/</guid>
      <description>退役了之后智商下降严重啊。今天bc死惨了。这比较水的题也是去看了题解才反应过来的。
先把序列改成不降。
然后把原来的序列分成一些段，每段的中位数递增。
&amp;nbsp;&amp;nbsp;考虑新加入一个ai，如果它比前一段的中位数小，那么就把它和前一段合并，再拿合并之后的段去和再前一段比较一下。其实我也不能证明为啥是这样，只是感觉比较有道理。我肯定是没救了。
中位数的话用可合并的堆来维护比较方便。orz各种神级堆，然后我还是用的左偏树。
以后树要拿指针写所以代码巨长。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
int _d_;
#define readInt(_x_)&amp;nbsp;{&amp;nbsp;\
int&amp;amp; _s_ = _x_;&amp;nbsp;\
while (!isdigit(_d_&amp;nbsp;= getchar()));&amp;nbsp;\
_s_ = 0;&amp;nbsp;\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));&amp;nbsp;\
}
#define sof(p)&amp;nbsp;((p)?(p-&amp;gt;s):0)
struct node {
int v, s;
node *ls,&amp;nbsp;*rs;
inline void init(int x)&amp;nbsp;{
v = x;
s = 1;
ls = 0;
rs = 0;</description>
    </item>
    
    <item>
      <title>BZOJ1171 大sz的游戏</title>
      <link>/oi/lofterimport_023/</link>
      <pubDate>Sat, 27 Dec 2014 10:00:25 +0000</pubDate>
      
      <guid>/oi/lofterimport_023/</guid>
      <description>大概是今天不宜刷题来着。应该好好做作业。
用线段树套单调队列可以把复杂度降到O(nlogn)。然后deque严重不靠谱，得用list才行。
然后还是跑得巨慢。前面的人是排序搞定的么？表示不明觉厉。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;deque&amp;gt;
#include &amp;lt;list&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
int _d_;
#define readInt(_x_)&amp;nbsp;{&amp;nbsp;\
int&amp;amp; _s_ = _x_;&amp;nbsp;\
while (!isdigit(_d_&amp;nbsp;= getchar()));&amp;nbsp;\
_s_ = 0;&amp;nbsp;\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));&amp;nbsp;\
}
//typedef deque &amp;lt;int&amp;gt; dque_i;
typedef list &amp;lt;int&amp;gt; dque_i;
struct seg {
int l, r;
dque_i u, d;
seg *ls,&amp;nbsp;*rs;
};
const int maxn = 250009;</description>
    </item>
    
    <item>
      <title>BZOJ3821 玄学</title>
      <link>/oi/lofterimport_024/</link>
      <pubDate>Fri, 26 Dec 2014 21:32:24 +0000</pubDate>
      
      <guid>/oi/lofterimport_024/</guid>
      <description>zhx+主席出的题，恐怖至极。
写此题需要极高的常数优化技巧+耐心。
本地跑到50s才在bzoj上压80s跑过。
其实思路就是拿线段树套AVL把询问的时间复杂度优化到O(logn)。
然后首先用treap会t爽+mle爽。
然后avl需要各种常数优化。
然后要在xxxxx地方优化。
加上zhx牌读入优化+块状内存+抄std的AVL+.....终于在81s过了。
orz比我快一倍的wangyisong神犇。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstdlib&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
const int BUF_SIZE = 300;
char buf[BUF_SIZE],&amp;nbsp;*buf_s = buf,&amp;nbsp;*buf_t = buf + 1;
#define PTR_NEXT()&amp;nbsp;\
{&amp;nbsp;\
buf_s ++;&amp;nbsp;\
if (buf_s&amp;nbsp;== buf_t)&amp;nbsp;\
{&amp;nbsp;\
buf_s = buf;&amp;nbsp;\
buf_t = buf + fread(buf, 1, BUF_SIZE, stdin);&amp;nbsp;\
}&amp;nbsp;\
}
#define readInt(_n_)&amp;nbsp;\
{&amp;nbsp;\
while (*buf_s&amp;nbsp;!=&amp;nbsp;&#39;-&#39;&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;!isdigit(*buf_s))&amp;nbsp;\
PTR_NEXT();&amp;nbsp;\
bool register _nega_ = false;&amp;nbsp;\
if (*buf_s&amp;nbsp;==&amp;nbsp;&#39;-&#39;)&amp;nbsp;\</description>
    </item>
    
    <item>
      <title>BZOJ2738 矩阵乘法</title>
      <link>/oi/lofterimport_025/</link>
      <pubDate>Fri, 26 Dec 2014 17:45:06 +0000</pubDate>
      
      <guid>/oi/lofterimport_025/</guid>
      <description>全局二分的经典题。
最初试图用持久化线段树和分块，然后欢快地tle+mle了。看到jason_yu和mhy过了，只能说自己的常数优化还不过关啊。
第一次写这种二分。就是把所有东西扔进来快速排序，顺便考虑每个询问应该被扔到哪边。然后加树状数组来统计就好了。
代码巨丑。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct query {
int x1, y1, x2, y2, k, n;
};
int _d_;
#define readInt(_x_)&amp;nbsp;{&amp;nbsp;\
int&amp;amp; _s_ = _x_;&amp;nbsp;\
while (!isdigit(_d_&amp;nbsp;= getchar()));&amp;nbsp;\
_s_ = 0;&amp;nbsp;\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));&amp;nbsp;\
}
const int maxn = 509;
const int maxq = 310009;
int n, m, t, maxa, a[maxn][maxn], b[maxn][maxn], ttm;</description>
    </item>
    
    <item>
      <title>BZOJ1633 [Usaco2007 Feb]The Cow Lexicon 牛的词典</title>
      <link>/oi/lofterimport_026/</link>
      <pubDate>Wed, 24 Dec 2014 21:27:43 +0000</pubDate>
      
      <guid>/oi/lofterimport_026/</guid>
      <description>本来想做点英语作业的。想10分钟把这题搞定的。结果傻了去写trie树dp又傻了没有考虑终点也可以有子结点。
我真是无药可救了。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
int tcnt;
struct trie_node {
int d, e, t[26];
inline trie_node(int d0 = 0)&amp;nbsp;{
e = 0;
d = d0 + 1;
memset(t, 0, sizeof(t));
}
inline int ins(char c)&amp;nbsp;{
if (!t[c&amp;nbsp;- 97])
t[c - 97]&amp;nbsp;=&amp;nbsp;++ tcnt;
return t[c - 97];
}
inline int trans(char c)&amp;nbsp;{
return t[c - 97];
}
};
const int inf = 0x3f3f3f3f;
const int maxs = 15009;</description>
    </item>
    
    <item>
      <title>BZOJ1933 [Shoi2007]Bookcase 书柜的尺寸</title>
      <link>/oi/lofterimport_027/</link>
      <pubDate>Mon, 22 Dec 2014 23:32:06 +0000</pubDate>
      
      <guid>/oi/lofterimport_027/</guid>
      <description>老早之前就听说过的题。好像讲过不只一遍。不过才从bzoj上翻出来。
记得是神奇的dp优化。为啥这年头卡常数的题这么多。
首先肯定这玩意多项式可解。六维状态肯定能搞定。然后会mle+tle。
首先考虑从高到低放书，那么后面的如果不新开一行的话对高度没有影响。瞬间少了3维状态。
然后发现只要知道两维的总宽度和当前是第几位，就能知道第三维的宽度。于是一维2100缩70，开滚动可过。
当然还是需要一些常数优化的技艺。比如用宽度直接判断这一行有没有书。这样可以省下不少时间，而且好像只能这样才存得下。64MB太紧了点。另外把函数里的int改成const int&amp;amp;会变慢，不知为何。
居然花了这么久才搞出来。我太年轻了。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct book {
int w, h;
};
inline bool cmpBook(const book&amp;amp; a, const book&amp;amp; b)&amp;nbsp;{
return a. h &amp;gt; b. h;
}
const int maxn = 71;
const int maxw = 2109;
const int inf = 0x3f3f3f3f;
int n, f[2][maxw][maxw], sw;
book a[maxn];
inline void upmin(int&amp;amp; _a_, int _b_)&amp;nbsp;{
if (_a_&amp;nbsp;&amp;gt; _b_)
_a_ = _b_;</description>
    </item>
    
    <item>
      <title>20141222</title>
      <link>/oi/lofterimport_028/</link>
      <pubDate>Mon, 22 Dec 2014 19:45:44 +0000</pubDate>
      
      <guid>/oi/lofterimport_028/</guid>
      <description>不久之后要会考了，再过不久要期末了。教育部在放风，大概以后如果noi拿不到金牌的话就得和别人一样地高考了。
一直在oi里面坚持也没有怎么想过高考的事，一直只是当作一个额外的好处。如果让我不上大学给我一次ioi的机会，我想我也不会犹豫的。
本来，上什么大学，也不是什么重要的事情。作为oier，我知道，只向上看，是个很好的品质，但是不是什么好的策略。如果你非要落魄到拿着期末成绩去让大学收你，那你该考虑换个差点的大学了。
因为做过鸡头，所以对做凤尾产生了抵触吧。
当然，显然，学校，老师都不这么想。虽然我来这里的目的也完全不是因为高考，但是既然穿上这身校服，你也没有办法。
背起包走回教室的感觉真的很像退役了。
大本的崭新的练习册让人很压抑。如何在两周内补完一个学期的内容是一个很艰巨的问题。也许多看书多刷题是个不错的选择。
既然有人要来挑战，那就让他们看看。</description>
    </item>
    
    <item>
      <title>BZOJ3809 Gty的二逼妹子序列</title>
      <link>/oi/lofterimport_029/</link>
      <pubDate>Mon, 22 Dec 2014 19:38:16 +0000</pubDate>
      
      <guid>/oi/lofterimport_029/</guid>
      <description>好一道卡常数。不仅卡时间，还卡空间。堪称丧心病狂的极致。
首先因为空间小所以得用莫队。然后不知为何树状数组没有直接分块跑得快。
没有救啦。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cmath&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
&amp;nbsp;
usingnamespacestd;
&amp;nbsp;
structqry {
&amp;nbsp;&amp;nbsp;&amp;nbsp; intl, r, a, b, n;
};
&amp;nbsp;
int_d_;
#define readInt(_x_)&amp;nbsp;{&amp;nbsp;\
&amp;nbsp;&amp;nbsp;&amp;nbsp; int&amp;amp; _s_ = _x_;&amp;nbsp;\
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!isdigit(_d_ = getchar()));&amp;nbsp;\
&amp;nbsp;&amp;nbsp;&amp;nbsp; _s_ = 0;&amp;nbsp;\
&amp;nbsp;&amp;nbsp;&amp;nbsp; while((_s_ = _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));&amp;nbsp;\
}
&amp;nbsp;
constintmaxn = 100009;
constintmaxm = 1000009;
&amp;nbsp;
intn, m, bsz, a[maxn], c[maxn], w[maxn], b[maxn], ans[maxm];</description>
    </item>
    
    <item>
      <title>20141221 UR3 总结</title>
      <link>/diary/lofterimport_030/</link>
      <pubDate>Sun, 21 Dec 2014 22:34:57 +0000</pubDate>
      
      <guid>/diary/lofterimport_030/</guid>
      <description>晚上比较无聊于是去uoj上玩了一玩。说好的复习会考呢？
然后就开心地出事了。
第一题好像直接分解质因数就行了啊。然后大质数手残打成-1了。居然给了90分。
第二题左右应该是单调的。然后懒得写了欺负数据就用了个二分也过了。
第三题想了想发现暴力都不可写，弃疗了。
然后就rank4了。前面好像是主席？orz。
毕竟我还是太年轻了。</description>
    </item>
    
    <item>
      <title>BZOJ1875 [SDOI2009]HH去散步</title>
      <link>/oi/lofterimport_031/</link>
      <pubDate>Sun, 21 Dec 2014 14:55:35 +0000</pubDate>
      
      <guid>/oi/lofterimport_031/</guid>
      <description>乍一看矩阵水题，然后发现不能走回头路。
于是改一下把边当做点，把点当作转移，转移的时候就可以避免走过去就走回来的情况了。
说好的复习会考呢？
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
#define _l (long long int)
const int mod = 45989;
const int maxn = 123;
class matrix {
public:
int n, a[maxn][maxn];
inline matrix()&amp;nbsp;{
}
inline matrix(int n0, bool one = 0)&amp;nbsp;{
n = n0;
memset(a, 0, sizeof(a));
if (one)
for (int i = 0; i &amp;lt; n;&amp;nbsp;++ i)
a[i][i]&amp;nbsp;= 1;
}
void operator =(const matrix&amp;amp; x)&amp;nbsp;{
n = x.</description>
    </item>
    
    <item>
      <title>BZOJ3728 PA2014Final Zarowki</title>
      <link>/oi/lofterimport_032/</link>
      <pubDate>Sun, 21 Dec 2014 14:21:28 +0000</pubDate>
      
      <guid>/oi/lofterimport_032/</guid>
      <description>贪心。从小到大每个灯泡找个小于等于它的最接近的房间去照。
剩下的照不亮的房间直接换。
剩下的背包空间把已经匹配的差最大的换掉。
第一步要拿堆维护一下。剩下的直接排序。
然后把nie写成-1了，no save。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long di;
#ifdef WIN32
#define difmt &amp;quot;%I64d&amp;quot;
#else
#define difmt &amp;quot;%lld&amp;quot;
#endif
const int maxn = 500009;
int _d_;
#define readInt(_x_)&amp;nbsp;{&amp;nbsp;\
int&amp;amp; _s_ = _x_;&amp;nbsp;\
while (!isdigit(_d_&amp;nbsp;= getchar()));&amp;nbsp;\
_s_ = 0;&amp;nbsp;\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));&amp;nbsp;\
}
int n, k, p[maxn], w[maxn], x[maxn], t;</description>
    </item>
    
    <item>
      <title>BZOJ2565 最长双回文串</title>
      <link>/oi/lofterimport_033/</link>
      <pubDate>Sat, 20 Dec 2014 23:09:18 +0000</pubDate>
      
      <guid>/oi/lofterimport_033/</guid>
      <description>以前觉得不会，仔细想想觉得还是挺水。
manacher找出所有中心回文串，然后用单调队列扫一下每个位置往左最长和往右最长就行。找位置比较烦不过还是比较好写的。
重点是写出了在windows下拿for循环对拍，虽然异常丑。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
const int maxn = 200009;
int n, l[maxn], q[maxn], vx[maxn], vy[maxn];
char a[maxn];
void manacher()&amp;nbsp;{
l[0]&amp;nbsp;= 1;
for (int i = 1, j = 0; i &amp;lt;&amp;nbsp;(n&amp;nbsp;&amp;lt;&amp;lt; 1)&amp;nbsp;- 1;&amp;nbsp;++ i)&amp;nbsp;{
int r =&amp;nbsp;((j&amp;nbsp;+ 1)&amp;nbsp;&amp;gt;&amp;gt; 1)&amp;nbsp;+ l[j]&amp;nbsp;- 1;
int p = i &amp;gt;&amp;gt; 1, q = i - p;
l[i]&amp;nbsp;=&amp;nbsp;(r &amp;gt;= q)&amp;nbsp;? min(r - q + 1, l[(j &amp;lt;&amp;lt; 1)&amp;nbsp;- i])&amp;nbsp;: 0;</description>
    </item>
    
    <item>
      <title>80MSWC2014 总结</title>
      <link>/diary/lofterimport_034/</link>
      <pubDate>Sat, 20 Dec 2014 19:30:46 +0000</pubDate>
      
      <guid>/diary/lofterimport_034/</guid>
      <description>人总要走出去，才有机会领略广阔的世界。
如果总是窝在自己的世界里，盲目地骄傲自大，终会一事无成。
什么叫挫败。
其实心里应该很清楚自己有多弱，但是总有那么一点侥幸，看，还有人比我更弱。
但你没有机会在404或者三楼机房考省选或者noi。
你要面对的，是这回见到的和没有见到的各路大神。
哪里来的自信？
你走在thu的校园里，感觉怎样？这只是预习，你要通过自己的奋斗才能真正拥有它。
学到的东西，不只是用fft写字符串匹配，还有更多，更严肃认真的东西。
埋头认真写题吧。
Historical Comments Unknown friend at 2014-12-20T21:07:53 感觉差不多。
Unknown friend at 2014-12-20T21:15:47 造成这种感觉的原因可能稍有区别。（人不一样？） 不过刺激是一样的。 自己越来越混乱了呢。
Unknown friend at 2014-12-20T23:06:22 与其叫刺激，不如说加强对生存残酷性的认识。每个人都是从诞生就喜欢踩别人尸体的感觉！</description>
    </item>
    
    <item>
      <title>80MSWC diary 4.1</title>
      <link>/oi/lofterimport_035/</link>
      <pubDate>Thu, 18 Dec 2014 16:57:30 +0000</pubDate>
      
      <guid>/oi/lofterimport_035/</guid>
      <description>昨天就考完了不过今天还是讲了一天的课。
上午是罗翔宇的杂题。感觉好多题他上次都讲过不过就是记不得怎么做了。看来听课效率有待提高。
下午是讲icpc的题加各种神奇的玩意。感觉比较好玩，不过有点偏题啊。然后做表去了也没大听。
毕竟我还是太年轻对吧，七天就水过去了。还被学军的大爷们虐成狗了。</description>
    </item>
    
    <item>
      <title>80MSWC diary 4 &amp;&amp; 20141217 总结</title>
      <link>/diary/lofterimport_036/</link>
      <pubDate>Wed, 17 Dec 2014 21:09:22 +0000</pubDate>
      
      <guid>/diary/lofterimport_036/</guid>
      <description>最后一天考试了，跪。
三道txt题。哈。俩gb加一个utf8。看来还是有人在用linux，开心。
有道多项式开方。开始想得特别复杂，想的是dft来dft去。然后发现直接递推。出题人是在逗我玩么？
然后图论题为啥是格点图？感觉乱七八糟图都能做。就拿tarjan缩个点跑dp就好了。然后因为是不科学的windows所以会暴栈就这么简单。
另一题好像是图论+搜索啥的。不会。
跪。
然后下午wyx讲的dp感觉比插头啥的舒服多了。开心。
毕竟我还是太年轻了。</description>
    </item>
    
    <item>
      <title>BZOJ2105 增强型LCP</title>
      <link>/oi/lofterimport_037/</link>
      <pubDate>Wed, 17 Dec 2014 16:03:47 +0000</pubDate>
      
      <guid>/oi/lofterimport_037/</guid>
      <description>最初以为是splay维护Hash的简单题。顺手开心地敲了个splay还是指针版的。
然后发现tle了。
然后知道了可以暴力重新建串。
然后拿splay暴力重新建串。
然后又tle了。
然后不得已改成了随机线性存取表，过之。
我还是太naive了啊。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef unsigned long long qw;
#define _l (long long int)
const int maxn = 200009;
const int base = 233;
struct str {
char a[maxn];
int len;
inline str()&amp;nbsp;{
len = 0;
}
inline void read()&amp;nbsp;{
scanf(&amp;quot;%s&amp;quot;, a + 1);
len = strlen(a + 1);
}
inline char operator [](const int&amp;amp; x) const {</description>
    </item>
    
    <item>
      <title>80MSWC diary 3.5</title>
      <link>/oi/lofterimport_038/</link>
      <pubDate>Tue, 16 Dec 2014 21:30:46 +0000</pubDate>
      
      <guid>/oi/lofterimport_038/</guid>
      <description>昨天是day3明天是day4所以今天是day3.5。
讲了一天课。
上午+晚上是图论。感觉图论的东西比较神。好像基本都是cf原题吧。好多东西要和其它的诸如数据结构和dp之类的东西结合，还有数学也比较重要。
下午是fft相关。先讲了一下fft的原理，虽然我觉得讲得除了好玩以外没什么特点，也没有用最好理解的方式来讲。然后期待的例题好像也不杂。然后怎么就扯到牛顿迭代上去了。不过这玩意以前没用过感觉还挺神奇的，改天找道题试试。
晚上无聊的时候写了个后缀数组，这种东西还是要不时写写不然都要忘了。然后后缀自动机的构建依然不太能理解。看来我还是太弱了WUW
然后明天是最后一天了。我虽然年轻，但是还是要努力一点的。</description>
    </item>
    
    <item>
      <title>BZOJ1692 [Usaco2007 Dec]队列变换</title>
      <link>/oi/lofterimport_039/</link>
      <pubDate>Tue, 16 Dec 2014 19:34:28 +0000</pubDate>
      
      <guid>/oi/lofterimport_039/</guid>
      <description>最初以为是水题，直接写个dq交上去不对。
看了下题解才知道是后缀数组。好久不写都快不会写了。
把原串倒过来扔一起排一下就行了。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
const int maxn = 60009;
int n;
int sa[maxn], rk[maxn], ro[maxn], w[maxn], o[maxn];
char a[maxn];
void sufixArray(int n)&amp;nbsp;{
memset(w, 0, sizeof(w));
for (int i = 0; i &amp;lt; n;&amp;nbsp;++ i)
++ w[(int)a[i]];
for (int i = 1; i &amp;lt; 123;&amp;nbsp;++ i)
w[i]&amp;nbsp;+= w[i - 1];
for (int i = 0; i &amp;lt; n;&amp;nbsp;++ i)
sa[-- w[(int)a[i]]]&amp;nbsp;= i;</description>
    </item>
    
    <item>
      <title>80MSWC diary 3 &amp;&amp; 20141215 总结</title>
      <link>/diary/lofterimport_040/</link>
      <pubDate>Mon, 15 Dec 2014 18:49:49 +0000</pubDate>
      
      <guid>/diary/lofterimport_040/</guid>
      <description>今天再次naive。
早上考试。
第一题感觉好像似乎大概也许应该是不太难吧。但是感觉建边好麻烦，虽然最后拿map乱搞搞定了。然后就让水朝上流了，而且还没拍出来。惨。
第二题是将军讲过的！？虽然在今天早上之前我也不会写。好吧其实我写过。然后就怎么乱搞一下分类讨论+对拍半天就过了。
第三题没啥时间想了。一个不算难想的dp。
下午讲coci的题。感觉好多原题。然后看到truck那题就笑了哈哈。然后发现学军的同学大概是在低调地笑。
毕竟我太年轻了。</description>
    </item>
    
    <item>
      <title>80MSWC diary 2 &amp;&amp; 20141214 总结</title>
      <link>/diary/lofterimport_041/</link>
      <pubDate>Sun, 14 Dec 2014 22:10:09 +0000</pubDate>
      
      <guid>/diary/lofterimport_041/</guid>
      <description>上午讲课下午考试，比较开心。
上午讲各种数学。感觉自己数学弱暴了。然后发现自己还是有点前瞻性的，前几天居然出了两道题，都是今天的例题。
下午考试。题目就是各种不让人看懂的节奏啊。花了俩小时终于弄懂了第二题的题意，然后写了个分块dfs序水了。然后好像把标程干掉了。开心。另外两道传统题都不怎么会做的样子。懒得写高精+还不会后缀自动机。答案提交可以滚大粗了。
所以我太年轻了。</description>
    </item>
    
    <item>
      <title>80MSWC diary 1.5</title>
      <link>/oi/lofterimport_042/</link>
      <pubDate>Sat, 13 Dec 2014 20:45:38 +0000</pubDate>
      
      <guid>/oi/lofterimport_042/</guid>
      <description>既然明天考试是day2，那么今天就叫day1.5好了。
上午下午都在听讲。
上午讲构造。题都比较神奇。我觉得比较重要的是思想吧。以后看到这类题可以稍微有些套路，不过更多的还是要靠智商了。
下午讲字符串。后缀树和后缀自动机前几天就在看，虽然一直不太理解怎么构造出来的。讲得我也有点晕。还是要自己努力消化了。然后在bzoj上看到好多例题都有jiry的不久前的ac记录，orz。
晚上bc做了a和c之后就不想做了。b没想出来，d知道是分块+主席树，不过也懒得敲了。晚上大概吃得有点多。
所以我啊，还是太年轻了。</description>
    </item>
    
    <item>
      <title>BZOJ2795 A Horrible Poem</title>
      <link>/oi/lofterimport_043/</link>
      <pubDate>Sat, 13 Dec 2014 20:41:53 +0000</pubDate>
      
      <guid>/oi/lofterimport_043/</guid>
      <description>今天上课讲的题。
做法就直接枚举约数，或者说分解质因数。后者可以预处理到log。
判循环也比较开心。直接用一些奇奇怪怪的字符串的性质就好了。
看来字符串很博大精深啊。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef unsigned long long qw;
typedef pair &amp;lt;int, qw&amp;gt; hstrv;
#define _l (long long int)
int _d_;
#define readInt(_x_)&amp;nbsp;{&amp;nbsp;\
int&amp;amp; _s_ = _x_;&amp;nbsp;\
while (!isdigit(_d_&amp;nbsp;= getchar()));&amp;nbsp;\
_s_ = 0;&amp;nbsp;\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));&amp;nbsp;\
}
const int maxn = 500009;
const int base = 257;
const int hmod = 1000000093;</description>
    </item>
    
    <item>
      <title>80MSWC diary 1 &amp;&amp; 20141212 总结</title>
      <link>/diary/lofterimport_044/</link>
      <pubDate>Fri, 12 Dec 2014 18:46:40 +0000</pubDate>
      
      <guid>/diary/lofterimport_044/</guid>
      <description>今天是双十二？虽然一直不懂这个日子有什么含义。
在刚人工催吐也只吐出点口水的情况下终于可以坐下而不感觉难受了。
今天一天好像唯一干了一件事就是发烧。所以首先来总结一下会什么会发烧。
大概是昨天晚上吃了汉堡之后又吹了风，然后也许又吃了些不好的棒棒糖（现在还在我右手边），于是就光荣了。
昨天晚上做梦梦到肚子痛，醒来发现真的肚子痛。而且这回压迫疗法的效果非常有限。然后还发现温度怎么不对！？有时很冷有时热的。撑了一会撑到起床，好像要稍微好些了。虽然80MS的早饭好像没放盐。
然后就去考试了。肚子有点痛，去了好几次卫生间。有一回至少蹲了二十分钟，腿都麻了。回到机房瞬间想睡觉。感觉事情不妙。再过两分钟开始发冷了。好吧。
于是早上根本不想写题。就一链剖裸题还写了俩小时。要正常情况下应该是半小时的事。剩下两道题完全没思路。写了俩暴力交了。今天弃疗了。
中午去医院，总觉得比较坑。还抽了血。最后说是因为胃肠引起的高烧，38度呢。开了些药。回去听了两道题感觉坚持不下去了就滚回宾馆睡觉了。
所以说到了人生地不熟的地方，更要小心，要照顾好自己。
（怎么感觉以上都是在吐槽发烧多烦）
今天的考试，虽然状态是一个借口，不过反正是考的不咋的。
发现自己有偏科的迹象。遇到10^5, 10^6就很开心，不然就不会做了。
所以前两题都不太会。
第一题据说是fft的推广。当然以我当时的状态肯定是想不到了。
第二题有点像去年scoi的最后一道题。当然是不会的节奏。
第三题链剖+dfs序+持久化线段树。听mhy说过可以用seg tree区间加等差数列，就现yy了一下发现标记不用下传很愉快。不过因为状态的原因还是多花了很多时间。
所以说学军和八十中的同学把我虐了。
毕竟我还是太年轻了。</description>
    </item>
    
    <item>
      <title>80MSWC diary 0</title>
      <link>/oi/lofterimport_045/</link>
      <pubDate>Fri, 12 Dec 2014 18:24:55 +0000</pubDate>
      
      <guid>/oi/lofterimport_045/</guid>
      <description>昨天晚上被那道usaco的题玩坏了于是没写日记。
来到了帝都。第二次去80ms了。好像没啥好写啊。
这回没下雪不过风吹上去还是挺冷。
晚上去家乐福吃汉堡，然后走回去。外面好冷。（这绝对不是伏笔）
想到明天要考试也是比较开心。和zhx聊了聊人生，然后写了道usaco发现把题看错了不会。然后就弃疗了。</description>
    </item>
    
    <item>
      <title>BZOJ1037 生日聚会</title>
      <link>/oi/lofterimport_046/</link>
      <pubDate>Mon, 08 Dec 2014 15:04:52 +0000</pubDate>
      
      <guid>/oi/lofterimport_046/</guid>
      <description>好久没做过数据范围这么小的题了。
看来我是有点偏科了。
这么前面的题居然都不做。
dp就好。状态是前面男-女的最大值和最小值还有现在有多少男。然后滚动。
我毕竟太年轻。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
const int maxn = 159;
const int maxk = 49;
const int kbase = 23;
const int mod = 12345678;
int n, m, c, f[2][maxn][maxk][maxk];
#define incm(_x_,_b_)&amp;nbsp;{&amp;nbsp;\
int&amp;amp; _a_ = _x_;&amp;nbsp;\
_a_ += _b_;&amp;nbsp;\
if (_a_&amp;nbsp;&amp;gt;= mod)&amp;nbsp;\
_a_ %= mod;&amp;nbsp;\
}
int main()&amp;nbsp;{
#ifndef ONLINE_JUDGE
freopen(&amp;quot;in.txt&amp;quot;,&amp;nbsp;&amp;quot;r&amp;quot;, stdin);
#endif
scanf(&amp;quot;%d%d%d&amp;quot;,&amp;nbsp;&amp;amp;n,&amp;nbsp;&amp;amp;m,&amp;nbsp;&amp;amp;c);
if (c&amp;nbsp;== 0)&amp;nbsp;{
puts(&amp;quot;0&amp;quot;);
}
else {</description>
    </item>
    
    <item>
      <title>20141208 总结</title>
      <link>/diary/lofterimport_047/</link>
      <pubDate>Mon, 08 Dec 2014 12:47:33 +0000</pubDate>
      
      <guid>/diary/lofterimport_047/</guid>
      <description>最后一天了。感觉好开心。
第一题居然做过，然后发现是没有修改的情况。不会。ORZ JCVB。
第二题开始没想通。然后想了想觉得还是可做。于是用链剖+dfs序水过了。在xj题里过的第二道题。
第三道题答案提交。看到题目就懒得做了。骗分。
毕竟我还是太年轻了。</description>
    </item>
    
    <item>
      <title>20141207 总结</title>
      <link>/diary/lofterimport_048/</link>
      <pubDate>Sun, 07 Dec 2014 18:04:16 +0000</pubDate>
      
      <guid>/diary/lofterimport_048/</guid>
      <description>今天大概是人品崩了。看来昨天和zhx在bc上开黑有点损人品啊orz
第一题想对了exgcd但是re了。鬼知道怎么回事。
第二题是啥？不会，直接暴力网络流骗分RE
第三题还是不会。暴力枚举骗分。
毕竟我太弱了。</description>
    </item>
    
    <item>
      <title>20141206 总结</title>
      <link>/diary/lofterimport_049/</link>
      <pubDate>Sat, 06 Dec 2014 12:10:13 +0000</pubDate>
      
      <guid>/diary/lofterimport_049/</guid>
      <description>学军day2。
被题虐烂orz。
第一题看了半天想到贪心。敲sbt，对拍，正确。大数据time，然后发现超时超到哪里去了。换sgt，也没快多少。是我sgt写丑了还是sbt写快了。再yy一下，发现可以拿并查集离线O(n)找前趋和后继。写之，time之，过之。
第二题好像知道怎么做了。但是觉得这个线段树好麻烦。弃疗。
第三题。泥马，仙人掌同构。再见。
然后第二题暴力写挫了。
然后发现jason_yu过了2和3，1挂了。orz烂。
所以我太年轻了。</description>
    </item>
    
    <item>
      <title>20141205 总结</title>
      <link>/diary/lofterimport_050/</link>
      <pubDate>Fri, 05 Dec 2014 15:26:17 +0000</pubDate>
      
      <guid>/diary/lofterimport_050/</guid>
      <description>什么叫自信=&amp;nbsp;=
学军的题orz。
第一题想到了正确的算法，但是没有认为它是正确的，于是写完懒得管了，然后，就丑了。
第二题后缀自动机神题不可做。
第三题想了个错误的网络流。
毕竟我过于年轻了。</description>
    </item>
    
    <item>
      <title>20141204 总结</title>
      <link>/diary/lofterimport_051/</link>
      <pubDate>Fri, 05 Dec 2014 09:38:21 +0000</pubDate>
      
      <guid>/diary/lofterimport_051/</guid>
      <description>昨天太晕以至于忘了写总结。
第一题神题不会做。感觉是机器模拟降次。写暴力还忘了取模。吃了30分。
第二题树论好开心。预处树的形态然后链剖乱搞。
第三题答提神题不可做。最后也没有成功地用c++输出空格。
所以啊，我还是too年轻啊。</description>
    </item>
    
    <item>
      <title>20141203 总结</title>
      <link>/diary/lofterimport_052/</link>
      <pubDate>Wed, 03 Dec 2014 13:44:08 +0000</pubDate>
      
      <guid>/diary/lofterimport_052/</guid>
      <description>再次被虐烂ORZ
第一题昨天正好做了餐巾那题，于是用的费用流，过了。其实思想就是对于一条流既要满足当天条件，又要往下继续流的时候，就让它去终点，然后再从源给条免费的。
第二题三次韦达定理再用等比数列求和。我毕竟是AK过数学联赛的男人哈哈。
第三题插头DP？还不会，SRO对面的MHY。
所以我还是太年轻了。</description>
    </item>
    
    <item>
      <title>BZOJ3786 星系探索</title>
      <link>/oi/lofterimport_053/</link>
      <pubDate>Tue, 02 Dec 2014 17:16:23 +0000</pubDate>
      
      <guid>/oi/lofterimport_053/</guid>
      <description>前两天还在YY动态DFS序呢，这就冒了一个出来。
动态DFS序的郁闷之处在于不好维护dfs序上的end。而把反括号建出来正好能解决这个问题。
然后就splay写得飞慢不知道怎么回事。
用两个栈就可以迭代做出括号序列，自己YY出来的给自己赞一个。
然后是目前最长的代码和倒数第二慢的时间。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
int _d_;
#define readInt(_x_)&amp;nbsp;{&amp;nbsp;\
int &amp;amp;_s_&amp;nbsp;= _x_;&amp;nbsp;\
while (!isdigit(_d_&amp;nbsp;= getchar()));&amp;nbsp;\
_s_ = 0;&amp;nbsp;\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));&amp;nbsp;\
}
#define readOpt(_x_)&amp;nbsp;{&amp;nbsp;\
while (!isupper(_d_&amp;nbsp;= getchar()));&amp;nbsp;\
_x_ = _d_;&amp;nbsp;\
}
typedef long long qw;
#ifdef WIN32
#define lld &amp;quot;%I64d&amp;quot;
#else
#define lld &amp;quot;%lld&amp;quot;
#endif
struct edge {
int t;</description>
    </item>
    
    <item>
      <title>20141202 总结</title>
      <link>/diary/lofterimport_054/</link>
      <pubDate>Tue, 02 Dec 2014 15:20:24 +0000</pubDate>
      
      <guid>/diary/lofterimport_054/</guid>
      <description>好吧第100篇文章是一篇总结。
可以说明我写总结的频率比较高。
今天是昨天的day2，真wa傻了。
早上看到有答案提交题，先写吧。然后一个半小时60分，后面的看不出来了。
然后第一题感觉是地精部落的加强版，还是不会。
第二题看出来了与环没有关系，其实就是一个数列任意两数xor的不同的值的个数。写了个trie树优化暴力居然90，还是比较开心。
然后很年轻地被jason_yu吊打。</description>
    </item>
    
    <item>
      <title>BZOJ2154 Crash的数字表格</title>
      <link>/oi/lofterimport_055/</link>
      <pubDate>Mon, 01 Dec 2014 21:27:34 +0000</pubDate>
      
      <guid>/oi/lofterimport_055/</guid>
      <description>优化方法暑假的时候zhx讲过，我居然还记得好感动。
Mobius反演加些奇异的东西。（不会用公式编辑器是不是已经落伍了）
两个优化-&amp;gt; sqrt(n)^2 == n。
跑得飞慢&amp;nbsp;。而且中间那坨又长又丑。
久了不写都快忘了。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long qw;
#define _l (qw)
const int maxn = 10000009;
const int mod = 20101009;
int pn[maxn], mu[maxn], smu[maxn], tp;
bool pr[maxn];
void pre(int maxn)&amp;nbsp;{
memset(pr, 0, sizeof(pr));
tp = 0;
mu[1]&amp;nbsp;= 1;
for (int i = 2; i &amp;lt;= maxn;&amp;nbsp;++ i)&amp;nbsp;{
if (!pr[i])&amp;nbsp;{
pn[tp ++]&amp;nbsp;= i;
mu[i]&amp;nbsp;=&amp;nbsp;-1;
}
for (int j = 0; j &amp;lt; tp &amp;amp;&amp;amp; i * pn[j]&amp;nbsp;&amp;lt;= maxn;&amp;nbsp;++ j)&amp;nbsp;{</description>
    </item>
    
    <item>
      <title>20141201 总结</title>
      <link>/diary/lofterimport_056/</link>
      <pubDate>Mon, 01 Dec 2014 15:38:59 +0000</pubDate>
      
      <guid>/diary/lofterimport_056/</guid>
      <description>集训队难度的题？
感觉比去年同期水啊。
难道是我变强了？
其实还是很弱，边burnside都没搞懂。
第一题拿约数怎么水就水过去了。正解是burnside。但是下来也没写对。
第二题迷之DFS+DP没看懂STD。毕竟太弱。
第三题拿KDTREE搞过去了。比较开心，学有所用。
然后我还是很年轻的说。</description>
    </item>
    
    <item>
      <title>11月总结 &amp;&amp; 12月计划</title>
      <link>/diary/lofterimport_057/</link>
      <pubDate>Sun, 30 Nov 2014 17:02:59 +0000</pubDate>
      
      <guid>/diary/lofterimport_057/</guid>
      <description>11月干了啥？
先搞完了NOIP，很悲剧没有AK。然后半期考试，没上一本线。然后又颓废地刷了两个星期的数据结构题，顺便把OJ7搬到了新的服务器上然后加了些东西。
至少今年NOIP没有出什么大事，虽然和目标有点差距。总结也写了两篇了不想再吐槽。
然后觉得自己数据结构还是有些进步吧，有些原来觉得不太可写的树套树套树套树while(1)套树的题也敢写了，虽然常常跑得很慢。然后学会了两个新的东西CDQ和KDTREE。之前一直不太能理解，后来发现还是挺好用的。
然后打了两场BC都不错，一场RANK1一场RANK4AK。最自豪的是两次最后一道压轴的数据结构题都被我做出来了。第一次是两棵树用不同的方法处理维护。第二次是三维的MOKIA被我用CDQ套树套树搞过了。感觉自己变强了～
然后ZHX的出题计划还在考虑题。可能我还是太弱吧。
12月没有大赛，但是事情不少。
前10天陪JASON_YU准备清华集训，见识一下更高难度的题。然后有空就找点数据结构放松心情了。
中间去北京集训。据说是省选难度的。去见一见全国的大神些。然后也许可能好像会有机会出题？这个比较开心。
最后两个星期离会考也比较近了，计划每天至少划分2/3个单位的时间准备会考。那时候大概MHY的DP系列也比较完善了，就去看一看DP题。感觉现在除了数据结构以外其它方面我还太弱了点啊。这样下去不行啊。
Historical Comments Unknown friend at 2015-12-25T22:28:20 感觉和您当时差不多，会考焦头烂额QwQ
Unknown friend at 2015-12-27T10:42:23 呃给你补充点背景。去年从80中回来大概不到20号，就直接被班主任拉回教室搞文化课直到期末考完。。。
Unknown friend at 2015-12-27T10:44:24 会考也不用太虚。毕竟难度足够低，一般还会有奇怪的福利hhh
Unknown friend at 2015-12-27T13:35:06 我们没有可以做文科的福利呀，你们当年真是太爽啦T^T
Unknown friend at 2015-12-27T16:34:30 不是说这个&amp;hellip;印象中,文科题还没理科题简单&amp;hellip;重点是这是四川会考ovo</description>
    </item>
    
    <item>
      <title>BZOJ3000 Big Number</title>
      <link>/oi/lofterimport_058/</link>
      <pubDate>Sun, 30 Nov 2014 11:28:01 +0000</pubDate>
      
      <guid>/oi/lofterimport_058/</guid>
      <description>题意：求n!在b进制下的位数（n&amp;lt;=2^31）。
好像要高精！？好像会TLE！？根本不会做！
然后想到answer=∑log(k,i)
然后积分？∫ln(x) dx = xln(x)&amp;nbsp;- x
小数据直接跑，过之。试个极限数据，差了3！？
仔细一想，对数函数是凹的，这样算答案当然会偏小。
百度了一下，发现有个公式：n!≈√(2*π*n)*(n/e)^n。
拆开之后发现就是比原来的积分多了个ln(2*π*n)
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cmath&amp;gt;
const double pi = asin(1)&amp;nbsp;* 2.0;
double calc(double n, double k)&amp;nbsp;{
double ans = 0;
if (n&amp;nbsp;&amp;lt; 100000)&amp;nbsp;{
for (int i = 1; i &amp;lt;= n;&amp;nbsp;++ i)
ans += log(i);
ans /= log(k);
}
else {
ans =&amp;nbsp;(0.5&amp;nbsp;* log(pi * n * 2)&amp;nbsp;+ log(n)&amp;nbsp;* n - n)&amp;nbsp;/ log(k);
}
return ans + 0.5;
}</description>
    </item>
    
    <item>
      <title>Bestcoder #20 题解&amp;&amp;总结</title>
      <link>/diary/lofterimport_060/</link>
      <pubDate>Sat, 29 Nov 2014 22:49:53 +0000</pubDate>
      
      <guid>/diary/lofterimport_060/</guid>
      <description>人生第一次AK网赛。之前cf和bc总是fst。
第一题水，比谁手速快。好像我手速也比较慢啊。
第二题离散一下，然后直接用前缀和找最大。手速又有点慢。
第三题树状数组优化DP，有点像SCOI2014的玉米田。然后写挫了好几次。
第四题比较有含金量。前两天才做了cdq的mokia，于是想了一会决定用cdq套树状数组套平衡树。然后花了20分钟写30分钟把平衡树里ins的时候把点的编号改对和++size。我觉得我没有抢救的必要了。
然后所以虽然AK但是排名还是低。上次虽然只过了两题还是RANK1，难度差距有点大啊。
不过终于超过jason_yu了。
看来我还是比较年轻，还要再努力啊。</description>
    </item>
    
    <item>
      <title>BZOJ1951 [Sdoi2010]古代猪文</title>
      <link>/oi/lofterimport_061/</link>
      <pubDate>Sat, 29 Nov 2014 17:04:43 +0000</pubDate>
      
      <guid>/oi/lofterimport_061/</guid>
      <description>好像数学都退化了。
其实一直没有用过中国剩余定理。虽然好像也不是太麻烦，不过要记住。
然后这题也比较裸吧。把C(n,m)中的阶乘分解成t*p^k的样子就好了。ORZ JASON_YU
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long qw;
#define _l (qw)
const int mod = 999911659;
const int pn[4]&amp;nbsp;=&amp;nbsp;{2, 3, 4679, 35617};
const int maxb = 50009;
int n, g, fac[maxb], tf, s[4];
int t[maxb];
int modPow(int a, int x, int mod)&amp;nbsp;{
int s = 1;
for (a&amp;nbsp;%= mod; x; x &amp;gt;&amp;gt;= 1, a = _l a * a % mod)</description>
    </item>
    
    <item>
      <title>BZOJ3319 黑白树</title>
      <link>/oi/lofterimport_062/</link>
      <pubDate>Fri, 28 Nov 2014 09:46:11 +0000</pubDate>
      
      <guid>/oi/lofterimport_062/</guid>
      <description>异常欢乐的并查集。馒头染色法。均摊O(n)的时间。
离线，先把每个染色操作会染黑哪些边算出来，把黑色子节点并到白色父节点里。
然后倒着处理，询问就直接用并查集问白色子节点顶上的黑色父节点最近是谁。染色操作再染回来。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct edge {
int t, i;
edge *next;
};
struct query {
int t, v, ans;
int *b;
};
int _d_;
#define readInt(_x_)&amp;nbsp;{&amp;nbsp;\
int&amp;amp; _s_ = _x_;&amp;nbsp;\
_s_ = 0;&amp;nbsp;\
while (!isdigit(_d_&amp;nbsp;= getchar()));&amp;nbsp;\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));&amp;nbsp;\
}
const int maxn = 1000009;
int n, m, d[maxn], fa[maxn], v[maxn], c[maxn], r[maxn];</description>
    </item>
    
    <item>
      <title>BZOJ1954 Pku3764 The xor-longest Path</title>
      <link>/oi/lofterimport_063/</link>
      <pubDate>Fri, 28 Nov 2014 08:52:14 +0000</pubDate>
      
      <guid>/oi/lofterimport_063/</guid>
      <description>The input contains several test cases.
虽然我没看到这句话但也A了，什么情况。
a到b的路径xor=(a到根xor b到根)&amp;nbsp;水
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct edge {
int t, v;
edge *next;
};
const int maxn = 100009;
const int maxl = 33;
int n, v[maxn], fa[maxn], tr[maxn * maxl][2], tn;
edge *head[maxn],&amp;nbsp;*ep;
inline void addEdge(int u, int v, int w)&amp;nbsp;{
ep-&amp;gt; t = v;
ep-&amp;gt; v = w;
ep-&amp;gt; next = head[u];
head[u]&amp;nbsp;= ep ++;</description>
    </item>
    
    <item>
      <title>20141125/27 总结</title>
      <link>/diary/lofterimport_064/</link>
      <pubDate>Thu, 27 Nov 2014 18:37:05 +0000</pubDate>
      
      <guid>/diary/lofterimport_064/</guid>
      <description>被zhx玩傻了。
day1做得不好。
第一题迷一般的博弈，最初用三方的dp，然后也想到了两方可以通过单调优化下来，不过一直以为t的范围有10^5，于是也懒得写了。结果t只有10。出题人不负责啊。
第二题其实比较简单。直接暴力dp然后加个矩阵快速幂优化。但是一直没有想清楚pi(num)&amp;lt;=123是什么意思，所以就没有写。
第三题写得最久。应该也是对的。只是，对仙人掌的定义有点误差，而已，嘛。
然后day就挂了。
day2自己把ak吃了。
第一题是树形dp，比较水秒得比较快。
第二题是图论。最初想的是多少点对(i, j)的最短路过u，然后没想清楚怎么在O(n)里找出dag上每个点能到多少个点，于是想啊想，然后发现定义错了。应该是直接dp就好了。然后就是把maxm写成maxn然后WA傻的节奏。
第三题给高一小朋友出过弱化版。就是用各种能求的大小关系容斥一下。虽然推了一会不过还是推出来了。
毕竟我还是太年轻了。</description>
    </item>
    
    <item>
      <title>Scoi2013多项式的运算</title>
      <link>/oi/lofterimport_065/</link>
      <pubDate>Wed, 26 Nov 2014 16:04:09 +0000</pubDate>
      
      <guid>/oi/lofterimport_065/</guid>
      <description>平衡树维护序列的老题。之前用SMT写过，不过在bzoj上就tle了。splay大法好。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
int _d_;
#define readInt(_x_)&amp;nbsp;{&amp;nbsp;\
int&amp;amp; _s_ = _x_;&amp;nbsp;\
while (!isdigit(_d_&amp;nbsp;= getchar()));&amp;nbsp;\
_s_ = 0;&amp;nbsp;\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));&amp;nbsp;\
}
#define readStr(_s_)&amp;nbsp;{&amp;nbsp;\
char* _i_ = _s_;&amp;nbsp;\
while (!islower(_d_&amp;nbsp;= getchar()));&amp;nbsp;\
while ((*(_i_&amp;nbsp;++)&amp;nbsp;= _d_), islower(_d_ = getchar()));&amp;nbsp;\
*(_i_)&amp;nbsp;= 0;&amp;nbsp;\
}
#define _l (long long int)
const int maxn = 300009;
const int mod = 20130426;</description>
    </item>
    
    <item>
      <title>BZOJ3237 [Ahoi2013]连通图</title>
      <link>/oi/lofterimport_066/</link>
      <pubDate>Wed, 26 Nov 2014 11:32:53 +0000</pubDate>
      
      <guid>/oi/lofterimport_066/</guid>
      <description>CDQ重构图。听上去比CDQ还高档的样子。
就是每层重新标号，把没有询问到的边拿来跑并查集。
最初是分开考虑然后可修复的并查集就T傻了。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;set&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
int _d_;
#define readInt(_x_)&amp;nbsp;{&amp;nbsp;\
int&amp;amp; _s_ = _x_;&amp;nbsp;\
while (!isdigit(_d_&amp;nbsp;= getchar()));&amp;nbsp;\
_s_ = 0;&amp;nbsp;\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));&amp;nbsp;\
}
const int maxn = 100009;
const int maxm = 200009;
const int maxl = 19;
struct edge {
int a, b, i;
};
struct dset {
int r[maxn], hp[maxn * 5], hv[maxn * 5], cnt;</description>
    </item>
    
    <item>
      <title>BZOJ3289 Mato的文件管理</title>
      <link>/oi/lofterimport_067/</link>
      <pubDate>Mon, 24 Nov 2014 20:52:44 +0000</pubDate>
      
      <guid>/oi/lofterimport_067/</guid>
      <description>离散，然后树状数组+莫队。
最初用的是直接粘过来的1488的sbt，然后极限随机数据要跑14s。好郁闷。
然后改用数状数组就变1s了。是我再次把sbt写丑了还是它常数够厉害TT
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct query {
int i, l, r, pl, pr;
};
typedef unsigned int uint;
const int maxn = 50009;
#define update(_p_)&amp;nbsp;(sz[_p_]=sz[ls[_p_]]+sz[rs[_p_]]+1)
inline bool cmpQry(const query&amp;amp; a, const query&amp;amp; b)&amp;nbsp;{
return a. pl &amp;lt; b. pl ||&amp;nbsp;(a. pl == b. pl &amp;amp;&amp;amp; a. pr &amp;gt; b. pr);
}
inline bool cmpP(int* a, int* b)&amp;nbsp;{
return *a&amp;nbsp;&amp;lt;&amp;nbsp;*b;
}
int n, m, bsz, a[maxn],&amp;nbsp;*r[maxn], maxa, t[maxn];</description>
    </item>
    
    <item>
      <title>BZOJ1488 || POJ1741 Tree</title>
      <link>/oi/lofterimport_068/</link>
      <pubDate>Mon, 24 Nov 2014 19:53:03 +0000</pubDate>
      
      <guid>/oi/lofterimport_068/</guid>
      <description>据说是男人八题。
状态太差调了一节宝贵的晚自习，严重不开心。
异常裸的点分治。然后里面还是套的sbt。
卡空间比较丧病，不能开nlogn，要想办法开到n。其实就是找重心分治完再bfs一遍。最初没有写，所以mle爽，在poj上还显示的是re。
然后各种逗的错误调啊调。把代码调得怪丑。我还是naive啊。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct edge {
int t, v;
edge *next;
};
const int maxn = 40009;
int n, k, ans;
int d[maxn], tvis, vis[maxn], vd[maxn], sz[maxn], qu[maxn];
edge *ep,&amp;nbsp;*head[maxn], elst[maxn * 2];
#define update(_p_)&amp;nbsp;(sz[_p_]=sz[ls[_p_]]+sz[rs[_p_]]+1)
namespace sbt {
const int maxnd = maxn * 2;
const int balc = 5;
int nst[maxnd], tn;
int ls[maxnd], rs[maxnd], vl[maxnd], sz[maxnd];
inline void lRot(int&amp;amp; p)&amp;nbsp;{</description>
    </item>
    
    <item>
      <title>BZOJ2626 JZPFAR</title>
      <link>/oi/lofterimport_069/</link>
      <pubDate>Mon, 24 Nov 2014 16:04:27 +0000</pubDate>
      
      <guid>/oi/lofterimport_069/</guid>
      <description>jason_yu表示是kd-tree的裸题。
拿个堆维护一下答案，然后剪剪枝啥的，写起来轻松愉快还比lct短。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long qw;
typedef pair &amp;lt;qw, int&amp;gt; hele;
#define _l (qw)
int _d_;
bool _nag_;
#define readInt(_x_)&amp;nbsp;{&amp;nbsp;\
int &amp;amp;_s_&amp;nbsp;= _x_;&amp;nbsp;\
_s_ = 0;&amp;nbsp;\
_nag_ = 0;&amp;nbsp;\
while (!isdigit(_d_&amp;nbsp;= getchar()))&amp;nbsp;\
if (_d_&amp;nbsp;==&amp;nbsp;&#39;-&#39;)&amp;nbsp;\
_nag_ = 1;&amp;nbsp;\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));&amp;nbsp;\
if (_nag_)&amp;nbsp;\
_s_ =&amp;nbsp;- _s_;\
}
const int maxn = 100009;</description>
    </item>
    
    <item>
      <title>BZOJ1227 [SDOI2009]虔诚的墓主人</title>
      <link>/oi/lofterimport_070/</link>
      <pubDate>Mon, 24 Nov 2014 10:59:07 +0000</pubDate>
      
      <guid>/oi/lofterimport_070/</guid>
      <description>写完Kdtree感觉整个人都要离散了。
这题比较神，之前连题都没看懂。每个位置的方案数就是上下左右的数量的组合数的乘积。把x离散之后维护区间中左&amp;times;右的和，上下y相同的扫一遍搞定。（感觉说了像没说）
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct point {
int x, y;
};
const int maxn = 100009;
const int maxk = 13;
inline bool cmpP(int* a, int* b)&amp;nbsp;{
return *a&amp;nbsp;&amp;lt;&amp;nbsp;*b;
}
inline bool cmpy(const point&amp;amp; a, const point&amp;amp; b)&amp;nbsp;{
return (a. y &amp;lt; b. y)&amp;nbsp;||&amp;nbsp;(a. y == b. y &amp;amp;&amp;amp; a. x &amp;lt; b. x);
}
point a[maxn];
int n, m, c[maxn][maxk], cx[maxn], tx[maxn], t[maxn], maxx, ans;</description>
    </item>
    
    <item>
      <title>BZOJ2648 SJY摆棋子</title>
      <link>/oi/lofterimport_071/</link>
      <pubDate>Mon, 24 Nov 2014 10:23:51 +0000</pubDate>
      
      <guid>/oi/lofterimport_071/</guid>
      <description>Log^2的cdq分治怎么也跑不过。优化常数优化到底了也不行。所以kd大法好。
怎么都觉得kd树就一暴力+剪枝=log。
思想就是先按x二分，然后再按y二分，然后再按x二分。然后这玩意比较像平衡树，中间那个点是要代表一个真实的结点的而不是一个值。然后insert的时候感觉复杂度完全没有保证啊。如果要保证可能要替罪羊一类的东西吧。虽然这题好像不用保证。
询问的时候就更迷了，就是估计一个离哪边近，然后先搜。然后另一边如果估计值还小于答案就再搜一遍。好诡异，时间复杂度是怎么来的。
然后代码略丑，加了zhx式读入优化后长度xxxxx。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
#define READ_OPTIMIZE
#ifdef READ_OPTIMIZE
/*int _d_;
#define readInt(_s_)&amp;nbsp;{\
_s_ = 0;\
while (!isdigit(_d_&amp;nbsp;= getchar()));\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\
}*/
const int BUF_SIZE = 30;
char buf[BUF_SIZE],&amp;nbsp;*buf_s = buf,&amp;nbsp;*buf_t = buf + 1;
&amp;nbsp;&amp;nbsp;
#define PTR_NEXT()&amp;nbsp;\
{&amp;nbsp;\
buf_s ++;&amp;nbsp;\
if (buf_s&amp;nbsp;== buf_t)&amp;nbsp;\
{&amp;nbsp;\
buf_s = buf;&amp;nbsp;\
buf_t = buf + fread(buf, 1, BUF_SIZE, stdin);&amp;nbsp;\</description>
    </item>
    
    <item>
      <title>BZOJ2716 [Violet 3]天使玩偶</title>
      <link>/oi/lofterimport_073/</link>
      <pubDate>Mon, 24 Nov 2014 08:43:28 +0000</pubDate>
      
      <guid>/oi/lofterimport_073/</guid>
      <description>看时间比较宽么，写一个log^2的cdq+树状数组么。
然后被2648卡了。学kd-tree吧。
naive。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
int _d_;
#define readInt(_s_)&amp;nbsp;{\
_s_ = 0;\
while (!isdigit(_d_&amp;nbsp;= getchar()));\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\
}
struct point {
int x, y, t, i;
};
const int maxn = 500009;
const int maxz = 1000009;
const int inf = 0x3f3f3f3f;
inline bool cmpPoint(const point&amp;amp; a, const point&amp;amp; b)&amp;nbsp;{
return a.</description>
    </item>
    
    <item>
      <title>BZOJ2506 calc</title>
      <link>/oi/lofterimport_074/</link>
      <pubDate>Sun, 23 Nov 2014 17:32:59 +0000</pubDate>
      
      <guid>/oi/lofterimport_074/</guid>
      <description>看到取模瞬间想到了昨天的bc。
应该这是取模然后求啥玩意的时候的比较通用的解法吧。p&amp;lt;=sqrt(maxv)的预处理，剩下的直接暴力。结果预处理又写丑了一回。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
const int maxn = 100009;
const int maxv = 10000;
const int bsz = 100;
const int maxb = 103;
int n, m;
int a[maxn], vb[maxb][maxb], ve[maxb][maxb];
int xb[maxn], xe[maxn];
int i_buf[maxn * maxb * 2], tib;
void pre()&amp;nbsp;{
memset(ve, 0, sizeof(ve));
memset(xe, 0, sizeof(xe));
for (int i = 1; i &amp;lt;= n;&amp;nbsp;++ i)
++ xe[a[i]];
for (int i = 0; i &amp;lt;= maxv;&amp;nbsp;++ i)&amp;nbsp;{</description>
    </item>
    
    <item>
      <title>BZOJ1833 [ZJOI2010]count 数字计数</title>
      <link>/oi/lofterimport_075/</link>
      <pubDate>Sun, 23 Nov 2014 16:45:32 +0000</pubDate>
      
      <guid>/oi/lofterimport_075/</guid>
      <description>数位DP好麻烦啊不想写啊怎么办啊。
利用trie树思想直接做好了。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long qw;
#ifdef WIN32
#define lld &amp;quot;%I64d&amp;quot;
#else
#define lld &amp;quot;%lld&amp;quot;
#endif
const int maxn = 15;
qw p10[maxn];
qw x, y, ans[10], c[10];
int n;
char a[maxn];
void calc(qw val, int sgn)&amp;nbsp;{
if (!val)
return;
sprintf(a + 1, lld, val);
int n = strlen(a + 1);
memset(c, 0, sizeof(c));
qw cz, cm, cr;
cz = 1;</description>
    </item>
    
    <item>
      <title>BZOJ3489 A simple rmq problem</title>
      <link>/oi/lofterimport_076/</link>
      <pubDate>Sun, 23 Nov 2014 16:15:05 +0000</pubDate>
      
      <guid>/oi/lofterimport_076/</guid>
      <description>乍一看不会。
想了想，求出每一个数的前一个相同的数的位置和后一个相同的数的位置，然后询问就是L&amp;lt;=i&amp;lt;=R &amp;amp;&amp;amp; next[i]&amp;gt;=R &amp;amp;&amp;amp; last[i]&amp;nbsp;&amp;lt;= L的最大的a[i]。这三层树套树啊！？
好像不带修改，那可以把一个Log的树优化成1的前缀和。
然后最值不满足减法，所以就把L&amp;lt;=i&amp;lt;=R拿动态建的线段树套里面好了。
卡空间400+MB过了，我对拍的大数据把网上的某人的程序干掉了哈哈。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct seg {
int v, ls, rs;
};
const int maxn = 100009;
const int maxnd = maxn * 409;
int n, m, a[maxn], v[maxn], ls[maxn], nx[maxn], o[maxn];
int t[maxn], sp;
seg sl[maxnd];
inline bool cmpO(const int&amp;amp; a, const int&amp;amp; b)&amp;nbsp;{
return ls[a]&amp;nbsp;&amp;lt; ls[b];
}
int getLa(int l0)&amp;nbsp;{
int l = 1, r = n;</description>
    </item>
    
    <item>
      <title>BZOJ3282 Tree</title>
      <link>/oi/lofterimport_077/</link>
      <pubDate>Sun, 23 Nov 2014 14:40:47 +0000</pubDate>
      
      <guid>/oi/lofterimport_077/</guid>
      <description>LCT的简单题。好久不写都手生了，还把rotate写错了一点点，导致找了半天错。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
int _d_;
#define readInt(_s_)&amp;nbsp;{\
_s_ = 0;\
while (!isdigit(_d_&amp;nbsp;= getchar()));\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\
}
const int maxn = 300009;
int n, m;
int ls[maxn], rs[maxn], pt[maxn], rv[maxn], vl[maxn], vs[maxn];
inline void update(const int&amp;amp; p)&amp;nbsp;{
vs[p]&amp;nbsp;= vs[ls[p]]&amp;nbsp;^ vl[p]&amp;nbsp;^ vs[rs[p]];
}
inline void fix(int p)&amp;nbsp;{
if (rv[p])&amp;nbsp;{
swap(ls[p], rs[p]);
if (ls[p])</description>
    </item>
    
    <item>
      <title>BZOJ1492 [NOI2007]货币兑换Cash</title>
      <link>/oi/lofterimport_078/</link>
      <pubDate>Sun, 23 Nov 2014 13:51:36 +0000</pubDate>
      
      <guid>/oi/lofterimport_078/</guid>
      <description>cdq分治第二题。
最初没看清题所以一直不会做。晕。
cdq教程里的模板题。
显然所有卖都是卖完，买都是把钱买光。
f[i]表示第i天结束后最多持有b卷的数量，ans表示当前最多能赚到的rmb。
方程是：
f[i]&amp;nbsp;= max(ans, f[j]&amp;nbsp;* r[j]&amp;nbsp;* a[i]&amp;nbsp;+ f[j]&amp;nbsp;* b[i])&amp;nbsp;/&amp;nbsp;(a[i]&amp;nbsp;* r[i]&amp;nbsp;+ b[i])。
移项得：
f[j]&amp;nbsp;=&amp;nbsp;-(a[i]/b[i])&amp;nbsp;*&amp;nbsp;(r[j]&amp;nbsp;* f[j])&amp;nbsp;+&amp;nbsp;(r[i]&amp;nbsp;* a[i]&amp;nbsp;+ b[i])&amp;nbsp;/ b[i]&amp;nbsp;* f[j]。
把r[j]*f[j]看作x，把f[j]看作y，好像可以斜率优化了。
&amp;nbsp;不急，f[j]好像没有单调性吧？不对，好像a[i]/b[i]也没有单调性！？
平衡树维护凸壳？想起了上回那道hnoi的作业，调了一晚上，怎么能这样。
然后，其实可以cdq。
每次对右边有影响的是左边的凸壳，所以先跑左边，计算左边对右边的影响，再跑右边。这回是中序遍历，而不是Mokia那题的后序。
原来cdq可以这么神奇。
然后又把凸壳写丑了TT。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
const int maxn = 100009;
double ans, s, f[maxn], a[maxn], b[maxn], r[maxn];
int n, h[maxn], tmp[maxn], t;
inline double getx(const int&amp;amp; i)&amp;nbsp;{
return f[i]&amp;nbsp;* r[i];
}
inline double gety(const int&amp;amp; i)&amp;nbsp;{
return f[i];</description>
    </item>
    
    <item>
      <title>BZOJ2351/2462 [BeiJing2011]Matrix</title>
      <link>/oi/lofterimport_079/</link>
      <pubDate>Sat, 22 Nov 2014 22:58:45 +0000</pubDate>
      
      <guid>/oi/lofterimport_079/</guid>
      <description>好像要用二维AC自动机的样子！？不对，还要优化不然还会MLE！？
naive。
哈希水过之。
中途某处忘强转导致调了良久。
2462丧心病狂卡stl常数，差点写平衡树了，然后想了想二分水之。
#include &amp;lt;cstdio&amp;gt;
#include&amp;nbsp;&amp;lt;cstring&amp;gt;
#include&amp;nbsp;&amp;lt;set&amp;gt;
#include&amp;nbsp;&amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long qw;
typedef unsigned long long uqw;
#define _l (qw)
const int rmod = 345379;
const int b1 = 3;
const int b2 = 3153131;
const int maxn = 1009;
int pb1[maxn];
int n, m, x, y, q, hr[maxn][maxn], t;
uqw hl[maxn][maxn], pb2[maxn];
char g[maxn];
uqw th[maxn * maxn];
void pre()&amp;nbsp;{
pb1[0]&amp;nbsp;= 1;
pb2[0]&amp;nbsp;= 1;</description>
    </item>
    
    <item>
      <title>BZOJ1176 [Balkan2007]Mokia</title>
      <link>/oi/lofterimport_081/</link>
      <pubDate>Fri, 21 Nov 2014 21:42:33 +0000</pubDate>
      
      <guid>/oi/lofterimport_081/</guid>
      <description>cdq分治第一题。
最近的主题是数据结构，这玩意应该也算一种和莫队一样厉害的黑暗大法吧。有些需要你把在线写得足够厉害的题可以用这玩意来水。
写起来很像归并排序，按时间分治，然后再按某个坐标之类的玩意归并一下，归并的时候像求逆序对一样做，计算一边对另一边的贡献，顺便用点啥数据结构维护一下之类的。
这题有点像上帝造题七分钟。不过w的范围显然不是让你写二维树状数组。感觉那题可以用cdq水过，不过cdq好像不能用简单的二维树状数组，至少要动态一下啥的，然后空间就bye了。
这题就是按x排序查询y。课件上的原题。
另外依然不会迗代，还是写的递归。（找到了fft的感觉）
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long qw;
#ifdef WIN32
#define lld &amp;quot;%I64d&amp;quot;
#else
#define lld &amp;quot;%lld&amp;quot;
#endif
struct query {
int t, x, y, v;
inline query(int t0 = 0, int x0 = 0, int y0 = 0, int v0 = 0)&amp;nbsp;{
t = t0, x = x0, y = y0, v = v0;
}
};</description>
    </item>
    
    <item>
      <title>BZOJ3262 陌上花开</title>
      <link>/oi/lofterimport_082/</link>
      <pubDate>Fri, 21 Nov 2014 14:50:45 +0000</pubDate>
      
      <guid>/oi/lofterimport_082/</guid>
      <description>出题人应该才是真正的机房语文竞赛冠军。
好厉害的数据结构。cdq的不会。
树状数组套平衡树跑得飞快。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct flower {
int a, b, c;
};
const int maxn = 100009;
const int maxv = 200009;
const int maxl = 17;
#define update(p)&amp;nbsp;(sz[p]=sz[ls[p]]+sz[rs[p]]+1)
namespace sbt {
const int maxnd = maxn * maxl;
const int balc = 10;
int tn, ls[maxnd], rs[maxnd], sz[maxnd], vl[maxnd];
void init()&amp;nbsp;{
tn = 0;
sz[0]&amp;nbsp;= 0;
}
inline void lRot(int&amp;amp; p)&amp;nbsp;{</description>
    </item>
    
    <item>
      <title>BZOJ3751 [NOIP2014]解方程</title>
      <link>/oi/lofterimport_083/</link>
      <pubDate>Fri, 21 Nov 2014 09:11:40 +0000</pubDate>
      
      <guid>/oi/lofterimport_083/</guid>
      <description>BZOJ里的第二道noip题，今年防ak题，OTZ。
最初直接用大素数取模的方法要TLE，虽然本机不会。
用几个小质数pni，算出在模pni的同余系里0~pni-1的答案。如果x为原方程的解的话x%pni在模pni意义下也应该为0。
然后还是会TLE，最后发现小质数乘的时候不用取模了。bzoj上这题纯粹是丧心病狂卡常数啊。
ORZMHY
#define PROC &amp;quot;equation&amp;quot;
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef unsigned long long uqw;
typedef long long qw;
const int maxn = 109;
const int maxl = 10009;
const int maxm = 1000009;
const int cp = 5;
//const int pn[cp]&amp;nbsp;=&amp;nbsp;{111119, 23333, 11113, 23251, 33329};
const int pn[]&amp;nbsp;=&amp;nbsp;{22861, 22871, 22877, 22901, 22907, 22921};
const int p10[]&amp;nbsp;=&amp;nbsp;{1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000};</description>
    </item>
    
    <item>
      <title>BZOJ1486 [HNOI2009]最小圈</title>
      <link>/oi/lofterimport_084/</link>
      <pubDate>Thu, 20 Nov 2014 17:14:47 +0000</pubDate>
      
      <guid>/oi/lofterimport_084/</guid>
      <description>做过。但是不对。
迷之找负环。
初值直接赋为0，这样可以节省找没用的最短路的时间。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct edge {
int t;
double v;
edge *next;
};
const int maxn = 3009;
const int maxm = 10009;
const double eps = 1e-9;
const double finf = 1e20;&amp;nbsp;
int n, m;
bool iq[maxn];
double d[maxn], ave;
edge *ep,&amp;nbsp;*head[maxn], elst[maxm];
bool dfs(int p)&amp;nbsp;{
iq[p]&amp;nbsp;= 1;
for (edge* e = head[p]; e; e = e-&amp;gt; next)
if (d[e-&amp;gt; t]&amp;nbsp;-&amp;nbsp;(d[p]&amp;nbsp;+ e-&amp;gt; v)&amp;nbsp;&amp;gt; eps)&amp;nbsp;{</description>
    </item>
    
    <item>
      <title>BZOJ3123 [Sdoi2013]森林</title>
      <link>/oi/lofterimport_085/</link>
      <pubDate>Thu, 20 Nov 2014 15:49:34 +0000</pubDate>
      
      <guid>/oi/lofterimport_085/</guid>
      <description>数据结构题神马的最开心了。
乍一看动态树，其实不然。复杂度可以再乘一个log的。
启发式合并。然后合并的时候直接暴力重构整棵子树，建主席树只和父亲节点有关，所以还是能搞定。
写了一个机智的垃圾回收把log^2的空间变成了log。然后发现空间有512MB。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct edge {
int t;
edge* next;
};
struct seg {
int v, c;
seg *ls,&amp;nbsp;*rs;
};
#define readInt(_s_)&amp;nbsp;{\
int _d_;\
_s_ = 0;\
while (!isdigit(_d_&amp;nbsp;= getchar()));\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\
}
const int maxn = 80009;
const int maxl = 33;
const int maxnd = maxn * maxl;</description>
    </item>
    
    <item>
      <title>11月下旬计划</title>
      <link>/oi/lofterimport_086/</link>
      <pubDate>Wed, 19 Nov 2014 08:01:09 +0000</pubDate>
      
      <guid>/oi/lofterimport_086/</guid>
      <description>只有两个星期。
第一个星期（也就是现在）先在bzoj上写些水题来找找感觉。
根据卷子再看一遍半期之前的知识点。然后看一看历史书。
第二个星期去学习kd-tree，然后写题。顺便可以研究一下高维树套树的问题。
开始做文化课的作业。数理化生跟着进度，自己选择性多做一些作业。</description>
    </item>
    
    <item>
      <title>BZOJ2209 [Jsoi2011]括号序列</title>
      <link>/oi/lofterimport_087/</link>
      <pubDate>Tue, 18 Nov 2014 18:50:06 +0000</pubDate>
      
      <guid>/oi/lofterimport_087/</guid>
      <description>好恶心的数据结构题。
考虑单个询问。把(视作1，把)视作-1，设minprefix为最小前缀和，设cp=(minprefix+1)/2，那么答案为(sum/2+cp*2)，使劲想想想得出来。
所以就是用个splay或者smt来维护一下一段的最小前缀和以及总和。因为有两种操作所以写起来比较麻烦。要注意不要把操作看反了，还要注意标记的优先级和更新的问题。
恶心了一下午。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct dat {
int sm, t[2][2];
inline void operator =(const dat&amp;amp; a)&amp;nbsp;{
sm = a. sm;
t[0][0]&amp;nbsp;= a. t[0][0];
t[0][1]&amp;nbsp;= a. t[0][1];
t[1][0]&amp;nbsp;= a. t[1][0];
t[1][1]&amp;nbsp;= a. t[1][1];
}
};
const int maxn = 100009;
int n, m, cr, a[maxn], sz[maxn], ls[maxn], rs[maxn], pt[maxn], vl[maxn];
bool flip[maxn], rev[maxn];
dat d[maxn];
dat sgd(int v)&amp;nbsp;{
dat r;
r. sm = v;</description>
    </item>
    
    <item>
      <title>BZOJ3236 作业</title>
      <link>/oi/lofterimport_088/</link>
      <pubDate>Tue, 18 Nov 2014 11:26:38 +0000</pubDate>
      
      <guid>/oi/lofterimport_088/</guid>
      <description>好厉害的数据结构题，时限太吓人了。
最初想写莫队的，但是在数据范围下屈服了。
用可持久化线段树套可持久化线段树来维护可过。虽然跑了97s。本机跑得快得多，虽然有两个点被卡到了18s。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct seg {
int v, ls, rs;
};
#define readInt(_s_)&amp;nbsp;{\
_s_ = 0;\
int _d_ = 0;\
while (!isdigit(_d_&amp;nbsp;= getchar()));\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\
}
const int maxn = 100009;
const int maxl = 20;
const int maxnd = maxn * maxl * maxl;
seg s[maxnd];
int n, m, t, a[maxn], d[maxn], c[maxn],&amp;nbsp;*r[maxn], sp, rt[maxn];</description>
    </item>
    
    <item>
      <title>NOIP2014 总结2</title>
      <link>/diary/lofterimport_089/</link>
      <pubDate>Mon, 17 Nov 2014 23:05:14 +0000</pubDate>
      
      <guid>/diary/lofterimport_089/</guid>
      <description>今天正式成绩出来了，听说要写总结。
前两天写了一次，不过感觉更像是简单题解的样子。
考了这么多年，好像没有一次让自己满意过。总是犯一些奇奇怪怪到让自己都感觉可笑的错误，然后与目标失之交臂。这就是我对noip的最深刻的印象。尽管在不断强化的训练中学会了更多保障正确性的东西，不过最后考试的时候还是出现了各种疏漏。毕竟noip，考的是细心。虽然不管是noi还是更高档的考试中，细心都是必不可少的。今年的noi就很好地证明了这一点。
其实考试本身并没有什么好总结的。难度摆在那里。上500也不难，想ak也不简单。今年的noi可能已经预告过了，只是我们都没有把它联想到noip上来而已。考简单了不算坏事，但也不是什么好事。如果想要存活下去，那么不论什么难度都要能应对才行。
noip这段时间也应该算是后面长期停课的热身。有很多东西都在发生着改变。多数时间你要自己安排自己长达几个月的学习。从一天要写什么题，到一个星期要搞定什么东西，到最后要达到什么水平，都要学会自己去规划。从oi中要学会的的不仅是做题，还有很多更重要的东西。
生活的方方面面都需要自己去平衡。文化课，锻炼等等。有时候感觉就像在走独木桥，有时候甚至脚下已经没有支撑，但是还是只有沿着既定的方向走下去。开弓没有回头箭。下面的路，我会把它走好的。
Historical Comments Unknown friend at 2014-11-17T23:59:39 HJA体现了一名UOI队员应有的素质，实力和信心 OTZ OTZ OTZ OTZ OTZ 我的脸更痛了T_T
Unknown friend at 2014-11-18T08:15:18 大半夜还不睡。。</description>
    </item>
    
    <item>
      <title>HDOJ5107 K-short Problem</title>
      <link>/oi/lofterimport_090/</link>
      <pubDate>Mon, 17 Nov 2014 11:20:21 +0000</pubDate>
      
      <guid>/oi/lofterimport_090/</guid>
      <description>前天晚上的best coder的题。
数据太弱暴力都放过去了，而且还是错的。当然我也太naive了TT。
我没管k&amp;lt;=10，直接硬上树状数组套平衡树，用二分搞的。然后数组开小了不开心啊。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cmath&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;algorithm&amp;gt;
#include &amp;lt;set&amp;gt;
#include &amp;lt;memory.h&amp;gt;
using namespace std;
struct query {
int x, y, k, n;
};
struct tower {
int x, y, h;
};
inline bool cmpTower(const tower&amp;amp; a, const tower&amp;amp; b)&amp;nbsp;{
return a. x &amp;lt; b. x;
}
inline bool cmpQuery(const query&amp;amp; a, const query&amp;amp; b)&amp;nbsp;{
return a. x &amp;lt; b. x;
}
inline bool cmpP(int* a, int* b)&amp;nbsp;{</description>
    </item>
    
    <item>
      <title>省选前长期计划</title>
      <link>/oi/lofterimport_091/</link>
      <pubDate>Mon, 17 Nov 2014 09:52:54 +0000</pubDate>
      
      <guid>/oi/lofterimport_091/</guid>
      <description>做事总得有点计划性。
省选是第二步。noip这步逗了，所以后面要加油。
十一月和十二月重点搞数据结构。毕竟天冷不适合思考太复杂的数学问题TT比如kd-tree之类的东西拿来看一看，bzoj上以前wc的数据结构也不少。争取多刷些题。
一月份大概会有会考，就乱刷些题当休闲了。
二月有wc。然后到时候大神应该也比较多，可以多学习一下数学题和dp。还要把计算几何认真学习一下。
三月大概会开始集训了。图论题比较重要。很多题就是看你记不记得那些结论。当然也有不少的烧脑题。需要多刷题来弥补智商的不足。
四月么，加油！</description>
    </item>
    
    <item>
      <title>高二上半期总结</title>
      <link>/oi/lofterimport_092/</link>
      <pubDate>Sun, 16 Nov 2014 22:52:16 +0000</pubDate>
      
      <guid>/oi/lofterimport_092/</guid>
      <description>想起有这么一个总结，但是忘了带本子了，只好这样写了。
半个学期在学习文化课的时间也不超过20天。大概是没有多少好总结的。
半期的时候考懞了。虽然也花了三天的时间预习，不过那也只是简单地补补知识点，完全不能挽回任何东西。毕竟在高中的文化课里，书本和考试的差距还是有那么一些大的。感觉数学英语的差距要稍微小一些，另外四科就比较惨淡了。下半学期没有noip那么要紧的事情了，虽然还要停课，但是每天晚上也还是要做下作业，补一补知识点。数学物理和英语争取能跟上进度，这样压力应该会小一些。然后前半期的知识，每天做完作业之后也按顺序去前面把相应的作业做一做。班上有不少人批判刷题，但是现在血淋淋的事实就是，不刷题根本没有办法应付考试。
另外就是竞赛吧。其实这半期也没有写多少议论文，题解和总结倒写了不少。noip考得应该还将就，明天出正式成绩。反正第一步是迈出去了，后面的路会更艰险，不过我有信心和决心去实现自己的愿望。选择了便认定这一条路走下去，剩者为王！
好像虽然在停课，也参与了一些活动。比如运动会啥的，然后成绩也不错以至于被rp攻击了好几天。长跑教会了我不只是长跑。也许有许多人会和你在路上相遇，但是只有你自己坚持下来去冲击终点的红线。也许有人会跑得很快，但是你也不要怕，也许他们过会就会体力不支。也许有人会跑得很慢，但是也不要骄傲，他们也许是在保存实力。至于总有些人会战胜你，要保持一颗平和的心，因为有很多人也在以同样的视角看你。总之，你要做的就是不断地努力。即使是在你累得不能呼吸的时候，只要终点还在前方，你就得跑下去。长跑如是，竞赛如是，人生亦如是。当然长跑这个项目也不能停。好的身体在后面的学习中还是很重要的。
另外在停课搞竞赛的时候也还是学到了很多其它的东西。比如如何去协助老师管理同学，如何组织大家做事，以及如何应对各种突发情况等等。这些也是人生宝贵的财富吧。管理人是比管理程序更麻烦也更有挑战性的一件事情，也是必需要学会的一件事情。
下半学期的任务更加复杂。没有像noip一样的重大事件了，但是这半个学期将会深远地影响到高中结业以及省选，所以也要抓紧时间，提高效率。
最后希望明天++ rp，也希望我不会再写一篇同样题目的总结。
Historical Comments Unknown friend at 2014-11-16T22:56:11 OTL OTL OTL OTL OTL Unknown friend at 2014-11-16T22:57:13 现在还在赶……</description>
    </item>
    
    <item>
      <title>BZOJ3744 Gty的妹子序列</title>
      <link>/oi/lofterimport_095/</link>
      <pubDate>Fri, 14 Nov 2014 21:14:19 +0000</pubDate>
      
      <guid>/oi/lofterimport_095/</guid>
      <description>这题就是考你怎么把能优化常数的地方都优化一下。
做法比较清晰，分块加持久化值域线段树。大块预处理，小块暴力算。虽然最初不想写持久化数据结构就试图用平衡树去做，结果发现做法是错的，单次复杂度是O(n*lgn)的。看来我太年轻了。后来改了但是常数巨大也没法跑。
本来是一次询问里有若干次在持久化线段树上查询的。然后首先发现可以预处理出从开头到一块末尾这一段里有多少个比后面任意一个位置大的数的个数。还有一个数前面比它大的数的个数。这俩加起来常数差不多就小到能过了。
丧心病狂！
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
const int maxn = 50009;
const int maxb = 259;
const int maxnd = maxn * 30;
struct seg {
int v;
seg *ls,&amp;nbsp;*rs;
};
inline bool cmpP(const int* a, const int* b)&amp;nbsp;{
return *a&amp;nbsp;&amp;lt;&amp;nbsp;*b;
}
#define readInt(_s_)&amp;nbsp;{\
int _d_;\
_s_ = 0;\
while (!isdigit(_d_&amp;nbsp;= getchar()));\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\</description>
    </item>
    
    <item>
      <title>BZOJ3333 排队计划</title>
      <link>/oi/lofterimport_096/</link>
      <pubDate>Thu, 13 Nov 2014 22:01:17 +0000</pubDate>
      
      <guid>/oi/lofterimport_096/</guid>
      <description>暑假的时候就听zhx讲过这题，不过好像当时讲复杂了。
很容易知道答案就是每次减去被出列的人里面没有出过列的人在原序列里右边的比她矮的人的个数。
所以每个人只会被算一次，均摊下来是O(n)的。然后就是怎么很快地找到这些人。我觉得用线段树比较方便，时间可以做到log。不知道是不是能用并查集。
好写好调。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstdlib&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;memory.h&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
#define readInt(_s_)&amp;nbsp;{\
int _d_;\
while (!isdigit(_d_&amp;nbsp;= getchar()));\
_s_ = 0;\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\
}
typedef long long qw;
#ifdef WIN32
#define lld &amp;quot;%I64d&amp;quot;
#else
#define lld &amp;quot;%lld&amp;quot;
#endif
struct seg {
int l, r, v, p;
seg *ls,&amp;nbsp;*rs;
};
const int maxn = 500009;</description>
    </item>
    
    <item>
      <title>BZOJ2141 排队</title>
      <link>/oi/lofterimport_097/</link>
      <pubDate>Thu, 13 Nov 2014 13:34:28 +0000</pubDate>
      
      <guid>/oi/lofterimport_097/</guid>
      <description>连yjq都会做，简直是水暴了。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
&amp;nbsp;
usingnamespacestd;
&amp;nbsp;
constintmaxn = 20009;
&amp;nbsp;
intn, m, a[maxn], t[maxn],&amp;nbsp;*r[maxn], s;
&amp;nbsp;
intbtQry(int* t, intp)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp; ints = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(p)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s += t[p], p -=&amp;nbsp;(p&amp;nbsp;&amp;amp;&amp;nbsp;-p);
&amp;nbsp;&amp;nbsp;&amp;nbsp; returns;
}
&amp;nbsp;
voidbtChg(int* t, intp, intv)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(p &amp;lt; maxn)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t[p]&amp;nbsp;+= v, p +=&amp;nbsp;(p&amp;nbsp;&amp;amp;&amp;nbsp;-p);
}
&amp;nbsp;
inlineboolcmpP(constint* a, constint* b)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp; return*a &amp;lt;&amp;nbsp;*b;
}
&amp;nbsp;
intmain()&amp;nbsp;{
#ifndef ONLINE_JUDGE
&amp;nbsp;&amp;nbsp;&amp;nbsp; freopen(&amp;quot;in.txt&amp;quot;,&amp;nbsp;&amp;quot;r&amp;quot;, stdin);
#endif</description>
    </item>
    
    <item>
      <title>NOIP2014 总结1</title>
      <link>/diary/lofterimport_098/</link>
      <pubDate>Mon, 10 Nov 2014 20:54:16 +0000</pubDate>
      
      <guid>/diary/lofterimport_098/</guid>
      <description>今天用unoffical数据测了。看到这个成绩感觉还是有点复杂。
大概省rank10左右。扔江浙那边估计是二等奖都悬了。
每天的前两题都还是稳住了，没有出啥事情。
其实考试的时候拍出了一些问题，不过都改正了。
day1第一题打表可过。要注意矩阵的左下三角和右上三角是相反的。
day1第二题是树。考虑中间那个点加加减减就完了。最初乘暴了，幸好对拍出来了。
出事的是bird。k=0的情况死硬了。也就是说让别人暴力过的六个点我扔了。
这题是dp。转移的时候稍微优化一下，记下每个对xi取模之后的最小的fi-i/x就可以了。注意k=0的情况。
day2第一题我用了二维前缀和。注意覆盖范围可以超出城市。
day2第二题倒着一遍bfs去点然后正着一遍bfs就完了。
day2第三题大概是不能过的，不过数据里后三个点都卡掉了自然溢出，还是有点郁闷。也许官方数据没有这么强吧。后来想出取模然后求导二分的做法，不过好像没有人提到。我也不想去写了。不过后30分还是悬之又悬啊。
所以追逐了六年的ak之梦还是没有实现。毕竟我还太年轻。</description>
    </item>
    
    <item>
      <title>NOIP2014 DIARY2</title>
      <link>/oi/lofterimport_099/</link>
      <pubDate>Sun, 09 Nov 2014 13:08:09 +0000</pubDate>
      
      <guid>/oi/lofterimport_099/</guid>
      <description>居然感冒了，嗓子痛死了。
8:00 进考场了，不准动机器，那还怎么配vim啊TT
8:30 这密码。看了下题好像也不是特别麻烦啊，除了最后一题有个10^10000。
8:35 第一题敲完了？
8:45 第二题敲完了？
8:50 第三题想不出其它的做法啊。哈希吧。
9:10 花了四十分钟就做完了？点开扫雷的时候看到了身旁某兄怨念的眼神。
10:00 第三题极限数据居然会tle。想打数据分治但是觉得不好的。发现可以先用自然溢出，如果没有暴再用模质数检查。这样好像0.5s能跑完。希望评测机不要比这个机子慢太多。
11:00 第一题居然把++ x写scanf上面了，作死。
12:00 终于交卷了。又老了一岁的感觉。
12:15 照相，讨论。jason_yu好像第三题写得不太一样，其他人基本都想得一样。看谁长得帅了。
然后某人的第六次noip就结束了。</description>
    </item>
    
    <item>
      <title>NOIP2014 DIARY1</title>
      <link>/oi/lofterimport_100/</link>
      <pubDate>Sat, 08 Nov 2014 15:40:01 +0000</pubDate>
      
      <guid>/oi/lofterimport_100/</guid>
      <description>记得noi的时候写了日记，那么noip也那么写一写。
听说今天的题很水，虽然我心里总有种不确定的感觉。
6:00 醒了。好像下雨了，有点冷。再睡会。
6:30 起床。
7:40 到考场了。因为下雨所以外面的广场上都没站什么人。倒是看到了徐老和初中的小伙伴。
8:10 开始配vim。好像我的键盘和旁边的同学不太一样，敲起来手感比较不错。
8:25?&amp;nbsp;发密码了。很淡定地输入，打开。好像之前已经重复做这个动作做了很多遍了，异常淡定。
8:30 第一题n才200？直接模拟？打表，写。
8:40 原来第二题是树。写。
8:55 第三题n*m^2会tle?难道不应该是f[i]-i=max(f[j]-j)?写！
9:10 写完好晕，怎么过不了样例啊。打印中间变量发现如果上升的话就不会下降了，囧。
9:40 好像写完了，对拍吧。
10:xx 第二题居然乘暴了。原来要取模。
11:xx 第三题拍出错了！？仔细一看暴力有bug。
12:00 终于交卷了，尿胀慌了。
出来看到小伙伴们也比较开心。心里还是那种很不确定的感觉。估分的时候扔了个300，大概是在向flag学说发出挑战。还好有mhy陪我挑战。
day1就这么过去了。原来我是如此之年轻。</description>
    </item>
    
    <item>
      <title>noip2014 计划</title>
      <link>/oi/lofterimport_101/</link>
      <pubDate>Fri, 07 Nov 2014 21:19:18 +0000</pubDate>
      
      <guid>/oi/lofterimport_101/</guid>
      <description>好奇怪的题目。
明天就要考noip了。第六年了，该成熟点了。
仿佛也在几个小时前有一些紧张。这么多年这么些路走过来了，这算是最后一博了吧？
更多的是一种成长的感觉吧。这一年，改变了太多太多了。从noip2013的惨败开始，有wc的奇奇怪怪的noip后遗症，然后是省选莫名其妙自己扔了一百多分，然后混进noi又疏忽地把au拿去喂狗了。没有什么好看的成绩，只有一双越来越快的敲键盘的手。
这两天的集训考得还是将就。但是也没有九月那么绝对了。也许是我的心态也没有经受住挑战，也许是大家都进步了吧。两者都有。总觉得过去的一切离我好遥远，好像去年的我和今年的我是老死不相识的两个人似的。这叫作成长？或者是太专注一件事情导致的沧桑？
oi就是那么玄妙。不见到ccf官网上的成绩，一切就是未知数。即使考前能场场ak，也说不准考场上会发生什么，何况我也没有那个实力去ak。换个角度说，noip，考的是细心。
只能说调整好自己的心态，&amp;nbsp;淡定地去战斗吧。
预祝所有人能成功，即使没有什么人会看到这句话。</description>
    </item>
    
    <item>
      <title>20141107 总结</title>
      <link>/diary/lofterimport_102/</link>
      <pubDate>Fri, 07 Nov 2014 21:07:39 +0000</pubDate>
      
      <guid>/diary/lofterimport_102/</guid>
      <description>noip前的最后一天了。
第一题也没想出来。最后分块过的。既然能分块多半能线段树。
第二题动态规划，不过我把暴力都写丑了。没救了。
第三题倒是个水水的hash+dp。
一年就晃完了。明天就上场了。</description>
    </item>
    
    <item>
      <title>20141106 总结</title>
      <link>/diary/lofterimport_103/</link>
      <pubDate>Thu, 06 Nov 2014 14:46:48 +0000</pubDate>
      
      <guid>/diary/lofterimport_103/</guid>
      <description>信心题真是不给我信心。扫雷扫了好久只赢了一盘高级。
其实做得比较心惊胆战，不过拍了之后好像也没出啥错。
第一题三方的枚举+dp就能过。平方的断边找直径应该也行。
第二题简单粗暴加个堆。或者排序就行了。
第三题顺着走贪心好像没有拍出错。
所以呢，虽然我还是年轻，但是noip还是要加油了。</description>
    </item>
    
    <item>
      <title>20141105 总结</title>
      <link>/diary/lofterimport_104/</link>
      <pubDate>Wed, 05 Nov 2014 14:53:51 +0000</pubDate>
      
      <guid>/diary/lofterimport_104/</guid>
      <description>严重地被打脸了。
今天可能最后一题是比较难的吧。
第一题直接费马小。依稀记得第一次知道这玩意是在noi2013的时候。然后竟然那么多人都不知道。不过十进制快速幂也能过的说。
第二题是简单但是很恶心的搜索题。orz代码比我短的。
第三题是最短路或者dp。最初想错了，把点拆少了。下午调了好一会。
所以我就Naive地被打脸了。</description>
    </item>
    
    <item>
      <title>20141104 总结</title>
      <link>/diary/lofterimport_105/</link>
      <pubDate>Tue, 04 Nov 2014 14:41:46 +0000</pubDate>
      
      <guid>/diary/lofterimport_105/</guid>
      <description>原来lofter会自动忽略html格式。无语。
今天用自己写的oj来评测的。虽然有点慢，不过和Lemon测出来结果差别不大。说明至少是写成功了的。
但是自己比较不开心。
第一题随便贪了个心。朴素dfs只能跑n=3的数据，不过还是过了。
第二题离散前几天高一acm的时候好像有差不多的题吧。离散一下搞定。
第三题顿时凌乱了。想了很久觉得不靠谱然后就去写了一个朴素。然后发现是题看错了。不开心。正解未知，不过暴力可过。
然后我就真的太年轻了。</description>
    </item>
    
    <item>
      <title>20141103 总结</title>
      <link>/diary/lofterimport_106/</link>
      <pubDate>Tue, 04 Nov 2014 14:38:04 +0000</pubDate>
      
      <guid>/diary/lofterimport_106/</guid>
      <description>&amp;nbsp;&amp;nbsp;昨天一天都在写oj连总结都忘写了
&amp;nbsp;&amp;nbsp;依稀记得仿佛好像AK了。
第一题是啥？cv上原题原来也讲过。就调和级数来算算时间就完了。
第二题好像有点坑，std被卡掉了。反正就是搜索再多加点剪枝呗。还有记忆化。
第三题又是啥？原题，加个map就完了。
反正太年轻了。</description>
    </item>
    
    <item>
      <title>20141102 总结</title>
      <link>/diary/lofterimport_107/</link>
      <pubDate>Sun, 02 Nov 2014 17:23:58 +0000</pubDate>
      
      <guid>/diary/lofterimport_107/</guid>
      <description>今天t成250了。虽然三道题自测都能过。
&amp;nbsp;
第一题比较简单。不过我用了multiset然后它就tle了。
&amp;nbsp;
第二题讲过做过原题而且连高精都省了。
&amp;nbsp;
第三题写的dlx。其实不用这么麻烦，直接压位也能过。可是我就那么天真，还t掉了。惨不忍睹。
&amp;nbsp;
所以我太年轻了点。</description>
    </item>
    
    <item>
      <title>20141101</title>
      <link>/diary/lofterimport_108/</link>
      <pubDate>Sat, 01 Nov 2014 12:06:39 +0000</pubDate>
      
      <guid>/diary/lofterimport_108/</guid>
      <description>噗一声ak它就飞掉了。
今天考试其实难度要稍微高一点。写完所有代码大概花了两个小时。
第一题还好。直接用单调性枚举边界。要注意一下边界的开和闭。然后分成四份算可以减少代码量。
第二题居然是仙人掌。幸好不是动态的。做法也是用lca。不过每个仙人掌内部也要维护一下。写了200+行过掉了。虽然是第一次写。
第三题是个dp。推了半天。拿ai做体积，最小化sigma(ai^2)。然后因为没有说平台编号一定是与高度正相关的。然后我很傻地去特判了一下ea[i]&amp;gt;eb[i]的东西，于是70分就飞走了。不高兴啊tan。noip的时候得注意认真看题。
所以说我太过于年轻了。</description>
    </item>
    
    <item>
      <title>20141031 总结</title>
      <link>/diary/lofterimport_109/</link>
      <pubDate>Fri, 31 Oct 2014 12:48:22 +0000</pubDate>
      
      <guid>/diary/lofterimport_109/</guid>
      <description>十月最后一场考试了。
noip又近一步了。
今天的题还是比较简单。
第一题直接gcd。不过要小心long long。
第二题有点像去年提高day1的第二题。写法也差不多。就是分开求个逆序对。
第三题树形dp。应该也可以用点分治，虽然还要多个log好麻烦的说。
oj第一次成功地交题，开心。不过还要继续努力。</description>
    </item>
    
    <item>
      <title>BZOJ3513 [MUTC2013]idiots</title>
      <link>/oi/lofterimport_110/</link>
      <pubDate>Thu, 30 Oct 2014 21:11:25 +0000</pubDate>
      
      <guid>/oi/lofterimport_110/</guid>
      <description>居然写了一半手贱就把所有东西都弄没了。严重地不开心。
既然这样那么简单说吧。
长度≤10^5这个条件在bzoj上没说。
用fft求出长度和为leni的组数。
枚举第三根火柴，可行的是（它作为最长的总组合数&amp;nbsp;-&amp;nbsp;（长度≤它的组合数））那么多组。
fft必需常数够小。不写蝴蝶会tle。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cmath&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;memory.h&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long qw;
#define readInt(_s_)&amp;nbsp;{\
int _d_;\
_s_ = 0;\
while (!isdigit(_d_&amp;nbsp;= getchar()));\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\
}
struct cplx {
double r, i;
inline cplx()&amp;nbsp;{
r = 0, i = 0;
}
inline cplx(double r0, double i0)&amp;nbsp;{
r = r0, i = i0;</description>
    </item>
    
    <item>
      <title>BZOJ3585 mex</title>
      <link>/oi/lofterimport_112/</link>
      <pubDate>Thu, 30 Oct 2014 15:58:58 +0000</pubDate>
      
      <guid>/oi/lofterimport_112/</guid>
      <description>很久之前就看过的题。不过一直没有勇气去做。爱真的需要勇气。
mex这个函数的性质比较奇妙。一端确定的话一定是单增的。两段和起来也一定是增加的。
可以很方便地求出从1到任何一个位置的mex。考虑把询问离线。按左端点排序。如果去掉一个数，那么对于右端点在（从这个数到下一个等于这个数的位置）这一段里的询问，它的值至多是这个数。
所以用线段树维护区修单查维护一下区间最小值就好了。注意如果没有下一个数了那么右端点是n。
据说要离散不过被我用map给水过去了。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;memory.h&amp;gt;
#include &amp;lt;map&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
#define readInt(_s_)&amp;nbsp;{\
int _d_;\
_s_ = 0;\
while (!isdigit(_d_&amp;nbsp;= getchar()));\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\
}
struct seg {
int l, r, z;
seg *ls,&amp;nbsp;*rs;
};
struct query {
int l, r, n;
};
inline bool cmpQuery(const query&amp;amp; a, const query&amp;amp; b)&amp;nbsp;{
return a. l &amp;lt; b.</description>
    </item>
    
    <item>
      <title>20141030 总结</title>
      <link>/diary/lofterimport_113/</link>
      <pubDate>Thu, 30 Oct 2014 12:57:10 +0000</pubDate>
      
      <guid>/diary/lofterimport_113/</guid>
      <description>今天好像又AK了。其实就打了一个多小时的代码，后面就在对拍和玩旁边的服务器还有和emacs下五子棋啥的TT
好像是个天津人出的，noi还没有smy考得好。tan。
第一题倒着做并查集就好了。上个寒假就做过。拿set存边挺短的。
第二题是树。直接用dfs序+树状数组就搞定了。std还写错了。改在线的数据好痛苦啊。
第三题不就是tarjan求scc么。虽然很久没有写过tarjan了都快忘了不过还是一次写对了。
所以今天是我年轻了吧。&amp;nbsp;</description>
    </item>
    
    <item>
      <title>20141029 总结</title>
      <link>/diary/lofterimport_114/</link>
      <pubDate>Wed, 29 Oct 2014 13:39:18 +0000</pubDate>
      
      <guid>/diary/lofterimport_114/</guid>
      <description>只要你尽力了，她便不会怪罪你。
所以今天好像AK了，虽然第三题不是正解。
第一题水过。直接找连续的区间，相邻的判一下。
第二题比较不好想。但是想了一会还是想到了。对于一个操作如果有等效的操作那么不算，否则答案*2。用并查集可以做到O(n)。代码也很短。
第三题比较坑。多解的情况std没有判，所以少了20分，虽然后来改回来了。正解比较迷离。不过朴素就能过。看到题的第一反应是这题数据好难造。
所以我依然是年轻的。&amp;nbsp;</description>
    </item>
    
    <item>
      <title>20141028 总结</title>
      <link>/diary/lofterimport_115/</link>
      <pubDate>Tue, 28 Oct 2014 19:16:22 +0000</pubDate>
      
      <guid>/diary/lofterimport_115/</guid>
      <description>被严重地打脸了。
今天考得再次稀烂。
第一题输出方案的五十分没有输出答案。
第二题想歪了。正解也比较不好懂。至少到现在没想清楚为什么是2。
第三题明明前缀和非要写树状数组。虽然我感觉树状数组可能会比较好写。不过，naive。
下午写了点bzoj的水题都懒得发题解了。
&amp;nbsp;&amp;nbsp;晚上学一学html也当放松了吧。&amp;nbsp;&amp;nbsp;虽然没有成功地在这句话上加上链接。</description>
    </item>
    
    <item>
      <title>BZOJ3626 LCA</title>
      <link>/oi/lofterimport_116/</link>
      <pubDate>Mon, 27 Oct 2014 20:52:07 +0000</pubDate>
      
      <guid>/oi/lofterimport_116/</guid>
      <description>比较神奇的一道树的题。
做法是离线。想了好久的在线啊。
把询问拆成0~l-1和0~r。挨个从0开始加点。加点就是把从根到这个点的所有点权+1，询问就是询问这个点到根的点权和。好机智的做法。
代码还比较舒服。dfs+树链剖分+树状数组。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;memory.h&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct edge {
int t;
edge *next;
};
struct query {
int p, v, n, c;
inline query(int p0 = 0, int v0 = 0, int n0 = 0, int c0 = 0)&amp;nbsp;{
p = p0, v = v0, n = n0, c = c0;
}
};
const int maxn = 50009;
const int mod = 201314;</description>
    </item>
    
    <item>
      <title>20141027 总结</title>
      <link>/diary/lofterimport_117/</link>
      <pubDate>Mon, 27 Oct 2014 14:14:04 +0000</pubDate>
      
      <guid>/diary/lofterimport_117/</guid>
      <description>死得很惨。
其实前两题和第三题的70分都不难。
第一题是简单数学题。不过没有看到绝对值符号，于是光荣wa20。
第二题数据分治的时候脑子抽了一抽，然后常数打错直接再见了。
第三题前60分简单贪心拿到了。剩下10分懒得写了。再剩下的玩意不会啊。
orz xyz。</description>
    </item>
    
    <item>
      <title>20141027-1107 计划</title>
      <link>/oi/lofterimport_118/</link>
      <pubDate>Sun, 26 Oct 2014 21:46:05 +0000</pubDate>
      
      <guid>/oi/lofterimport_118/</guid>
      <description>离noip只有12天了。这是我的倒数第二次noip中，正数第六次。
作为一个老人不需要太多的惊慌或者什么的。保持一颗平和与淡定的心是最重要的。
接下来都是连续的考试了。总共有10套题。这个时候也不是大规划地去补算法的时候。更多的是要调整好自己，学会怎样去应试。
oi中的一系列赛事里只有noip是三个半小时，而不是五个小时。当然它的难度与普及度决定了这一点。所以你没有更多的时间去思考和感受。更多需要的是准确的直觉和高效的代码。
任何一个小处的失误，都是致使的。唯一的办法是检查，检查，再检查。后面的考试里尽量要多坐一会，能对拍的都多拍一些数据。可能考试的时候还是会用windows，虽然这几天还是在noi-linux下练习。不过这也只是写bash脚本对拍和写bat对拍的小小区别而已。当然不要在这些小细节上浪费时间。不行用cpp就好。
noip的题目更多的在于思维难度，而不是代码难度。所以也要养成多动笔多打草稿多yy的习惯。
每天的安排也就是上午写题下午补题顺便刷题晚上刷题跑步散心睡觉。
嗯，哦，唉，&amp;times;，fighting。</description>
    </item>
    
    <item>
      <title>20141023 总结</title>
      <link>/diary/lofterimport_119/</link>
      <pubDate>Thu, 23 Oct 2014 21:18:39 +0000</pubDate>
      
      <guid>/diary/lofterimport_119/</guid>
      <description>上午下午刷bzoj的数据结构题比较开心。虽然死了好多脑细胞。
以为晚上的题会比较难，结果就不是一套。
第一题扫描线裸题。数据有错。
第二题只和对角线有关。呵呵题。
第三题写丑了。其实一个多简单的贪心的。
看来我是没救了。</description>
    </item>
    
    <item>
      <title>BZOJ1858 序列操作</title>
      <link>/oi/lofterimport_120/</link>
      <pubDate>Thu, 23 Oct 2014 16:18:13 +0000</pubDate>
      
      <guid>/oi/lofterimport_120/</guid>
      <description>一堆标记的线段树。
翻过的，没翻过的，都分开记下来。然后还要注意flip标记与set标记的优先级关系和互相之间的影响。然后就完了。
虽说在这个颓废的下午还是花了好一会才调通。&amp;nbsp;
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct dat {
int l, r, s, t, m;
};
struct seg {
int l, r, f, z;
dat d[2];
seg *ls,&amp;nbsp;*rs;
};
const int maxn = 100009;
seg *rt,&amp;nbsp;*sp;
int n, m, a[maxn];
inline dat sgd(int v, int s = 1)&amp;nbsp;{
dat r;
r. l = s * v;
r. r = s * v;
r. s = s * v;</description>
    </item>
    
    <item>
      <title>BZOJ1146 [CTSC2008]网络管理Network</title>
      <link>/oi/lofterimport_121/</link>
      <pubDate>Thu, 23 Oct 2014 12:09:56 +0000</pubDate>
      
      <guid>/oi/lofterimport_121/</guid>
      <description>数据结构题总是很令人开心的。
这题据说可以主席树？好麻烦的说。
树链剖分+线段树+treap就好了吧。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstdlib&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;memory.h&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct edge {
int t;
edge *next;
};
struct seg {
int l, r, v;
seg *ls,&amp;nbsp;*rs;
};
#define readInt(_s_)&amp;nbsp;{\
int _d_;\
_s_ = 0;\
while (!isdigit(_d_&amp;nbsp;= getchar()));\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\
}
const int maxn = 80009;
const int maxv = 1e8;
namespace treap {</description>
    </item>
    
    <item>
      <title>BZOJ3589 动态树</title>
      <link>/oi/lofterimport_122/</link>
      <pubDate>Thu, 23 Oct 2014 10:50:38 +0000</pubDate>
      
      <guid>/oi/lofterimport_122/</guid>
      <description>啊啊看到动态树被吓尿了。
然后发现动的不是树的形态是点权。
树链剖分+dfs序么。
重点是我TLE了。
最初的写法是直接查询然后把访问过的点打个标记。一个询问做完再标记回去。然后，tle。
参考jason_yu的做法，找出所有dfs序上要询问的区间，合并之后询问，应该不会tle了吧？还是tle。
最后发现是线段树lazy标记的地方写成n^2了。开心啊。
事实证明第一种写法12秒左右，第二种写法3秒多。当然也要考虑我巨丑的常数。
所以我还是太naive了。
代码当然要粘快的。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;memory.h&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
struct edge {
int t;
edge *next;
};
struct seg {
int l, r, a, v;
seg *ls,&amp;nbsp;*rs;
};
struct rect {
int l, r;
inline rect(int l0 = 0, int r0 = 0)&amp;nbsp;{
l = l0, r = r0;
}
inline rect operator +(const rect&amp;amp; a) const {</description>
    </item>
    
    <item>
      <title>20141023 计划</title>
      <link>/oi/lofterimport_123/</link>
      <pubDate>Thu, 23 Oct 2014 08:05:19 +0000</pubDate>
      
      <guid>/oi/lofterimport_123/</guid>
      <description>最近都在认真写Noip难度题（虽然跑题有点严重）。
专题大概是差不多了。
今天换个口味写数据结构好了。
就这么愉快地决定了。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;</description>
    </item>
    
    <item>
      <title>20141022 总结</title>
      <link>/oi/lofterimport_124/</link>
      <pubDate>Wed, 22 Oct 2014 21:18:24 +0000</pubDate>
      
      <guid>/oi/lofterimport_124/</guid>
      <description>跑题了。
好像刷了几道水水的图论吧。估计也不会考到Msc或者极大团之类的玩意，所以也没写。
然后就刷了一天bzoj。第一次一天10道，好开心。
noip也不远了，感受到了各路大神的压力。
想要生存下去，唯一的出路是让自己不断变得更强。</description>
    </item>
    
    <item>
      <title>BZOJ2226 LCMSum</title>
      <link>/oi/lofterimport_125/</link>
      <pubDate>Wed, 22 Oct 2014 21:14:21 +0000</pubDate>
      
      <guid>/oi/lofterimport_125/</guid>
      <description>比较神奇的数学题。
重要的结论是&amp;lt;n且与n素质的数的和是phi(n)*n/2。
所以就枚举一下gcd就好了。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;memory.h&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long qw;
#ifdef WIN32
#define lld &amp;quot;%I64d&amp;quot;
#else
#define lld &amp;quot;%lld&amp;quot;
#endif
#define _l (qw)
#define readInt(_s_)&amp;nbsp;{\
int _d_;\
_s_ = 0;\
while (!isdigit(_d_&amp;nbsp;= getchar()));\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\
}
const int maxn = 1000009;
qw ans[maxn];
int tp, pn[maxn], phi[maxn];
bool pr[maxn];
void pre()&amp;nbsp;{
memset(pr, 0, sizeof(pr));</description>
    </item>
    
    <item>
      <title>BZOJ3428 [Usaco2014 Jan]Cow Curling</title>
      <link>/oi/lofterimport_126/</link>
      <pubDate>Wed, 22 Oct 2014 10:50:12 +0000</pubDate>
      
      <guid>/oi/lofterimport_126/</guid>
      <description>补昨天的题。
比较好想的计算几何。就看每个点在不在另一个颜色的点形成的上凸壳下面，下凸壳上面。这个用二分可以做到单次log。用单调应该也能O(n)。
但是写起来非常坑，要用long long，还有各种等号啥的。
写win32 app来显示点的代码比交上去的代码还长。开心。
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;algorithm&amp;gt;
&amp;nbsp;
usingnamespacestd;
&amp;nbsp;
typedeflonglongqw;
&amp;nbsp;
#define _l (qw)
&amp;nbsp;
structpoint {
&amp;nbsp;&amp;nbsp;&amp;nbsp; intx, y;
&amp;nbsp;&amp;nbsp;&amp;nbsp; point (intx0&amp;nbsp;= 0, inty0 = 0)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = x0, y = y0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp; inlinevoidread()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scanf(&amp;quot;%d%d&amp;quot;,&amp;nbsp;&amp;amp;x,&amp;nbsp;&amp;amp;y);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
};
structvect {
&amp;nbsp;&amp;nbsp;&amp;nbsp; intx, y;
&amp;nbsp;&amp;nbsp;&amp;nbsp; vect(intx0 = 0, inty0 = 0)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = x0, y = y0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp; vect(constpoint&amp;amp; a, constpoint&amp;amp; b)&amp;nbsp;{</description>
    </item>
    
    <item>
      <title>20141022 计划</title>
      <link>/oi/lofterimport_127/</link>
      <pubDate>Wed, 22 Oct 2014 08:10:36 +0000</pubDate>
      
      <guid>/oi/lofterimport_127/</guid>
      <description>因为运动会，好像时间又变少了。
早上本来想补觉来着，打开电脑就睡不着了。
上午先补题吧。
然后今天就去刷图论好了。最小生成树啊最短路啊还有各种神奇的东西都去写一写。
美好的一天。</description>
    </item>
    
    <item>
      <title>20141021 总结</title>
      <link>/diary/lofterimport_128/</link>
      <pubDate>Tue, 21 Oct 2014 22:51:44 +0000</pubDate>
      
      <guid>/diary/lofterimport_128/</guid>
      <description>上午基本完成了任务。
下午在bzoj上说好的图论就变成了算几。我觉得要是noip真来道算几的话肯定特别开心。
然后因为很值得吐槽的排练就废了。最后一道题还没调出来。我的254。
晚上考试真心naive了。晚上状态不好是实话，但是不是没考好的借口。
第一题就是贪心，不过显然我想错了。横着放的情况有其它做法。
第二题题意比较坑，最初都看错了。我的做法是不稳定的，然后又wa了一个点。而且用三方的正解还是不对。还在调。
第三题比较伤心。觉得比较水所以都没写暴力对拍。然后就wa得和骗分一个分了。不开心啊。
所以我还是太年轻了。</description>
    </item>
    
    <item>
      <title>BZOJ2338 数矩形</title>
      <link>/oi/lofterimport_129/</link>
      <pubDate>Tue, 21 Oct 2014 15:47:05 +0000</pubDate>
      
      <guid>/oi/lofterimport_129/</guid>
      <description>本来以为是上回那道数正方形的原题的。结果发现不要求边与座标轴平行，于是我就naive了。然后数据结构变身计算几何一堆东西吼吼。
矩形的对角线相等且互相平分（来自初二数学书）。把所有点对的中点找出来，把所有相等且平分的放一起用单调性，有点像旋转卡(qia3)壳(qiao4)的做法。jason_yu说暴力枚举都能过，而且他跑得比我快！
计算几何也写得比较naive。调了半天啊。
毕竟我弱嘛。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cmath&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long qw;
#ifdef WIN32
#define lld &amp;quot;%I64d&amp;quot;
#else
#define lld &amp;quot;%lld&amp;quot;
#endif
#define _l (qw)
const double eps = 1e-8;
const int maxn = 1509;
#define sqr(x)&amp;nbsp;((x)*(x))
#define dist(a,b)&amp;nbsp;(sqr(a.x-b.x)+sqr(a.y-b.y))
#define nextele(_x_)&amp;nbsp;((_x_+1==r)?(l):(_x_+1))
struct point {
qw x, y;
point(qw x0 = 0, qw y0 = 0)&amp;nbsp;{
x = x0, y = y0;
}
inline point operator =(const point&amp;amp; a)&amp;nbsp;{</description>
    </item>
    
    <item>
      <title>BZOJ2429 聪明的猴子</title>
      <link>/oi/lofterimport_130/</link>
      <pubDate>Tue, 21 Oct 2014 14:28:42 +0000</pubDate>
      
      <guid>/oi/lofterimport_130/</guid>
      <description>找到一道水题真是一件令人开心的事情。
最小生成树。完了。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cmath&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
#define sqr(x)&amp;nbsp;((x)*(x))
struct edge {
int a, b, v;
edge(int a0 = 0, int b0 = 0, int v0 = 0)&amp;nbsp;{
a = a0, b = b0, v = v0;
}
};
const int maxn = 1009;
int n, m, a[maxn], t, x[maxn], y[maxn], r[maxn];
edge e[maxn * maxn];
inline bool cmpE(const edge&amp;amp; a, const edge&amp;amp; b)&amp;nbsp;{
return a. v &amp;lt; b.</description>
    </item>
    
    <item>
      <title>20141021 计划</title>
      <link>/oi/lofterimport_131/</link>
      <pubDate>Tue, 21 Oct 2014 08:06:46 +0000</pubDate>
      
      <guid>/oi/lofterimport_131/</guid>
      <description>好端端的上午被体检腰斩了。
早上先花两节课继续复习数学吧。
然后去写图论。
下午爬梯子和bzoj。还有高一小朋友的图论基础（虽然多半听不到两分钟就受不了了）。
然后晚上还要考试好开心。</description>
    </item>
    
    <item>
      <title>20141020 总结</title>
      <link>/diary/lofterimport_132/</link>
      <pubDate>Mon, 20 Oct 2014 21:06:05 +0000</pubDate>
      
      <guid>/diary/lofterimport_132/</guid>
      <description>今天大概还是完成了早上安排的任务吧。
上午下午都在刷比较简单的数学题。再次科普了一下exgcd。这玩意快成我家黑洞了。希望看到还能推出来。
问题是没有顾及的miller-rabin。明天还得补一补。
下午也顺带写了点天梯。有点郁闷。有不是一点点粗心啊。刷题的时候状态不太好。晚上得早点睡。
晚上刷的bzoj好像和数学关系不大？不管嘛，现在在bzoj上还不是能刷什么刷什么了。毕竟太弱是吧。
去跑步的时候发现舞狮的同学也在辛苦训练。
你永远不知道别人在黑暗里付出了多少，所以在他们放出光彩的时候才会使你感到惊奇。同样的，你为了让别人惊奇，也得付出更多。</description>
    </item>
    
    <item>
      <title>BZOJ1597 [Usaco2008 Mar]土地购买</title>
      <link>/oi/lofterimport_133/</link>
      <pubDate>Mon, 20 Oct 2014 21:01:01 +0000</pubDate>
      
      <guid>/oi/lofterimport_133/</guid>
      <description>大概也不是很难。毕竟只有做水题的份。
就把原来的土地按x排个序，把能合并的合并，变成一个x单增y单减的序列。
然后就是dp。f[i]&amp;nbsp;= min(f[j]&amp;nbsp;+ y[j+1]*x[i])，可以单调的斜率优化。
符号比较郁闷还搞错了好几次。
所以说我太弱了啊怎么办啊。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long qw;
typedef long double exf;
#ifdef WIN32
#define lld &amp;quot;%I64d&amp;quot;
#else
#define lld &amp;quot;%lld&amp;quot;
#endif
#define _l (qw)
#define _f (exf)
struct field {
int x, y;
};
inline bool cmpField(const field&amp;amp; a, const field&amp;amp; b)&amp;nbsp;{
return (a. x &amp;lt; b. x)&amp;nbsp;||&amp;nbsp;(a. x == b. x &amp;amp;&amp;amp; a. y &amp;lt; b. y);
}</description>
    </item>
    
    <item>
      <title>BZOJ3231 递归数列</title>
      <link>/oi/lofterimport_134/</link>
      <pubDate>Mon, 20 Oct 2014 19:06:02 +0000</pubDate>
      
      <guid>/oi/lofterimport_134/</guid>
      <description>感觉几百年没有刷bzoj了？虽然昨天才写了题，下午也还交了题的。
还是挺水的一道矩阵题。看到数列想得到矩阵，不知道没看到数列能不能想到矩阵。
关键是求和比较不好想。其实新加一行把和记下来就行了。重点就是构造对吧。
然后矩阵快速幂啥的还好。主要是要记得快速乘。（想起了zhx的babysit）
#include &amp;lt;iostream&amp;gt;
#ifndef ONLINE_JUDGE
#include &amp;lt;fstream&amp;gt;
#define cin _cin_
std :: ifstream cin(&amp;quot;in.txt&amp;quot;);
#endif
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long qw;
const int maxn = 19;
qw n, b[maxn], c[maxn], x, y, mod;
qw modMul(qw a, qw b)&amp;nbsp;{
qw s = 0;
for (; b; b &amp;gt;&amp;gt;= 1, a =&amp;nbsp;(a&amp;nbsp;&amp;lt;&amp;lt; 1)&amp;nbsp;% mod)
if (b&amp;nbsp;&amp;amp; 1)
s =&amp;nbsp;(s&amp;nbsp;+ a)&amp;nbsp;% mod;
return s;
}
class matrix {</description>
    </item>
    
    <item>
      <title>20141020 计划</title>
      <link>/oi/lofterimport_135/</link>
      <pubDate>Mon, 20 Oct 2014 08:23:00 +0000</pubDate>
      
      <guid>/oi/lofterimport_135/</guid>
      <description>突然感到noip已经很近了。
恐怕只剩下一周自己刷题了。
现在还没补完的专题？数学和图论。
今天先搞点数学题吧。
上午下午都用来刷cv好了。
晚上么，bzoj。</description>
    </item>
    
    <item>
      <title>BZOJ1977 次小生成树</title>
      <link>/oi/lofterimport_136/</link>
      <pubDate>Sun, 19 Oct 2014 11:51:51 +0000</pubDate>
      
      <guid>/oi/lofterimport_136/</guid>
      <description>题意是严格次小生成树。
想了一下发现应该是一条不在最小生成树上的边构成的环上替换一条边就行了。感觉好想noi那道lct，哈。其实不用那么复杂的。
就用倍增就可以了。不过我还是比较倾向于用链剖。感觉链剖空间小而且写起来倍爽。不像倍增写挂了不只一次了。
要注意的是不仅要找最大值还要找严格次大值，因为要找严格次小。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;memory.h&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long qw;
#ifdef WIN32
#define lld &amp;quot;%I64d&amp;quot;
#else
#define lld &amp;quot;%lld&amp;quot;
#endif
struct edge_g {
int a, b, v, mk;
};
struct edge_t {
int t, v;
edge_t *next;
};
struct dat {
int a, b;
dat(int v0 =&amp;nbsp;-1)&amp;nbsp;{
a = v0, b =&amp;nbsp;-1;
}
dat(int a0, int b0)&amp;nbsp;{
a = a0, b = b0;</description>
    </item>
    
    <item>
      <title>20141018</title>
      <link>/diary/lofterimport_137/</link>
      <pubDate>Sat, 18 Oct 2014 21:31:17 +0000</pubDate>
      
      <guid>/diary/lofterimport_137/</guid>
      <description>今天整个人都不太好。
上午下午刷cv坑了无数次，每次都是一些小错误导致调很久。虽然还是把钻石过了。大师的题好多都不会啊。还要努力。
晚上的bc更坑了。第一题一直以为是我物死早。最后才知道是读入坑了所以才wa傻了的。不知道为啥会这样。第二题直接暴力全排列懒得写dp了然后就fst了。第三题线段树最初把题意看错了其实还是比较好写好调的。最后一题naive了其实不能二分的。呵了个大呵。
所以我还是太过于年轻了点。在noip的时候还是要记得成熟一点。</description>
    </item>
    
    <item>
      <title>CodeVS3147 矩阵乘法2</title>
      <link>/oi/lofterimport_138/</link>
      <pubDate>Sat, 18 Oct 2014 17:06:28 +0000</pubDate>
      
      <guid>/oi/lofterimport_138/</guid>
      <description>居然继续沦落到写CV的题解的地步了。
这又是一道坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑题。
思路很简单。就是记a的列前缀和和b的行前缀和，每次询问的时候O(n)的扫一遍乘积累和。
但是，极限数据本地要跑3.2s。虽然我笔记本是慢，但是也不能这样玩我啊。交了好久都在tle。
最后想到一个常数优化的办法。因为每次是把一行或者一列的数都访问一遍，所以用一个指针把数组的那一行记下来。这样寻址会快一些。事实证明快了不只一些。
坑，哈哈。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;memory.h&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
typedef long long qw;
#ifdef WIN32
#define lld &amp;quot;%I64d&amp;quot;
#else
#define lld &amp;quot;%lld&amp;quot;
#endif
#define _l (qw)
#define readInt(_s_)&amp;nbsp;{\
int _d_;\
_s_ = 0;\
while (!isdigit(_d_&amp;nbsp;= getchar()));\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\
}
const int maxn = 2001;
int a[maxn][maxn], b[maxn][maxn], n, m;
int main()&amp;nbsp;{
readInt(n);</description>
    </item>
    
    <item>
      <title>20141018 计划</title>
      <link>/oi/lofterimport_139/</link>
      <pubDate>Sat, 18 Oct 2014 08:18:05 +0000</pubDate>
      
      <guid>/oi/lofterimport_139/</guid>
      <description>早上adam发话说要好好准备noip。
不能再颓废下去了。
tyvj520了。所以先让它好看一点吧。那么今天去爬cv的天梯好了。好多恶心的代码题也可以写一写了。
下午的话继续。
晚上大概可以回家了。然后有bc吧。</description>
    </item>
    
    <item>
      <title>20141017 总结</title>
      <link>/diary/lofterimport_140/</link>
      <pubDate>Fri, 17 Oct 2014 19:52:17 +0000</pubDate>
      
      <guid>/diary/lofterimport_140/</guid>
      <description>上午在考试。主要时间都拿去玩答案提交题去了。搞出7个点，但是最后一个点好像没搞对只拿了1分。然后格式错误死完。
下午本来准备搞gss6的，然后就去打了一下午的羽毛球。
晚上说好的文化课呢？只好先花一个半小时搞gss6了。唉。
然后得知noip初赛考得一团糟。之前已经大概估计到结果了。虽然考了六年第一次认真考初赛。认真准备了一件事情却没有获得预计的结果。也许我还是太naive了。也许我所谓的努力和别人比起来根本不值一提吧。
所以？做好自己。</description>
    </item>
    
    <item>
      <title>SPOJ4487 GSS6</title>
      <link>/oi/lofterimport_141/</link>
      <pubDate>Fri, 17 Oct 2014 19:48:32 +0000</pubDate>
      
      <guid>/oi/lofterimport_141/</guid>
      <description>看上去挺水水水水水水水水的一道平衡树维护序列的数据结构题啊。
先用split-merge tree写，tle。
然后改用splay，tle。
最后据说把splay的裸数组改到struct node里就能过。于是再写了一个程序来改代码。
不&amp;nbsp;带&amp;nbsp;这&amp;nbsp;么&amp;nbsp;坑&amp;nbsp;的&amp;nbsp;！
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstdlib&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;memory.h&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
/*#define readInt(_s_)&amp;nbsp;{\
int _d_;\
bool _nag_ = 0;\
_s_ = 0;\
while (!isdigit(_d_&amp;nbsp;= getchar()))\
if (_d_&amp;nbsp;==&amp;nbsp;&#39;-&#39;)\
_nag_ = 1;\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\
if (_nag_)\
_s_ =&amp;nbsp;- _s_;\
}*/
#define readInt(_s_) scanf(&amp;quot;%d&amp;quot;,&amp;amp;_s_);
#define readOpt(_s_)&amp;nbsp;{\
do\
_s_ = getchar();\
while (_s_&amp;nbsp;!=&amp;nbsp;&#39;I&#39;&amp;nbsp;&amp;amp;&amp;amp; _s_ !=&amp;nbsp;&#39;D&#39;&amp;nbsp;&amp;amp;&amp;amp; _s_ !</description>
    </item>
    
    <item>
      <title>20141017 计划</title>
      <link>/oi/lofterimport_142/</link>
      <pubDate>Fri, 17 Oct 2014 08:01:41 +0000</pubDate>
      
      <guid>/oi/lofterimport_142/</guid>
      <description>上午要考试。
下午把昨天的题补了吧。然后也去打打球啥的。
晚上补一补文化课好了。好像已经欠了好多了。唉。不好好刷题就只有刷53，好好刷题也匆忘53。</description>
    </item>
    
    <item>
      <title>20141016 总结</title>
      <link>/diary/lofterimport_143/</link>
      <pubDate>Thu, 16 Oct 2014 18:00:46 +0000</pubDate>
      
      <guid>/diary/lofterimport_143/</guid>
      <description>晚上要上课，怕是没有时间写总结了。
差不多荒废了一天。
上午写了几道tyvj。
下午写了半道数学题然后发现有好多特殊情况不想写了。写了半道gss6然后tle了然后就玩去了。
毕竟我还是太Naive了。这样下去是不行的。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;</description>
    </item>
    
    <item>
      <title>20141016 计划</title>
      <link>/oi/lofterimport_144/</link>
      <pubDate>Thu, 16 Oct 2014 08:10:55 +0000</pubDate>
      
      <guid>/oi/lofterimport_144/</guid>
      <description>早上来先修椅子，敲钉子*5min。yzy:修凳子哪家强？...
昨天晚上tyvj终于-- rank了，开心。
上午先补一补觉，然后去做模拟题好了。
下午到bzoj上去逛逛，找点数据结构来做吧。
晚上依稀记得要上课。好久没跑成步了怎么办啊。</description>
    </item>
    
    <item>
      <title>20141015 总结</title>
      <link>/diary/lofterimport_145/</link>
      <pubDate>Wed, 15 Oct 2014 20:16:04 +0000</pubDate>
      
      <guid>/diary/lofterimport_145/</guid>
      <description>依稀记得上午有个计划。
上午就搞了一道字符串，然后搞乱七八糟的题去了。
下午给高一小朋友出了一套题。怎么时间那么快？而且好多细节都不对，强迫症的我改了一遍又一遍啊。
体育课和yzy陪一对高三的打了打羽毛球，感觉有妹子还是挺温馨的一件事情。
吃饭之前下象棋，轻敌了，被yzy痛虐。
晚上把回文正方形写了，最后还是用的hash，没有用manacher，因为觉得RMQ可能会MLE，不靠谱的东西不敢写，虽然hash更不靠谱的说。
noip又近了一天了。不好好刷题就只有刷5+3，这怎么能行呢？</description>
    </item>
    
    <item>
      <title>BZOJ1414 对称的正方形</title>
      <link>/oi/lofterimport_146/</link>
      <pubDate>Wed, 15 Oct 2014 20:11:35 +0000</pubDate>
      
      <guid>/oi/lofterimport_146/</guid>
      <description>OTL写manacher的mhy。
我没有那么高端去研究st怎么搞，所以就用了一个二维hash。从四个角各来一遍真是爽翻了。需要注意的是hash的时候行之间和列之间的值要不同才能区别，不然有数据随便可以卡掉。
代码么，巨丑无比。
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cctype&amp;gt;
#include &amp;lt;memory.h&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
#define uint _uint_
typedef unsigned long long int uint;
const int maxn = 1009;
const uint bh = 1e9 + 93;
const uint bv = 1e9 + 7;
#define readInt(_s_)&amp;nbsp;{\
int _d_;\
_s_ = 0;\
while (!isdigit(_d_&amp;nbsp;= getchar()));\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\
}
int n, m, a[maxn][maxn];
uint h[4][maxn][maxn], ph[maxn * 2], pv[maxn * 2];</description>
    </item>
    
    <item>
      <title>tyvj1996 工作分配2</title>
      <link>/oi/lofterimport_147/</link>
      <pubDate>Wed, 15 Oct 2014 12:00:49 +0000</pubDate>
      
      <guid>/oi/lofterimport_147/</guid>
      <description>沦落到写tyvj的题解了。不过看在这题之前只有7人过的份上就写一下好了。
式子是容斥，比较好想。answer = sigma((-1)^i * m^(n-i)&amp;nbsp;* C(m, i))&amp;nbsp;(0 &amp;lt;= i &amp;lt;= m)
m^(n-i)这一块用快速幂就好了。
然后对于前一题因为m很小所以用m^2把组合数弄出来就行了。但是这里m^2就T到明天去了。
观察
C(m, i)&amp;nbsp;= m!/(i!&amp;nbsp;*&amp;nbsp;(m-i)!)&amp;nbsp;
=&amp;gt; C(m, i - 1)&amp;nbsp;= m!&amp;nbsp;/&amp;nbsp;((i-1)!&amp;nbsp;*&amp;nbsp;(m-i+1)!)&amp;nbsp;
=&amp;gt; C(m, i)&amp;nbsp;= C(m, i - 1)&amp;nbsp;/ i *&amp;nbsp;(m&amp;nbsp;- i + 1)
这样递推用逆元来做就是O(m * lgm)的时间了。
然后这题就这样了。代码很短。
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;memory.h&amp;gt;
using namespace std;
#define _l (long long int)
typedef long long qw;
const int maxm = 1000009;
const int mod = 1e9 + 7;
int cm[maxm];</description>
    </item>
    
    <item>
      <title>20141015 计划</title>
      <link>/oi/lofterimport_148/</link>
      <pubDate>Wed, 15 Oct 2014 08:17:48 +0000</pubDate>
      
      <guid>/oi/lofterimport_148/</guid>
      <description>昨天晚上好像考试了？
好像noip只有20来天了。要抓紧了。
上午先把昨天的题补了，然后找点模拟啊字符串啊啥的题来做。
下午去搞bzoj上那道回文正方形。
晚上还是学一下鸟语和文化课啥的。然后再玩一玩八中。还能跑步。哈哈</description>
    </item>
    
    <item>
      <title>20141014 总结</title>
      <link>/diary/lofterimport_149/</link>
      <pubDate>Tue, 14 Oct 2014 22:49:47 +0000</pubDate>
      
      <guid>/diary/lofterimport_149/</guid>
      <description>上午好像写了计划。
早上在写字符串的东西。好像好多题都可以hash水。不过还是练了一下kmp和manacher。感觉这两个玩意比较常考。
中午去电脑城荡。幸好没有花钱。
下午把noi那道题搞定了。好像也不是特别恶心的样子。半节课写＋一节课调。我果然太年轻。然后各种做韵律操以及打球。
晚上考试。前两道题都有点水，第三题不会做。
第一题无解竟然是输出impossible。坑爹的出题人啊。为啥第三题就是-1?果然我还是太naive了点。解法么记搜跑得飞快。
第二题感觉想起来不难，写起来恶心暴了。然后各种优化代码大法还是&amp;nbsp;过了嘛。
第三题想到了是贪心，不过没有想到正确的贪心方式，所以就只有乱骗了。没想到居然还骗到了最多的分。
总之我依然是相当的年轻的。</description>
    </item>
    
    <item>
      <title>BZOJ3672 [NOI2014]购票</title>
      <link>/oi/lofterimport_150/</link>
      <pubDate>Tue, 14 Oct 2014 18:01:23 +0000</pubDate>
      
      <guid>/oi/lofterimport_150/</guid>
      <description>考场上只想到暴力。
如果只是一条链的话怎么乱搞一搞？
如果没有深度限制的话简单的斜率优化+链剖就行了。
有深度限制就把hull扔到线段树里用可持久化栈来维护一下。DFS的时候塞进线段树里，然后完了再扔出来。总的复杂度O(n*log^2(n))，
代码也不怎么复杂。
#include &amp;lt;cstdio&amp;gt;
#include&amp;nbsp;&amp;lt;cctype&amp;gt;
#include&amp;nbsp;&amp;lt;memory.h&amp;gt;
#include&amp;nbsp;&amp;lt;vector&amp;gt;
#include&amp;nbsp;&amp;lt;algorithm&amp;gt;
using namespace std;
struct edge {
int t;
edge* next;
};
typedef long long qw;
typedef long double exf;
#ifdef WIN32
#define lld &amp;quot;%I64d&amp;quot;
#else
#define lld &amp;quot;%lld&amp;quot;
#endif
#define _l (qw)
#define readInt(_s_)&amp;nbsp;{\
int _d_;\
_s_ = 0;\
while (!isdigit(_d_&amp;nbsp;= getchar()));\
while ((_s_&amp;nbsp;= _s_ * 10 + _d_ - 48), isdigit(_d_ = getchar()));\
}
struct oper {
int p, v, t;</description>
    </item>
    
    <item>
      <title>20141014 计划</title>
      <link>/oi/lofterimport_151/</link>
      <pubDate>Tue, 14 Oct 2014 08:01:58 +0000</pubDate>
      
      <guid>/oi/lofterimport_151/</guid>
      <description>反正闲着时间比较多。每天写计划写总结好了。
早上复习字符串。重点是kmp和马拉车。当然其它题看到也做一做。
下午把NOI那题做了。数据结构+DP=ORZ
晚上还是要跑步。然后顺便刷下bzoj吧。
然后发现晚上要考试。又naive了啊。唉。</description>
    </item>
    
    <item>
      <title>#0</title>
      <link>/oi/lofterimport_153/</link>
      <pubDate>Mon, 13 Oct 2014 21:09:00 +0000</pubDate>
      
      <guid>/oi/lofterimport_153/</guid>
      <description>不知道这是啥，不过看上去很有趣的样子。
页面好像比百度空间好看，虽然没有看到专门插入代码的东西，不过好像也不用在百度空间上粘代码的说。
一级域名比较赞。
决定以后就拿它写总结了。希望不会过两天就RE了吧。</description>
    </item>
    
    <item>
      <title></title>
      <link>/tool/wechat-redirected/</link>
      <pubDate>Sun, 19 Sep 1999 09:09:09 +0000</pubDate>
      
      <guid>/tool/wechat-redirected/</guid>
      <description>Hi, there.
你为什么会看到这个页面？ 其实是 laekov 整了个不太成功的小活。 很久之前立过一个 flag 说某件事不达成不换头像，终于达成了。 想在 wechat 头像里放一个二维码导流到自己的网站上，然后发现 wechat 竟然拒绝头像里放二维码！ 所以大概需要亿些努力才能找到这个页面了。 你是如何做到的呢？方便的话在底下评论区留个言吧。
你和 jiaao 聊过天吗？ 是 &amp;ndash;&amp;gt; 好久不见，我还活着，请问找我有啥事吗？ 不是 &amp;ndash;&amp;gt; 往下看 如果你只是想看看这是个啥人儿 请在这个网站随便逛
关于如何和 jiaao 说话 这个微信号没有好友认证，有事请直接说，但是请记得报上您的名号。 朋友圈空空不是屏蔽，是不爱发。 关于如何提升 jiaao 回复微信消息的及时程度 写个邮件，抄送我老板 拉个微信群，把我老板也拉上 使用别的有已读功能的 im 软件找我（私聊获取联系方式） </description>
    </item>
    
    <item>
      <title>Bug report</title>
      <link>/post/bugreport/</link>
      <pubDate>Thu, 01 Jan 1970 08:00:00 +0000</pubDate>
      
      <guid>/post/bugreport/</guid>
      <description>Visitors may log down bugs they found here
Historical Comments zms_ at 2016-03-19T14:05:51 为什么手机上不了ovo
laekov at 2017-03-02T23:54:54 Github 登录功能已修复
ydc258ttbaby at 2022-10-11T19:39:34 再来试试能不能评论</description>
    </item>
    
    <item>
      <title>Download</title>
      <link>/post/download/</link>
      <pubDate>Thu, 01 Jan 1970 08:00:00 +0000</pubDate>
      
      <guid>/post/download/</guid>
      <description>这是laekov提供的资源页. laekov提供了一些常用的文件和一些奇怪的文件.
出门讲课常用:
my vimrc
gvim74
devcpp
ppt 资源:
一个紫紫的 keynote 的模板 </description>
    </item>
    
    <item>
      <title>Webboard</title>
      <link>/post/webboard/</link>
      <pubDate>Thu, 01 Jan 1970 08:00:00 +0000</pubDate>
      
      <guid>/post/webboard/</guid>
      <description>Visitors can say anything to the owner here
Historical Comments Unknown friend at 2015-04-01T00:08:45 写出了一个留言版一样的东西.不想再去写每个文章的评论列表了.那就将就用这个喽.我觉得还挺好的ovo &amp;mdash;- laekov
Unknown friend at 2015-04-02T09:08:32 yjq naive &amp;mdash;- zhonghaoxi
Unknown friend at 2015-04-02T09:09:45 yjq naive &amp;mdash;- hope1
Unknown friend at 2015-04-02T09:09:45 yjq naive &amp;mdash;- hope1
Unknown friend at 2015-04-02T13:03:20 yjq naive &amp;mdash;- mhy12345
Unknown friend at 2015-04-02T13:05:14 hope1 naive &amp;mdash;- hope1
Unknown friend at 2015-04-02T22:39:00 不要再刷naive了ovo &amp;mdash;- laekov
Unknown friend at 2015-04-03T13:12:13 yjq要ak了 &amp;mdash;- tyh</description>
    </item>
    
    <item>
      <title>What to eat</title>
      <link>/tool/whattoeat/</link>
      <pubDate>Thu, 01 Jan 1970 08:00:00 +0000</pubDate>
      
      <guid>/tool/whattoeat/</guid>
      <description>今天是 吃什么? </description>
    </item>
    
    <item>
      <title>Not a 404, but 404</title>
      <link>/not-easily-available/</link>
      <pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
      
      <guid>/not-easily-available/</guid>
      <description>The human being of laekov is also active on this social media.
However, no obvious connection is expected to be established online.
If you are interested in who it is, please reach out in person.</description>
    </item>
    
    
    
  </channel>
</rss>
