用线段树抽象出每次两端剩下的人数,然后选择下一个人的位置。
昨晚看题+瞎写,今晚看了解题报告,结果还是没折腾出来,瞧着差了最后构建模型的问题,没写完,万分的疼。
用线段树抽象出每次两端剩下的人数,然后选择下一个人的位置。
昨晚看题+瞎写,今晚看了解题报告,结果还是没折腾出来,瞧着差了最后构建模型的问题,没写完,万分的疼。
大约100天前写的,今天突然看到,mark。
思绪如藤,落叶秋纷。
雏菊纷扰,不忆春秋。
紫兰欲言,一照七夜。
行至路中,却回首。
不知何去何从。
三千河洛,暖梦犹存。
1. 将一个float或double值造型成整数值后,总是将小数部分“砍掉”,不作任何进位处理。
2.
同样的规则亦适用于while:
(1) 简单的一个continue会退回最内层循环的开头(顶部),并继续执行。
(2) 带有标签的continue会到达标签的位置,并重新进入紧接在那个标签后面的循环。
(3) break会中断当前循环,并移离当前标签的末尾。
(4) 带标签的break会中断当前循环,并移离由那个标签指示的循环的末尾。
3.
在这两种情况下,我们都必须人工中断程序,所以会发现Math.random()“似乎”永远都不会产生0.0或1.0。但这只是一项实验而已。若想到0和1之间有2的128次方不同的双精度小数,所以如果全部产生这些数字,花费的时间会远远超过一个人的生命。当然,最后的结果是在Math.random()的输出中包括了0.0。或者用数字语言表达,输出值范围是[0,1)。
4.
static初始化只有在必要的时候才会进行。如果不创建一个Table对象,而且永远都不引用Table.b1或Table.b2,那么static Bowl b1和b2永远都不会创建。然而,只有在创建了第一个Table对象之后(或者发生了第一次static访问),它们才会创建。在那以后,static对象不会重新初始化。
初始化的顺序是首先static(如果它们尚未由前一次对象创建过程初始化),接着是非static对象。大家可从输出结果中找到相应的证据。
在这里有必要总结一下对象的创建过程。请考虑一个名为Dog的类:
(1) 类型为Dog的一个对象首次创建时,或者Dog类的static方法/static字段首次访问时,Java解释器必须找到Dog.class(在事先设好的类路径里搜索)。
(2) 找到Dog.class后(它会创建一个Class对象,这将在后面学到),它的所有static初始化模块都会运行。因此,static初始化仅发生一次——在Class对象首次载入的时候。
(3) 创建一个new Dog()时,Dog对象的构建进程首先会在内存堆(Heap)里为一个Dog对象分配足够多的存储空间。
(4) 这种存储空间会清为零,将Dog中的所有基本类型设为它们的默认值(零用于数字,以及boolean和char的等价设定)。
(5) 进行字段定义时发生的所有初始化都会执行。
(6) 执行构建器。正如第6章将要讲到的那样,这实际可能要求进行相当多的操作,特别是在涉及继承的时候。
5.
大家可能会疑惑这个循环什么时候会停下来,因为内部没有任何改变Chair.f值的语句。然而,finalize()进程会改变这个值,直至最终对编号47的对象进行收尾处理。
每次循环过程中创建的String对象只是属于额外的垃圾,用于吸引垃圾收集器——一旦垃圾收集器对可用内存的容量感到“紧张不安”,就会开始关注它。
运行这个程序的时候,提供了一个命令行自变量“before”或者“after”。其中,“before”自变量会调用System.gc()方法(强制执行垃圾收集器),同时还会调用System.runFinalization()方法,以便进行收尾工作。这些方法都可在Java 1.0中使用,但通过使用“after”自变量而调用的runFinalizersOnExit()方法却只有Java 1.1及后续版本提供了对它的支持(注释③)。注意可在程序执行的任何时候调用这个方法,而且收尾程序的执行与垃圾收集器是否运行是无关的。
假设你突然死掉,世界将会怎样?
世界将一样绚丽,地球转的一样快,太阳系每天在宇宙中换一个位置。大海还是大海,波涛还是波涛,一样的花开花落,潮起潮落。
你的亲人可能会掉眼泪,但是周围的人在三个月内将你忘个干净,那是你曾经那么在乎他们怎么看你的一群人啊。
如果上帝存在,在他的眼里,你是多么可怜的小虫子,在活着的短暂岁月里,在最美好的青春里,都不曾快乐过,用尽心力去聚集一大堆外在和心灵没有关系的小东西,只是出于对未来的没有信心,小小的心灵在接 近熄灭的一天还在发出那个愚蠢的声音,让你忙碌,让你忧虑的声音:我要,我还要。
天底下充满了这样的小虫子,当一个离开了,又有一个来了,做着同样的事情,汹涌着同样的小小念头,受着同样的煎熬。
于是上帝要感慨了:虚空的虚空,凡事都是虚空。已有的事,后必再有;
已行的事,后必再行。日光之下,并无新事。
下面是一篇源,zt一个清华学生留学香港后对人生的思考(转)
第1章 对象入门
“为什么面向对象的编程会在软件开发领域造成如此震憾的影响?”
管理上: 它实现了更快和更廉价的开发与维护过程
技术上: 建模处理变得更加简单,能生成清晰、易于维护的设计方案
程序员: 对象模型显得如此高雅和浅显
面向对象工具以及库的巨大威力使编程成为一项更使人愉悦的任务。每个人都可从中获益,至少表面如此。
初涉面向对象编程遇到的问题:
A. 需要了解巨大的库的使用方法。
B. 选择一个基本没有库的C++,深入学习语言机制,直到自己能编写对象库。 PS: 现在已经有STL等标准库了。
下面逐步介绍Java的面向对象编程思想。 PS: 本导读会摘取关键语句。
不知不觉又写到了4点,先总结一下遇到的问题。
1. 遇到一个挺迷茫的Symbol编译错误,仔细检查发现是上一句末尾没分号。
2. 遇到一个地方以为是书上写错了,反复Debug发现是我错了。
3. Makefile写的越来越顺手,Lex和yacc使得也挺顺手… 写的时候在想下次什么查找什么都用他们写好了。
4. 总体上有七七八八的问题,经常出现莫名其妙的问题,比如输入流怎么就直接输出了,其实是自己的匹配式没写好。遇到这类问题花了蛮多时间反复调试,相当疼,可见写的时还要更用心,多看清楚再写。
5. 劣质的暖手袋,怎么半小时不到就冷了。
6. 武商卖法国面包,相当硬。。。
终于勉强写好了大作业,明天可以拿去检查了,看情况估计还可以加点begin end的结束符,不过感觉还是lex的原理看少了,而且lex和yacc的接口,其实就是C函数间调用的方法吧,只不过机器生成的源码有点小纠结,还好,书上说的是“不便阅读”,其实还是“可以差错”的。
最后来个截图庆祝一下,顺便测试一下转发到Baidu是什么效果。
1. 考虑到最近作息时间紊乱,准备开始填Blog。
2. 恢复以前的HiBaidu更新。
3. 使用WP2HiBaidu同步。
4. 顺便放一些图片去百度相册。