gyro永不抽风

ああああああああああああああああおおおおおおおおおおおおおおおお

307-05-直径

直径的性质

  1. 任意两条直径必定相交
  2. 所有直径必交于一点

找直径

任意一个点出发,找出最远点,从最远点,在找到最远点,连起来就是直径(两次$dfs$)。证明从略(反证法)。

P1099 树网的核

题目描述

设$T=(V,E,W)$是一个无圈且连通的无向图(也称为无根树),每条边到有正整数的权,我们称$T$为树网(treebetwork),其中$V$,$E$分别表示结点与边的集合,$W$表示各边长度的集合,并设$T$有$n$个结点。

路径:树网中任何两结点$a$,$b$都存在唯一的一条简单路径,用$d(a,b)$表示以$a,b$为端点的路径的长度,它是该路径上各边长度之和。我们称$d(a,b)$为$a,b$两结点间的距离。

$D(v,P)=min⁡{d(v,u)}$, $u$为路径$P$上的结点。

树网的直径:树网中最长的路径成为树网的直径。对于给定的树网$T$,直径不一定是唯一的,但可以证明:各直径的中点(不一定恰好是某个结点,可能在某条边的内部)是唯一的,我们称该点为树网的中心。

偏心距$ECC(F)$:树网$T$中距路径$F$最远的结点到路径$F$的距离,即

$ECC(F)=\max⁡{d(v,F),v∈V}$

任务:对于给定的树网$T=(V,E,W)$和非负整数$s$,求一个路径$F$,他是某直径上的一段路径(该路径两端均为树网中的结点),其长度不超过$s$(可以等于$s$),使偏心距$ECC(F)$最小。我们称这个路径为树网$T=(V,E,W)$的核(Core)。必要时,$F$可以退化为某个结点。一般来说,在上述定义下,核不一定只有一个,但最小偏心距是唯一的。

下面的图给出了树网的一个实例。图中,$A−B$与$A−C$是两条直径,长度均为$20$。点$W$是树网的中心,$EF$边的长度为$5$。如果指定$s=11$,则树网的核为路径DEFG(也可以取为路径DEF),偏心距为$8$。如果指定$s=0$(或$s=1$、$s=2$),则树网的核为结点$F$,偏心距为$12$。

阅读全文 »

307-01-树形背包$O(n^2)$算法


P2014选课

题目描述

在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习。现在有N门功课,每门课有个学分,每门课有一门或没有直接先修课(若课程a是课程b的先修课即只有学完了课程a,才能学习课程b)。一个学生要从这些课程里选择M门课程学习,问他能获得的最大学分是多少?

阅读全文 »

题目大意

对于给遗传给定的序列:

求:

阅读全文 »

Set,Multiset,Iterator


Iterator:迭代器

我们可以发现所谓一些数据结构比如说数组和链表,它们都有一些相似的性质。我们看下面两个例子:

  1. 数组:定义数组$int~a[10]$,第一个元素的指针为$a$,第二个元素的指针为$a+1$,第三个元素的指针为$a+2$,等等、
  2. 链表:对于一个链表$list\text{<}int\text{>}~mylist;$,它的储存方式是链式储存,内存里的地址不是连续的,而是分散的,它只能用$next$或者$last$来访问元素。

为了统一这两种储存方式的指针,我们引入了一种更加高级的指针,叫做$iterator$,现在定义一个$iterator$:$std\text{::}set\text{<}int\text{>::}iterator~iter$,这种指针可以支持以下的操作:

  1. $iter\text{++}$ :将$iter$指向下一个元素的地址
  2. $iter-\hspace{0.2pt}-$ :将$iter$指向上一个元素的地址
  3. $*iter$:获得$iter$指针所指向地址所储存的值

阅读全文 »

P1966 火柴排队

题目描述

涵涵有两盒火柴,每盒装有n根火柴,每根火柴都有一个高度。 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相同, 两列火柴之间的距离定义为:$∑(a_i−b_i)^2$

其中$a_i$表示第一列火柴中第i个火柴的高度,$b_i$表示第二列火柴中第i个火柴的高度。

每列火柴中相邻两根火柴的位置都可以交换,请你通过交换使得两列火柴之间的距离最小。请问得到这个最小的距离,最少需要交换多少次?如果这个数字太大,请输出这个最小交换次数对 $99,999,997$取模的结果。

阅读全文 »

Overview

The Main Thread Checker is a standalone tool for Swift and C languages that detects invalid usage of AppKit, UIKit, and other APIs on a background thread. Updating UI on a thread other than the main thread is a common mistake that can result in missed UI updates, visual defects, data corruptions, and crashes.

阅读全文 »

在面包人爸爸的帮助下,折腾了几个小时,奶茶铺终于开张咯(手动@枫亚\侧边栏里有啦/)。

由于我们学校要求每天7点起床打卡,但是实在做不到,遂写了这个脚本。

绪论

由于晓黑板不支持网页版,只能使用App进行打卡,所以我使用网易的安卓模拟器,安装App。

打卡实现

逻辑非常简单:

  • 使用java的Robot类来移动,点击鼠标
  • 由于Robot对模拟器输入无效,就使用Applescript键入1
  • 再点击一次按钮,完成打卡
阅读全文 »