- 博客(506)
- 资源 (2)
- 收藏
- 关注
原创 slf4j配置与解析
logback.xml 当在jvm里运行jar包程序时,可以使用参数-Dlogback.configurationFile=xxx/logback.xml 指定lobback.xml的位置。 当使用Intellij IDEA等idea运行源码时,logback.xml文件位于/src/main/resource文件夹下
2016-10-22 14:40:56 793
原创 基于python开发pre-commit hook达到对git提交时间的控制
近期公司开发使用的版本控制工具由svn转向git,由于开发需求,经常会更改本地的时间,从而暴漏出一个原先使用svn不会出现的问题:commit的时间经常会不对。主要是因为git提交到远程服务器需要两部曲commit-push,而commit时使用的是本地的系统时间,这样就导致在修改本地时间之后,commit的时间就与正常时间对不上。现在希望开发一个脚本实现在提交的时候检查本地的时间是否正常,如果异常
2016-10-14 20:29:07 3318 3
原创 actor中!(tell)与forward的区别
! 的源码:def !(message: Any)(implicit sender: ActorRef = Actor.noSender): Unittell 的源码:final def tell(msg: Any, sender: ActorRef): Unit = this.!(msg)(sender)forward 的源码:def forward(message: Any
2015-03-14 11:37:19 4840
原创 scala下使用akka计算pi
Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。它已经成功运用在电信行业。系统几乎不会宕机(高可用性 99.9999999 % 一年只有 31 ms 宕机。用akka计算pi,计算公式:这样,我们把这个公式每连续的elements个分成一段,一共分成message段。然后开worker个acto
2015-03-12 21:48:36 3859
原创 bug修复日记---------玩家信息被重复写入数据库
结构介绍: 当客户端下线的时候,客户端会发一个消息给服务端,告诉服务端,我要下线,接着,客户端就会执行下线的函数 下线函数里会执行让服务端往数据库里写客户端的数据的函数并且把这个客户端从session列表里删除。 当服务端接受到客户端想要下线的意愿的时候,也会执行下线函数。 这样做的目的是为了防止客户端意外下线,导致客户端无法
2015-02-06 18:13:56 971
原创 bug修复日记------玩家第一次登陆的信息没有存储
结构介绍:最近在写游戏中社交相关的逻辑处理。整体思路架构如下:当玩家登录游戏,去数据库中查找有没有玩家的信息,如果有,那么就取出来,放在内存中,如果没有,就新建一个玩家信息。当玩家登出游戏的时候,把玩家的信息从内存中写入数据库中现场日记:今天在做单元测试的时候,发现一个bug,当玩家第一次登录游戏,然后登出之后,玩家的信息竟然没有存到数据库里。当玩家第二次登录的时候,再登出
2015-02-04 20:36:21 848
原创 scala版本的梅森旋转随机数算法
package xzxzimport scala.annotation.tailrecclass MersenneTwister(seed: Int) { private val SIZE: Int = 624 private val PERIOD: Int = 397 private val DIFF: Int = SIZE - PERIOD private de
2015-01-01 20:31:20 2054
原创 c#中文字符串与byte数组互相转化
因为中文字符串一个字符占两个字节,所以不能用正常的方式与byte之间进行互相转化中文字符串转成byte[]byte[] ping = Encoding.UTF8.GetBytes("你的密码是什么?");byte[]转化成中文字符串:string str = Encoding.UTF8.GetString(ping);
2014-12-25 11:47:25 25782
原创 scala-简单的模式匹配
csvMap.get(row) match { case Some(y:Map[String, String]) => y.get(list) case None => None }csvMap的数据类型是:Map[String, Map[String, String]]现在我想实现通过row和list关键字,提取出来对应的String。我首先使
2014-12-16 15:30:43 931
原创 scala-尾递归,Array.newbuilder,二维数组
尾递归:如果一个函数为内置函数并且是尾递归的方式,可以在函数前面添加@tailrec。相当于告诉编译器我这个函数是尾递归函数,然后编译器会对这个函数进行一些操作,把递归化解出来。Array.newBuilder创建一个不定长的数组,然后依次往数组里面加数,最后封起来,就可以使用Array.newBuilder. val A = Array.newBuilder[Int
2014-12-16 14:12:30 2502
原创 scala-第七章-打印9*9乘法口诀表
class multitable{ def makeRowSeq(row: Int) = for(col <- 1 to 10) yield { val prod = (row * col).toString;//prod=行号*列号 val padding = " " * (4 - prod.length);//添加padding个空格 padding + pr
2014-12-14 22:36:25 2225
原创 scala-第六章-Rational
涉及到的知识点:检查先决条件。函数重载。操作符重载。控制台输入。私有函数。隐式转换。import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamRe
2014-12-14 21:23:31 1955
原创 学习scala-hello-world!
object cfa { def main(args: Array[String]){ println("Hello,world!"); }}很简单的hello,world!
2014-12-07 18:13:58 753
原创 hdu-5015-233 Matrix-矩阵
很显然矩阵的第一列为:0a[1]a[2]a[3]a[4]我们转化一下,转化为23a[1]a[2]a[3]a[4]3那么由第一列转移到第二列则为23*10+3a[1]+23*10+3a[2]+a[1]+23*10+3a[3]+a[2]+a[1]+23*10+3a[4]+a[3]+a[2]+a[1]+23*10+33很显然
2014-09-17 15:54:51 3194
原创 hdu-5009-Paint Pearls-dp
由题意我们可以知道,花费最多为n。所以单次最多涂掉sqrt(n)种颜色。dp[i]:涂到第i个位置,之前的花费最少为多少。biao[i][j]:在第i个位置,往前涂j-1种颜色,涂到哪个位置。vis[i]:i颜色最后出现的位置,不存在等于-1。我们先离散化颜色。然后很显然转移方程:dp[i]=min(dp[i],dp[biao[i][j]]+(j+1)*(j+1));
2014-09-17 15:48:44 2020
原创 Codeforces Round #266 (Div. 2)-C,D
C - Number of Ways直接暴力从前往后寻找,如果找到1/3sum的位置,那么标记++。找到2/3的位置,总数加上标记数。#include#include#include#include#include#include#include#include#include#include#pragma comment(linker, "/STACK:1024000
2014-09-17 15:44:10 1538
原创 BestCoder Round #7-A,B,C
A:Little Pony and Permutation直接暴力搜索,复杂度O(n)#include#include#include#include#include#include#include#include#include#include#pragma comment(linker, "/STACK:1024000000,1024000000")using n
2014-09-03 16:08:49 1060
原创 Codeforces Round #263 (Div. 1)-A,B,C
A:这道题目还是很简单的,做过很多遍了,类似于切割木板的问题。把所有的数放在一个优先队列里,弹出两个最大的,然后合并,把结果放进去。依次进行。#include #include#include#include#include#include#include#includeusing namespace std;#define LL __int64#define IN
2014-08-27 11:17:41 1348 2
原创 zoj-3802-Easy 2048 Again
简单的dp。dp[i][j]:在第i位置,递减的状态为j,所获得的最大利润。枚举状态,如果加进来的数x比状态的最小的要大,那么直接状态变为x。如果x比最小的要小,那么状态为j+x。如果x等于最小的,那么依次加和,直至最小的比x大。#include #include#include#include#include#include#include#includeus
2014-08-26 10:59:40 1515
原创 Codeforces Round #262 (Div. 2)-A,B,C,D
A. Vasya and Socks水题就不用多说了,直接暴力枚举就完事了。#include #include#include#include#include#include#includeusing namespace std;#define LL __int64int main(){ int n,k; while(~scanf("%d%d",&n,&
2014-08-22 14:25:58 1147
原创 2014多校联合-第八场
1001:2048很明显,一开始看错题了。。。sad这题目我感觉挺卡时间的。。。dp[i][j]:在选择2^i的时候,选择的和为j*2^i到(j+1)*2^i-1时候的情况。#include #include#include#include#include#include#include#includeusing namespace std;#define LL
2014-08-20 15:22:06 1230
原创 2014多校联合-第七场
1005: ( Stupid Tower Defense ) 由题意我们很明显可以知道,红色的塔放在最后面是最优的。假如前i个塔,放j个绿塔,i-j个蓝塔。那么无论前i个塔的顺序怎么放,对后面的塔造成的影响是完全相同的。dp[i][j]:前i个塔,放j个绿塔,能获得的最大价值。dp[i][j]=max(dp[i-1][j-1]+当前塔放绿塔获得的能量值,dp[i-1][j]+当前塔
2014-08-14 10:32:04 867
原创 hdu-4933-Miaomiao's Function(BC#4 1003)
有的时候真是无力吐槽。。。G++ AC,C++ WA。这是什么心态。。。这道题目耗费了半个小时写代码,却用了两天debug()........dp[i][j][k]:i为0||1,当i=0时代表L,i=1时代表R第i状态下,数字j出现的次数为10^k次有多少种情况。然后把i为1的剪掉i为0的。然后算出最终的answer数组。然后根据answer数组算出最后的f,这里有一
2014-08-12 09:58:47 1263
原创 fzu-1753 Another Easy Problem-快速求N!中有多少个p
就是算出来每一个C(N,M)是由哪些数乘来的就好。。。。#include #include#include#include#include#include#include#includeusing namespace std;#define LL long long#define lcm(a,b) (a*b/gcd(a,b))//O(n)求素数,1-
2014-08-09 19:39:31 1364
原创 2014多校联合-第六场
最近这两场好无奈啊。。。今天这场最后30分钟敲1001,压力倍增,虽然思路比较明确,但是代码打起来不怎么容易。但是还是好在25分钟左右debug结束。提交wa,再提交,依然WA.......最后5分钟,还是没有AC掉。一开始以为是精度问题,后来才sb的发现原来数组开小了。在压力环境下保证代码的效率和质量真不是一件容易的事情。不过数组开小了,真是不可原谅。1001:Map题目
2014-08-07 20:29:45 996
原创 2014多校联合-第五场
1001:Inversion模版题,求逆序数对。有多少逆序数对,就可以剪掉多少。1003:Least common multiple对于每一个子集,lcm为2的a的最大值次方*3的b的最大值次方。所以我们只需要求出以某个b为b的最大值的时候,a的最大值的分布情况即可。我们先把b从小到大排序。对于某一个b,我门只需要求出之前出现过的a比当前a小的数量为x;那么就可知对于这
2014-08-06 12:48:22 1267
原创 2014多校联合-第三场
1002:Redraw Beautiful Drawings最大流。。。。用sap+gap优化的模版过的。。。1. 源点 -> 每一行对应的点,流量限制为该行的和2. 每一行对应的点 -> 每一列对应的点,流量限制为 K3. 每一列对应的点 -> 汇点,流量限制为该列的和跑一遍最大流。如果流量小于总权值和,那么说明impossible。如果等于:构建残图网络,如果残
2014-07-30 21:15:05 1080
原创 lightoj-1010-Knights in Chessboard
题意:给你一个n*m的棋盘,问你棋盘上最多放多少个马,使得任意两个马都不会互相攻击。做法:对于棋盘,我们会发现,如果我们只把马放在白色的方格内,则任意两个马都不会互相攻击。这样我们有了第一种放法,全放在白格内或者全放在黑格内。但是有一些特殊情况。假如n=min(n,m),m=max(n,m);如果n=1,那么我们可以在棋盘上全放上棋子。如果n=2,那么我们可以一次把
2014-07-29 10:29:01 1996
原创 Codeforces Round #257 (Div. 1)-A,B,C
A:Jzzhu and Chocolate直接横切或者B:Jzzhu and CitiesC:Jzzhu and Apples
2014-07-26 19:30:47 702
原创 Codeforces Round #258 (Div. 2)-(A,B,C,D,E)
A:Game With Sticks水题。。。每次操作,都会拿走一个横行,一个竖行。所以一共会操作min(横行,竖行)次。#include#include#include#include#include#include#include#include#pragma comment(linker, "/STACK:1024000000,1024000000")using
2014-07-25 14:39:48 1878 1
原创 Codeforces Round #FF (Div. 1)-A,B,C
A:DZY Loves Sequences一开始看错题了。。sad。题目很简单,做法也很简单。DP一下就好了。dp[i][0]:到当前位置,没有任何数改变,得到的长度。dp[i][1]:到当前位置,改变了一个数,得到的长度不过需要正向求一遍,然后反向求一遍。#include#include#include#include#includeusing namespac
2014-07-24 20:33:56 1223
原创 2014多校联合第一场
1001:Couple doubi暴力打表找规律可知,对于任意的p。(1^i+2^i+...+(p-1)^i)%p={ 非0 ,i%(p-1)==0 0 , i%(p-1)!=0}所以,结果就很显然了。#include #include#include#include#include#includeusing namespa
2014-07-23 09:51:23 1502
原创 hdu-4857-逃生-拓扑排序
拓扑排序。反向建边。为了序号小的尽量在前面,我们每次都取出入度为0的最大的点。#include#include#include#include#include#include#include#includeusing namespace std;struct list{ int u,v,w; int next;}edge[110000];int
2014-07-22 09:44:35 2302
原创 project euler-34
145是个奇怪的数字,因为1!+ 4! + 5! = 1 + 24 + 120 = 145。请求出能表示成其每位数的阶乘的和的所有数的和。请注意:由于1! = 1和2! = 2不是和,故它们并不包括在内。---------------------------------------------------原来0的阶乘是1。。。。我弱智了。。。粗略的运算一下数据范围,发现不会超过
2014-07-09 13:51:55 1052
原创 Codeforces Round #254 (Div. 1)-A,B
A:选取两点一边就可以了,很明显可以想出来。。。但是一开始看错题了,sad、、、、#include#include#include#include#include#includeusing namespace std;#define eps 1e-6#define zero(x) ((fabs(x)<eps?0:x))#define maxn 550int val[ma
2014-07-07 10:26:19 1105 2
餐饮管理系统设计说明书
2014-12-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人