- 博客(64)
- 资源 (1)
- 收藏
- 关注
原创 HDU2866 Special Prime
对于质数p, 正整数m,n, 求[2, L] 中满足 n^3 + p * n^2 = m^3 的p的个数。
2016-09-02 14:10:51
962
原创 2014 ACM/ICPC Xi'an Regional I - International Collegiate Routing Contest
2014 ACM/ICPC Xi'an Regional I - International Collegiate Routing Contest - Trie Tree
2016-08-16 10:57:50
898
原创 CCPC(NQ)2016 - 1004 - Danganronpa 弹丸论破
题目重现Chisa Yukizome works as a teacher in the school. She prepares many gifts, which consist of n kinds with a[i] quantities of each kind, for her students and wants to hold a class meeting. Because of
2016-08-15 10:25:52
838
原创 CCPC(NQ)2016 - 1001 - A water problem 一个水题
题目重现Two planets named Haha and Xixi in the universe and they were created with the universe beginning.There is 73 days in Xixi a year and 137 days in Haha a year. Now you know the days N after Big Bang
2016-08-14 21:34:35
851
原创 【OOP】从 C++, Java 迁移到 JavaScript
如何从C++,Java的面向对象编程转移到JavaScript?本文提供了一个JavaScript子集的参考。
2016-08-08 17:29:37
607
原创 JavaScript 原型链
君子生非异也,善假于物也。 ——《荀子·劝学》JavaScript 中关于类的继承是一个原型继承的方式,总结起来其精髓就在于“借”这个字。JavaScript 中,对于一个对象,它所能访问的属性,不一定全是它自己的属性,也有可能是它原型的属性,甚至是原型的原型的属性……__proto__ 是一个属性,除了null 与 undefined 没有以外,其他的都具有这个属性。用于指向对象的原型,是
2016-08-06 19:56:45
546
原创 MQL5 命令行编译
首先我是看官方IDE太不爽了,要颜值没颜值,要性能没性能,要功能没功能…现在找到一种配置命令行工具的方案,从此便可基本摆脱愚蠢的官方IDE了。解决方案实际上只要将官方的MetaEditor带参数运行即可实现命令行编译。相当于运行一个没有GUI的MetaEditor。metaeditor64 /compile:%1metaeditor64 即官方IDE的可执行文件本体,默认安装于:"C:\Progra
2016-07-27 18:25:06
1927
原创 POJ 1321 棋盘问题
题目重现在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。输入描述输入含有多组测试数据。 每组数据的第一行是两个正整数:n,k(0<k≤n≤8)n, k (0 \lt k \le n \le 8),用一个空格隔开,表示了将在一个n×nn × n 的
2016-07-23 16:50:01
561
原创 CCCC/GPLT L2-006 树的遍历
题目重现给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式输入第一行给出一个正整数N(<=30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。输出格式在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例72 3 1 5 7 6 41 2 3 4 5 6 7输出样
2016-07-12 16:41:25
591
原创 CCCC/GPLT L2-010 排座位
题目重现布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席。输入格式输入第一行给出3个正整数:N(<= 100),即前来参宴的宾客总人数,则这些人从1到N编号;M为已知两两宾客之间的关系数;K为查询的条数。随后M行,每行给出一对宾客之间的关系,格式为:“宾客1 宾客2
2016-07-12 14:52:01
771
原创 CCCC/GPLT L1-018 大笨钟
题目重现微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;如果过了整点,就敲下一个整点数。另外,虽然一天有24小时,钟却是只在后半天敲1~12下。例如在23:00敲钟,就是“当当当当当当当当当当当”,而到了23:01就会是“当当当当当当当当当
2016-07-12 13:50:15
4041
原创 CCCC/GPLT L1-014 简单题
题目重现这次真的没骗你 —— 这道超级简单的题目没有任何输入。你只需要在一行中输出事实:“This is a simple problem.”就可以了。题解这跟Hello, World 差不多。代码示例#include <iostream>int main() { std::cout << "This is a simple problem."; return 0;}
2016-07-12 13:37:32
1376
原创 CCCC/GPLT L1-010 比较大小
题目重现本题要求将输入的任意3个整数从小到大输出。输入格式输入在一行中给出3个整数,其间以空格分隔。输出格式在一行中将3个整数从小到大输出,其间以“->”相连。输入样例4 2 8输出样例2->4->8题解将数据直接读入数组,然后升序排序,然后输入即可。代码示例#include <iostream>#include <cstdio>#include <algorithm>int main() {
2016-07-12 13:33:55
647
原创 CCCC/GPLT L1-006 连续因子
题目重现一个正整数N的因子中可能存在若干连续的数字。例如630可以分解为3*5*6*7,其中5、6、7就是3个连续的数字。给定任一正整数N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。输入格式输入在一行中给出一个正整数N(1N231)N(1。输出格式首先在第1行输出最长连续因子的个数;然后在第2行中按“因子1*因子2*……*因子k”的格式输出最小的连续因子序列
2016-07-12 11:47:36
587
原创 CCCC/GPLT L1-002 打印沙漏
题目重现本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印***** *** * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。输入格式输入在一行给出1个正
2016-07-12 09:42:28
907
1
原创 MQL5:zig-zag 指标
Zig-Zag 指标是用于描述高低点趋势的指标。MQL5 官方实现先来看看MQL5的官方实现:辅助函数首先引入两个辅助用纯函数1,用于搜索一个数组中一个区间内的最大/最小值的索引。array[iHighest]=maxi∈(startPos−depth,startPos]{array[i]}array[iHighest] = \max_{i \in (startPos-depth, startPos
2016-07-06 16:22:22
4712
2
原创 NodeJS 跨语言子进程持续通讯
有一个应用场景:用C/C++/Java等编译型语言做NodeJS服务器背后高性能计算的组件,那么应该如何实现?比较好的方法是用Socket通讯,但这就需要双方都要进行套接字编程。NodeJS倒是好说,但其他语言的套接字编程就不一定简单了。所以本文中以NodeJS/C++为例,用管道来进行通讯,就像标准输入输出一样简单。本文仅作演示,默认所有文件都在同一个目录。高性能运算端先以一个可以持续 输入/输出
2016-06-20 15:51:04
1605
1
原创 Mini SQL 总体设计(二):Token分割
之前那篇博文Mini SQL 总体设计(一) 中在提到Tokens分割的时候试图进行句法分析,这个问题就相当复杂了。看了指针1 实现的Token分割之后,我发现我有个地方搞错了。我试图将SQL语句中充当不同成分的部分提取出来,就像分析主谓宾一样,这实际上是句法分析。对于正则表达式来说未免任务过重。而且有限状态机也无法进行无限深度的括号平衡匹配。我应该把Tokens分割地更细,然后将逻辑复杂度转移到T
2016-06-15 22:55:01
1402
原创 Mini SQL 总体设计(一):Interpreter
概述Mini SQL是SQL的一个子集,支持SQL的最常用的部分操作。Mini SQL分为:Interpreter, 将SQL翻译成API可识别的消息API,接收并响应消息……
2016-06-14 22:55:51
5388
原创 React Router context.router 未定义错误
我在使用 react-router@2.4.1 的时候用了 ES6 的 class 来构造 React 组件类,碰到一个坑:context.router 未定义
2016-06-09 08:26:01
8463
2
原创 NodeJS 不可逆加密与密码密文保存
在应用中,常常有要将用户的密码加密储存的需要。以明文保存密码有个缺点:一旦泄漏时容易造成极大的损失,可能会连带其他网站的用户、密码也造成损失(因为大多数用户在多数网站使用相同的账号与密码)。这个泄漏可能来自于两方面:骇客入侵与运维人员监守自盗。为了防止在密码明文泄漏,我们需要对在数据库中保存的密码字段进行不可逆加密。准确地说,是加密以后再保存到数据库中。常用的不可逆加密算法有MD5与SHA-1。在N
2016-06-07 03:16:40
4334
原创 JavaScript 可配置函数与柯里化
有时候你可能会写出这样的函数:function foo(n, flag){ ... }也许情况比这个更复杂,总之你希望用一个参数来控制程序流,这相当于你有一个配置函数的需求,不妨尝试柯里化吧。
2016-06-06 04:08:00
466
原创 JavaScript DFT 离散傅里叶变换
关于 离散傅里叶变换 DFT 以及 快速傅里叶变换 FFT 的算法可以在 算法导论第30章 或者 其他人的博客里看到。这里不做赘述。我们来看一种有趣的函数式的实现…
2016-06-06 03:20:52
5003
原创 JavaScript 列表重构
最近碰到一个将矩阵转置(Transpose)的问题,有人会说这还不简单,写个函数就解决了:function transpose(matrix) { ... } Naive。让我们用函数式的眼光重新分析这个问题。
2016-06-06 01:31:57
904
原创 node.js mysql 初探笔记
无论是node.js 还是 mysql 对我来说都并不陌生,然而我还真的是第一次将它们组合起来使用,初用node.js 的时候就接受了MongoDB,之后也很少用mysql了。本文面向对 node.js 与 mysql 有基本了解,试图组合使用他们的读者(也包括我自己)。安装非常简单,准确地说并不是安装mysql数据库的本体,而是指mysql到nodejs的驱动程序。使用 npm 在项目目录安装即可
2016-06-05 13:34:19
720
原创 JavaScript Array 原型方法 大盘点
数组是一个超常用的数据结构,JavaScript的数组方法都有什么怎样的特性呢?是时候一探究竟了。JavaScript中数组是一个对象,默认的赋值是传了一个引用。针对结果是引用还是拷贝,对原数组的变更与否,分为两类方法:必写方法、只读方法。必写方法列举了一些会造成数组本身的内容发生改变的方法。spliceArray.prototype.splice(start: number, deleteCoun
2016-06-04 13:12:49
4607
原创 Material-UI 部署到 GitHub Pages 的实例
纯前端的网页是可以直接部署到 GitHub Pages上的。下面展示一个Material-UI部署到GitHub Pages上的实例。 至于如何配置Material-UI,请参考Material-UI + React + Babel + Webpack 环境配置Demo: XJTU Index - 简单的导航网GitHub: XJTU Index - GitHub用Webpack将前端UI
2016-06-03 06:14:38
1542
原创 Hello Hexo
今天决定折腾一下这个 github.io,想来想去只能做一个个人主页了,而且是静态的,于是选择了Hexo这款产品。Hexo是基于NodeJS开发的一款命令行工具,本质上是从源到资源的转换工具。Source→ResourceSource \to Resource初始化工作空间Hexo的用户,也就是博主,使用Hexo工具处理一个空的文件目录,使得它变成一个符合条件的工作空间:$ hexo init配置主
2016-05-29 10:24:57
447
原创 Web提醒服务的四种实现方式比较
很多的大型Web系统中都有一个可以提醒用户的功能。提醒的消息自然是越新鲜越实时越好。对此,不同的系统采用不同的策略。刷新。当刷新页面的时候查询新的消息。 当用户长期停留在一个页面的情况(以SPA为极端情况)下,这种刷新的操作就会使得消息的新鲜度受损。但总体来说,方便实现,且开销不大。用户在一个页面上停留的时间越短,这种策略就越好。短轮询。定期发送一个Ajax请求到服务器检查新的消息。 设置一
2016-05-27 13:08:25
1962
原创 NodeJS 事件系统详解
NodeJS 事件系统是很多其它NodeJS系统(如net、http(s)等)的基础之一。事件系统可以定义自己的一套事件系统,并绑定若干处理事件。事件系统封装在NodeJS的 events 包里,具体API与官方说明参见官方文档。基本使用姿势引入 events 包var events = require('events');这个 events 是一个类(JS中类即函数),它还有几个成员,其中Even
2016-05-20 18:35:50
2752
2
原创 PTA Review of Programming Contest Rules
按照ACM/ICPC的比赛计分规则(解题数+20分钟罚时规则),给定比赛时间、总题数。假设某个人是这样做题的:1. 用一定时间通读所有的题,计算出解出每个题目所需的时间,以及如果错了,调试一次所需的时间。2. 他一旦开始做某题,不做出来就不换题(一不做二不休)。3. 对于每道题,他第一次提交的时间决定了他需要调试的次数。
2016-05-19 02:06:37
3943
原创 Ubuntu14.04下JDK8+Tomcat7 环境配置
Java 8由于Ubuntu 14.04 LTS 下本来是没有 oracle-java8-installer 这个包的,所以需要先将这些包的信息先导入,以便apt-get 来安装。先将含有相关包的一个清单导入,这个清单里面有我们需要的包的信息。$ sudo add-apt-repository ppa:webupd8team/java然后更新一下包列表。$ sudo apt-get update接下
2016-05-18 06:14:01
2440
原创 Node Package: options
options A very light-weight in-code option parsers for node.js. 一个非常轻量的在代码内的NodeJS选项解析器。大致的作用就是解析、重设、合并、拷贝、读取、验证选项,源代码非常短,本文就做一个简单的解读。这个包非常底层,没有依赖其他的第三方包(叶子包),而且被广泛地引用,在自行开发包的时候可以引用一下。这个包是只支持Node
2016-05-18 00:33:11
726
原创 Material-UI + React + Babel + Webpack 环境配置
Material-UI 是一套用React写成的,符合Google Material Design 的UI组件库。此库在编写的时候用到了ES6与ES7的一些特性,并用Babel构建,于是我稍作研究,给出最小的环境配置来使用Material-UI这套库。初始化创建一个项目目录并初始化项目(如果没有的话)$ mkdir hello-material-ui$ cd hello-material-ui$
2016-05-16 03:40:13
13630
15
原创 Web 安全登录
基本解决方案绝大多数Web应用里面都有用户登录的功能。由于HTTP(S)协议的特点,服务器没有办法锁定客户端,因为客户端对服务器发送HTTP(S)请求的时候,往往没有携带自身的信息,于是服务器想确认客户端的身份是有心无力的。于是出现了在HTTP(S)报头中附带Cookie的一种做法,来帮助服务器识别客户端:Created with Raphaël 2.1.0客户端客户端服务器服务器没有携带Cooki
2016-05-15 01:22:09
2675
翻译 系统设计:在线支付系统的需求分析报告
在线支付系统在线支付系统是一个第三方安全交易系统。买方可以先向账户充值,然后系统会提醒卖方发货。一旦买方确认收货,系统会将钱转到卖方的账户,就这样他们完成了一次网络交易。在个文档描述了支付系统的基本的功能性和非功能性需求。请仔细阅读。功能性需求个人账户管理系统个人账户管理系统允许一个基础的用户(买方或卖方)用他们的真名、身份证号与电子邮件等基本个人信息注册一个账户,并且可以
2016-05-10 16:18:50
8717
原创 Web开发者之路(二):开始用NodeJS
考虑到前端三大件入门不难,但深入修炼需要大量的时间……我们先来考虑一下后端开发。NodeJS 安装在 NodeJS 官网 下载最新版本,它会自动判断你的操作系统并给出相适应的版本,想要自选版本或者想使用包管理器的话可以在这里找。安装完毕以后,你的环境中就多了两个程序:node 与 npmnode是NodeJS的主程序,npm则是NodeJS的包管理器(package manager)。包管理器可以很
2016-05-10 09:06:35
456
原创 Web开发者之路(一):序篇
回首我开始学HTML的时候,那已经是2014年9月的事情了。当时我才刚上大一,就连编程也只能说是一个初心者,算法只会选择排序,编程语言只学过一点点Visual Basic。当时对网页制作还停留在FrontPage、Dreamweaver 这种工具的印象上。说来有趣,当时印象中的Web开发跟用Word写点东西并发到QQ空间里没什么本质区别。直到现在,我在Web开发之路上已经跌跌撞撞走了20个月了。没有
2016-05-09 22:27:58
1224
原创 PTA Huffman Codes
题目重现In 1953, David A. Huffman published his paper “A Method for the Construction of Minimum-Redundancy Codes”, and hence printed his name in the history of computer science. As a professor who gives th
2016-05-08 22:23:36
2661
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人