TOJ 1175 - 线段树模板题

Everything is possible by code.

lss233 3 min read

这题也是线段树 单组数据,第一行一个正整数n。(1<=n<=10^5) 第二行n个数 a1,a2...an。(0<= |a[i]| <=10^7) 第三行一个整数m,表示m个操作。 (1<=m<=10^5) 接下来m行,每行第一个数表示操作类型,其余数表示操作对应的参数,对应题面。 (1<

HDU 1671 - Phone List

Everything is possible by code.

lss233 2 min read

Given a list of phone numbers, determine if it is consistent in the sense that no number is the prefix of another. Let’s say the phone catalogue listed these numbers: Emergency 911 Alice

HDU 1257 - 统计难题

Everything is possible by code.

lss233 2 min read

Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). 输入 输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串. 注意:本题只有一组测试数据,处理到文件结束. 输出 对于每个提问,给出以该字符串为前缀的单词的数量. 样例输入 banana band bee absolute acm ba b band abc 样例输出 2 3

lss233 7 min read
于是乎,我就这样活过了2020:这是一篇年末总结

开始策划这篇文章之前,我以为这会是一篇负能量满满的文章。 这确实是不好过的一年,无论是对于我还是对于这个世界。 不过也算有好事发生啦…… 比如说我还活着。 过去一年里,我做了什么? 什么也没做。 这么说看起来有些不负责任,但事实确实是这样。在写这篇总结的时候,我没有任何 TODO。这不是说我已经把所有的 TODO 都完成了,而是我根本没有开过任何坑。 我找不到2018年时的我对2019年的展望和规划,大概是被某些重大事项给耽误了。 我同样没有找到那个特殊夜晚准备写的所谓 Lss233 v2.0 proposal。 这一年,我…… 写了 1000+ 行代码,外包了 15+ 个项目。 博客发布了

lss233 4 min read
这个Lss233一事无成却敢写年末总结:2019,再见啦。

你是活了365天,把1天过了365遍? 也许是缺少了一些仪式感,我发现这一年过得好快。 过去的一年里,Lss233做了些什么? 在写这篇文章的时候,咱先回顾了一下18年写的年末总结。很棒,消极的预言都实现了,积极的预言一个也没有。 Added: こんにちわ ‘学习一门新的外语。’ 我记得写这句话的时候,我在Duolinguo自学法语。后来因为某种原因没有坚持下去了。当初的想法是先自学一些拉丁语系的语言,最后学日语。结果……我现在打算主攻日语啦。 Updated: 更新了人生规划,未来是迷茫的 记得我最初的人生规划是,报考计算机系,毕业之后在大企工作。不过我要放弃这个规划了,19年里看见了不少程序员猝死、被公司压榨的报道…… 我希望我努力奋斗的结果换来的是比现在更轻松的生活,而不是更艰难的。 ‘寻找新的机遇。’很成功,

lss233 8 min read

有句俗语叫:If it ain't broke, don't fix it. 今天真是见识到了。 0x0000 起因在昨天(2月8日) 17时,本人收到了Cloudcone发来的春节优惠邮件。 在一番激烈的思想斗争下,下单了一个看上去更便宜的套餐。打算把服务器迁移过去。 0x0001 噩梦几分钟后,服务器创建完毕。 发现控制面板居然没有像搬瓦工那样方便的服务器迁移菜单,自己又懒得手动迁移,于是就发了份工单给客服询问有没有什么办法。 17:30技术人员小哥开始帮我迁移数据。 他的操作非常简单粗暴,直接把旧服务器的硬盘挂载到新服务器上,再把新服务器的硬盘挂载到旧服务器上。 听起来是没什么问题,那位小哥也没继续回复我。 然而他没有料到,两台服务器的IP地址是静态设置的,写死在`/etc/

新技能学习:教你如何阅读Java字节码

Everything is possible by code.

lss233 17 min read
新技能学习:教你如何阅读Java字节码

Java字节码是由 .java 文件通过Java编译器编译成 .class 文件所包含的代码,我们通常使用的Java程序就是通过Java虚拟机执行Java字节码来得到的效果。 既然我们可以口算MD5、手算二维码,这篇文章就来讲讲眼看Java字节码吧! 0x0000 - 准备工作 在开始学习之前,请先准备好下列工具: 1. 一款支持HEX格式的编辑器,如 Sublime Text(推荐)、Ultra Editor等。 2. 一个Java环境开发环境,用来编译一个.class文件。 你需要知道这些基本知识: HEX在这里指的是十六进制。 在计算机中,1个字节可以表示成2个连续的16进制数字,如 00、0A、FF等。

让我们用PGP进行安全地交流吧!

Everything is possible by code.

lss233 4 min read
让我们用PGP进行安全地交流吧!

如今的互联网,用户已经毫无隐私可言。咱经常都能看见各种信息泄露的新闻。谁能保证咱使用的软件、网络甚至是设备没有被什么人监视着呢? 为了保证隐私安全,PGP诞生了。 这篇文章将会让你了解如何在你的设备上配置与使用PGP加密邮件,让我们开始吧~ 0x00 PGP的前世今生 什么是 PGP ? PGP(英语:Pretty Good Privacy,中文翻译“优良保密协议”)是一套用于讯息加密、验证的应用程序,采用IDEA的散列算法作为加密和验证之用。 PGP加密由一系列散列、数据压缩、对称密钥加密,以及公钥加密的算法组合而成。每个步骤均支持几种算法,用户可以选择一个使用。每个公钥均绑定一个用户名和/或者E-mail地址。 PGP的主要开发者是菲尔·齐默曼(Phil

你好,2019

一年又一年,告别2018,迎来2019。这是一篇年末总结,列出了我在2018做过的事情,以及对2019的展望。

lss233 4 min read
你好,2019

一年又一年,告别2018,迎来2019。这是一篇年末总结,列出了我在2018做过的事情,以及对2019的展望。

{0x13} Phoenix模块开发教程:命令系统

Everything is possible by code.

lss233 8 min read
{0x13} Phoenix模块开发教程:命令系统

碎碎念... 关于命令系统的构思,我采用了一些Web框架的路由设计。 他们是像这样的: 注: 这个例子用到了Rapidoid Web框架。 所以我在Phoenix中也引入了这种设计。 可以说,这部分是最让我引以为豪的地方了。 这篇文章属于Phoenix Framework 入门教程的一部分。 注册一个命令执行器 咱建议,在插件被启用的时候就马上让Phoenix给我们的模块注册监听器。所以,在我们项目主类的onEnable()方法下,写上这么一行: Phoenix.getCommandManager().registerCommand(this,new MyCommandExecutor()); 如果一切顺利的话,接下来, 你的IDE会开始报错。(没报错的同学也没事,接着看往下操作。) 我们根据IDE的提示,创建一个叫做MyCommandExecutor的类,它就是我们的命令执行器。

浅谈 Java 9 的模块化系统

Everything is possible by code.

lss233 2 min read
浅谈 Java 9 的模块化系统

什么是模块? 一个模块是代码的集合。它以依赖关系的形式持有类,数据和其他模块。它与JAR文件类似,但更好。每个模块都包含一个module-info.java文件,它可以让我们明确地设置必要的信息。包括它依赖的其他模块以及其他模块可以访问的内容。 这是一种更好的方式,可以为程序员共享代码并进行协作减少一些兼容性的问题。 如何使用模块? 一个模块包含一个module-info.java文件 ,它包含了模块的基本信息,比如它依赖哪些模块、它的哪些部分能被其他模块访问等。 最主要的关键词是requires和exports。 现在,我们来写举几个简单的例子: module Decoder { requires Reader; exports com.decoder; } 上面的这个例子表明了Decoder模块依赖于Reader模块。 下一行则声明其他模块只能访问com.decoder包以内的内容。 module Reader { exports

使用lss233源加快Minecraft插件/Mod开发

Everything is possible by code.

lss233 2 min read
使用lss233源加快Minecraft插件/Mod开发

记得最开始使用Maven的时候,基本上大部分时间都花在寻找依赖和下载依赖上。 许多API的作者也都是把自己的工件放在自己的maven仓库上, 如果你使用maven,那么你不仅要在pom.xml中写dependency,还要写一个repository。 有些仓库在国内访问还很慢,这大大降低了开发效率。 如果你现在正为此苦恼的话,那么试试我搭建的仓库吧! 介绍 仓库地址:https://lss233.com/artifactory/minecraft 这个仓库镜像了以下内容: Spigot的Snapshots (主要包含了spigot-api, bukkit-api) Spongepowered (主要包含了spongeapi, spongecommon, spongeforge 以及其他开发sponge插件可能用到的工件) forge(镜像了files.minecraftforge.net/maven) nexus.hc.

Ghost Alpha主题发布

Everything is possible by code.

lss233 1 min read
Ghost Alpha主题发布

Ghost Alpha 是本人为Ghost写的第一个主题,前端主要采用Vue编写,主题基于来自HTML5 UP的Alpha 安装 您可以在Github的Release页面下载这个主题的最新版本。 解压下载的.zip文件,将里面的文件粘贴至您Ghost的content/themes文件夹中,然后重启您的Ghost 您需要在Ghost的Labs中开启Public API。 配置 您可以在这个主题的assets/js文件夹下找到一个名为config.js的文件,将里面的值换成你自己的。 更新日志 2018/6/22 发布第一个测试版本 这个主题目前还在开发阶段,您可以在评论区或者Github的issues页面提交您发现的问题或者建议。

{0x00} Phoenix模块开发教程:准备阶段

Everything is possible by code.

lss233 2 min read
{0x00} Phoenix模块开发教程:准备阶段

Phoenix是使用Java进行开发的插件框架,因此,标准的Phoenix插件也需要使用Java进行开发。 在进行Java开发之前,我们需要准备好JDK和IDE. 0x01 准备JDK 这篇文章属于Phoenix Framework 入门教程的一部分。 Java Development Kit,就是我们平时所提到 JDK,是开发 Phoenix模块所必须的。 由于Phoenix使用了Java8进行编写,因此你只能选择Java8或其以上的JDK版本。 同时,要想正常使用Phoenix,你也必须使用Java8或其以上版本的JRE. 旧版本的Java(如Java7)是无法运行Phoenix的。 下载 访问Oracle的Java SE Development Kit 8 Downloads页面,你可以下载到最新版本的Oracle JDK8.

lss233 3 min read
{0x12} Phoenix模块开发教程:创建你的项目主类

现在,我们终于可以开始写代码啦! 这篇文章属于Phoenix Framework 入门教程的一部分。 创建主类 在IntelliJ IDEA的Project窗口中,右键java文件夹(它应该是 src > main > java) 单击 New > Java Class 在Create New Class窗口中, Name处填写你的类名。 还记得上一节中我们填写的Group Id和Artifact Id吗? 你的类名最好这样填: <Group Id>.<Artifact

第 1 页,共 3 页