[2017BUAA软工助教]个人项目小结
2017BUAA个人项目小结
一、作业链接
http://www.cnblogs.com/jiel/p/7545780.html
二、评分细则
0.注意事项
- 按时间完成并提交——正常评分
- 晚交一周以内——0分
- 晚交一周以上或不交——倒扣本次作业分数
- 抄袭——倒扣本次作业分数
1.博客细则
博客共15分,分布如下:
- 在文章开头给出Github项目地址。(1')
- 在开始实现程序之前,在下述PSP表格记录下你估计将在程序的各个模块的开发上耗费的时间。(0.5')
- 解题思路描述。即刚开始拿到题目后,如何思考,如何找资料的过程。(3')
- 设计实现过程。设计包括代码如何组织,比如会有几个类,几个函数,他们之间关系如何,关键函数是否需要画出流程图?单元测试是怎么设计的?(4')
- 记录在改进程序性能上所花费的时间,描述你改进的思路,并展示一张性能分析图(由VS 2017的性能分析工具自动生成),并展示你程序中消耗最大的函数。(3')
- 代码说明。展示出项目关键代码,并解释思路与注释说明。(3')
- 在你实现完程序之后,在下述PSP表格记录下你在程序的各个模块上实际花费的时间。(0.5')
2.程序细则
程序共35分,分布如下:
源代码管理评分,该评分主要通过源代码管理中的commit注释信息,增量修改的内容,是否有运行说明等给分。(2')
正确性评分,正确性测试中输入范围限制在 1-1000,要求程序在 60 s 内给出结果,超时则认定运行结果无效。(20')
错误处理,对-c参数进行一系列错误参数进行测试,根据程序是否能正常运行给分。(3')
性能评分,性能测试中输入范围限制在 10000-1000000,没有时间的最小要求限制。(10')
- 当程序的正确性评分等于20分时才可以参与性能评分环节,所以请各位同学务必保证自己程序的正确性。
- 性能评分将采取档级评分制度,助教将根据同学们的程序跑同一数据耗费的时间长度将程序分为若干档,每一档的同学得到的分数为 10/档级数。
附加题。(5')
三、博客分数列表
注:点击表头元素可进行排序
| INDEX | 作业地址 | Github | PSP前 | 思路 | 设计 | 优化 | 关键代码 | PSP后 | 总分 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 15061183 | 1 | 0.5 | 3 | 4 | 3 | 3 | 0.5 | 15 |
| 2 | 15061144 | 1 | 0.5 | 3 | 4 | 2.5 | 2.5 | 0.5 | 14 |
| 3 | 15061104 | 1 | 0.5 | 3 | 3 | 1 | 2.5 | 0.5 | 11.5 |
| 4 | 15061132 | 1 | 0.5 | 3 | 2.5 | 3 | 2.5 | 0.5 | 13 |
| 5 | 15231196 | 1 | 0.5 | 2 | 3 | 3 | 3 | 0.5 | 13 |
| 6 | 15061111 | 1 | 0.5 | 2.5 | 3 | 2 | 2.5 | 0.5 | 12 |
| 7 | 15231058 | 1 | 0.5 | 3 | 3 | 2 | 2.5 | 0.5 | 12.5 |
| 8 | 15271106 | 1 | 0.5 | 3 | 3 | 3 | 2.5 | 0.5 | 13.5 |
| 9 | 15061199 | 1 | 0.5 | 3 | 4 | 3 | 3 | 0.5 | 15 |
| 10 | 15061188 | 1 | 0.5 | 2.5 | 3 | 3 | 2.5 | 0.5 | 13 |
| 11 | 15061074 | 1 | 0.5 | 2.5 | 3 | 3 | 2.5 | 0.5 | 13 |
| 12 | 15061119 | 1 | 0.5 | 2.5 | 3 | 2 | 2.5 | 0.5 | 12 |
| 13 | 15061080 | 1 | 0.5 | 2.5 | 2.5 | 2 | 3 | 0.5 | 12 |
| 14 | 15061180 | 1 | 0.5 | 2.5 | 3.5 | 2.5 | 2.5 | 0.5 | 13 |
| 15 | 15061075 | 1 | 0.5 | 3 | 2.5 | 2.5 | 2 | 0.5 | 12 |
| 16 | 15061187 | 1 | 0.5 | 2.5 | 3 | 3 | 3 | 0.5 | 13.5 |
| 17 | 15061101 | 1 | 0.5 | 2 | 2.5 | 1 | 2.5 | 0.5 | 10 |
| 18 | 15061129 | 1 | 0.5 | 3 | 3.5 | 3 | 3 | 0.5 | 14.5 |
| 19 | 15061186 | 1 | 0.5 | 2 | 3 | 2.5 | 2.5 | 0.5 | 12 |
| 20 | 15061189 | 1 | 0.5 | 2.5 | 4 | 2.5 | 3 | 0.5 | 14 |
| 21 | 15231177 | 1 | 0.5 | 3 | 2.5 | 2.5 | 2.5 | 0.5 | 12.5 |
| 22 | 15061067 | 1 | 0.5 | 2.5 | 2.5 | 3 | 0 | 0.5 | 10 |
| 23 | 15061151 | 1 | 0.5 | 2 | 3 | 2.5 | 3 | 0.5 | 12.5 |
| 24 | 14011100 | 1 | 0.5 | 3 | 3 | 3 | 3 | 0.5 | 14 |
| 25 | 15061175 | 1 | 0.5 | 2 | 3 | 2 | 3 | 0.5 | 12 |
| 26 | 14061213 | 1 | 0.5 | 2.5 | 2.5 | 1 | 3 | 0.5 | 11 |
| 27 | 15061069 | 1 | 0.5 | 2.5 | 3 | 2 | 3 | 0.5 | 12.5 |
| 28 | 15061085 | 1 | 0.5 | 1 | 0 | 0 | 0 | 0.5 | 3 |
| 29 | 15061122 | 1 | 0.5 | 3 | 3.5 | 3 | 3 | 0.5 | 14.5 |
| 30 | 15061077 | 1 | 0.5 | 2.5 | 2.5 | 0 | 2 | 0.5 | 9 |
四、自动测试得分列表
测试结果详见:http://www.cnblogs.com/ChildishChange/p/7609751.html
得分说明:
- 如果进行一次额外的修改,修改系数减0.1
- 每一项测试的前五项为正确性测试,每项2分满分
- 每一项测试的后两项为性能测试,每项2.5分满分
- “-c 50000”测试中,以1s划档
- “-c 1000000”测试中,以10s划档
- “-s 50000puzzle.txt”测试中,以10s划档
- “-是1000000puzzle.txt”测试中,以60s划第一档,300s划第二档
最终得分为:(“-c”正确性得分+“-c”性能得分)ד-c”修改系数+(“-s”正确性得分+“-s”性能得分)ד-s”修改系数
| INDEX | 作业地址 | 正确性得分 | 性能分1(1s分档 | 性能分2(10s分档 | -c总分 | “-c”修改系数 | 正确性分 | 性能分1(10s | "性能分2(60s,300s" | -s总分 | “-s”修改系数 | 总分 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 14011100 | 10 | 2.5 | 2.5 | 15 | 1 | 10 | 2.5 | 2.5 | 15 | 1 | 30 |
| 2 | 14061213 | 10 | 1.25 | 0 | 11.25 | 1 | 10 | 1.25 | 0 | 11.25 | 1 | 22.5 |
| 3 | 15061067 | 10 | 2.5 | 1.25 | 13.75 | 1 | 10 | 2.5 | 2.5 | 15 | 1 | 28.75 |
| 4 | 15061069 | 0 | 0 | 0 | 0 | 1 | 10 | 1.25 | 0 | 11.25 | 1 | 11.25 |
| 5 | 15061074 | 4 | 0 | 0 | 4 | 0.9 | 10 | 1.25 | 1 | 12.25 | 1 | 15.85 |
| 6 | 15061075 | 10 | 2.5 | 1.25 | 13.75 | 1 | 10 | 2.5 | 1.25 | 13.75 | 1 | 27.5 |
| 7 | 15061077 | 10 | 0 | 0 | 10 | 1 | 10 | 0 | 0 | 10 | 0.8 | 18 |
| 8 | 15061080 | 10 | 0 | 0 | 10 | 1 | 10 | 1.25 | 1 | 12.25 | 1 | 22.25 |
| 9 | 15061085 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 |
| 10 | 15061101 | 4 | 0 | 0 | 4 | 1 | 2 | 0 | 0 | 2 | 1 | 6 |
| 11 | 15061104 | 10 | 1.25 | 0 | 11.25 | 1 | 10 | 0 | 0 | 10 | 1 | 21.25 |
| 12 | 15061111 | 10 | 2.5 | 1.25 | 13.75 | 1 | 10 | 1.25 | 1.25 | 12.5 | 1 | 26.25 |
| 13 | 15061119 | 10 | 2.5 | 2.5 | 15 | 1 | 10 | 2.5 | 1.25 | 13.75 | 1 | 28.75 |
| 14 | 15061122 | 10 | 2.5 | 2.5 | 15 | 1 | 10 | 2.5 | 1.25 | 13.75 | 1 | 28.75 |
| 15 | 15061129 | 10 | 2.5 | 2.5 | 15 | 1 | 10 | 2.5 | 1.25 | 13.75 | 0.9 | 27.375 |
| 16 | 15061132 | 10 | 2.5 | 0 | 12.5 | 1 | 10 | 2.5 | 1.25 | 13.75 | 1 | 26.25 |
| 17 | 15061144 | 10 | 2.5 | 2.5 | 15 | 1 | 10 | 2.5 | 2.5 | 15 | 1 | 30 |
| 18 | 15061151 | 10 | 2.5 | 1.25 | 13.75 | 1 | 10 | 1.25 | 0 | 11.25 | 1 | 25 |
| 19 | 15061175 | 10 | 2.5 | 2.5 | 15 | 1 | 10 | 2.5 | 2.5 | 15 | 1 | 30 |
| 20 | 15061180 | 10 | 2.5 | 2.5 | 15 | 1 | 10 | 2.5 | 2.5 | 15 | 1 | 30 |
| 21 | 15061183 | 10 | 2.5 | 2.5 | 15 | 1 | 10 | 2.5 | 2.5 | 15 | 1 | 30 |
| 22 | 15061186 | 10 | 2.5 | 2.5 | 15 | 1 | 10 | 2.5 | 1.25 | 13.75 | 1 | 28.75 |
| 23 | 15061187 | 10 | 2.5 | 2.5 | 15 | 1 | 10 | 2.5 | 1.25 | 13.75 | 1 | 28.75 |
| 24 | 15061188 | 10 | 0 | 0 | 10 | 0.9 | 10 | 1.25 | 1 | 12.25 | 1 | 21.25 |
| 25 | 15061189 | 10 | 2.5 | 2.5 | 15 | 0.9 | 10 | 1.25 | 0 | 11.25 | 0.9 | 23.625 |
| 26 | 15061199 | 10 | 2.5 | 2.5 | 15 | 1 | 10 | 2.5 | 1.25 | 13.75 | 1 | 28.75 |
| 27 | 15231058 | 10 | 2.5 | 2.5 | 15 | 1 | 10 | 2.5 | 2.5 | 15 | 1 | 30 |
| 28 | 15231177 | 10 | 2.5 | 1.25 | 13.75 | 1 | 10 | 1.25 | 0 | 11.25 | 0.9 | 23.875 |
| 29 | 15231196 | 10 | 2.5 | 2.5 | 15 | 1 | 10 | 2.5 | 1.25 | 13.75 | 1 | 28.75 |
| 30 | 15271106 | 10 | 2.5 | 2.5 | 15 | 1 | 10 | 2.5 | 1.25 | 13.75 | 1 | 28.75 |
五、总分
| INDEX | 作业地址 | 博客分数 | Github | 自动测试得分 | 错误处理 | 附加题 | 总分(不计附加 | 总分 |
|---|---|---|---|---|---|---|---|---|
| 1 | 14011100 | 14 | 2 | 30 | 3 | 5 | 49 | 54 |
| 2 | 14061213 | 11 | 2 | 22.5 | 2.5 | 5 | 38 | 43 |
| 3 | 15061067 | 10 | 2 | 28.75 | 2 | 0 | 42.75 | 42.75 |
| 4 | 15061069 | 12.5 | 0 | 11.25 | 3 | 0 | 26.75 | 26.75 |
| 5 | 15061074 | 13 | 2 | 15.85 | 3 | 5 | 33.85 | 38.85 |
| 6 | 15061075 | 12 | 0 | 27.5 | 3 | 0 | 42.5 | 42.5 |
| 7 | 15061077 | 9 | 1 | 18 | 2.5 | 0 | 30.5 | 30.5 |
| 8 | 15061080 | 12 | 0 | 22.25 | 3 | 0 | 37.25 | 37.25 |
| 9 | 15061085 | 3 | 0 | 0 | 2 | 0 | 5 | 5 |
| 10 | 15061101 | 10 | 0 | 6 | 3 | 0 | 19 | 19 |
| 11 | 15061104 | 11.5 | 1 | 21.25 | 0.5 | 0 | 34.25 | 34.25 |
| 12 | 15061111 | 12 | 2 | 26.25 | 3 | 0 | 43.25 | 43.25 |
| 13 | 15061119 | 12 | 2 | 28.75 | 3 | 0 | 45.75 | 45.75 |
| 14 | 15061122 | 14.5 | 2 | 28.75 | 3 | 0 | 48.25 | 48.25 |
| 15 | 15061129 | 14.5 | 2 | 27.375 | 2.5 | 0 | 46.375 | 46.375 |
| 16 | 15061132 | 13 | 0 | 26.25 | 3 | 0 | 42.25 | 42.25 |
| 17 | 15061144 | 14 | 2 | 30 | 3 | 0 | 49 | 49 |
| 18 | 15061151 | 12.5 | 0 | 25 | 3 | 0 | 40.5 | 40.5 |
| 19 | 15061175 | 12 | 2 | 30 | 1.5 | 0 | 45.5 | 45.5 |
| 20 | 15061180 | 13 | 2 | 30 | 3 | 0 | 48 | 48 |
| 21 | 15061183 | 15 | 2 | 30 | 3 | 5 | 50 | 55 |
| 22 | 15061186 | 12 | 1 | 28.75 | 3 | 0 | 44.75 | 44.75 |
| 23 | 15061187 | 13.5 | 1 | 28.75 | 3 | 5 | 46.25 | 51.25 |
| 24 | 15061188 | 13 | 2 | 21.25 | 3 | 0 | 39.25 | 39.25 |
| 25 | 15061189 | 14 | 1 | 23.625 | 2 | 0 | 40.625 | 40.625 |
| 26 | 15061199 | 15 | 2 | 28.75 | 0 | 5 | 45.75 | 50.75 |
| 27 | 15231058 | 12.5 | 0 | 30 | 3 | 0 | 45.5 | 45.5 |
| 28 | 15231177 | 12.5 | 2 | 23.875 | 2.5 | 0 | 40.875 | 40.875 |
| 29 | 15231196 | 13 | 2 | 28.75 | 2.5 | 0 | 46.25 | 46.25 |
| 30 | 15271106 | 13.5 | 2 | 28.75 | 3 | 0 | 47.25 | 47.25 |
六、一些问题
1.晚交、错交
本次作业有两位同学在截止日期后才交上作业,原因分别是:
- xxx同学:完成了程序与博客,忘记在班级博客中提交。
- xx同学:完成了程序与博客,却提交至个人作业week1中。
希望大家以后能注意:D
2.正确性测试
大家出乎意料的,程序效率都很高,但是第一轮测试之后也暴露了不少问题:
2.1审题出现了问题:
- 左上角固定数字出错
2.2程序鲁棒性问题:
- 若题目文件最后一个题目的最后一个数字后有两个回车,则会多输出一个自己生成的数独;若只有一个回车,则正常
- 若题目文件最后一个题目的最后一个数字后只有有一个个回车,则不会求解最后一题;若有两个个回车,则正常
- 若题目文件最后一个题目的最后一个数字后有两个回车,则程序崩溃,若只有一个回车,则正常
2.3出题者的问题:
- 作业在要求时没有明确说明生成文件时是追加在原文件后还是覆盖原文件
这主要是我的问题,但希望下次对题目有异议时,请联系助教或老师:D
2.4程序算法的问题:
- 有几个同学在测试大数时生成了重复的数独
正如某位同学在更正了程序之后在博客中说的一样:
这就是多写一个测试程序的事
因此,我建议不论你的算法是否能从原理上避免重复数独,最好进行一下相关测试。这样你也安心,我也省事,不是很好吗:D
然后我猜有人问:“助教,我不知道怎么判重,两个两个比较太麻烦了”
这里根据同学们的博客整理三种判重的方法:
- 使用hashset暴力判重
- 使用字典树进行判重
- 将一个数独打成长度为81的字符串,然后每17位一组变成6个long long,排序之后进行判重
不管你是否还用得到,学习一下别人的思路,也是极好的:D
3.性能测试
这次性能测试使用的题目是我自己生成的,然后从生成的终局中随机挖掉一半的空。
也就是说这个测试样例实际上是对一些朴素的算法,比如回溯法,是相当友好的。
后来某位同学给了我一份含有49121个只有17个已确定的数字的数独,于是我又测了一遍,结果是这样的,大家随意感受一下:

我没有否认大家的算法和优化,毕竟这次测试并没有算分,而且大多数同学都在自动测试的部分得到了较高的分数。这次测试主要体现了大家的程序是否能在极端情况下正常地工作。因此在这里对通过了这个测试的同学提出表扬:D,其他同学也不要气馁,毕竟你们的程序也很好地完成了基础的要求:D
4.错误处理
错误处理测试了这六个参数,每个0.5分:
- "-c"
- "-c -100"
- "(空参数"
- "-c 1000000000000000"
- "-abc"
- "-c asd"
虽然大多数同学都拿到了错误处理的分数,但是有那么些问题:
- 对错误的分类处理出了问题,导致不同的错误得到了相同的反馈
- 反馈结果让人莫名其妙
- 没有反馈
- 直接崩溃
错误处理做得越好,用户体验就越好。希望大家能重视。
这里表扬一下:
15061074
15061186
14061213
这三个同学的错误处理,[捂脸]但是因为他们博客里没有错误处理的部分,所以我这里推荐一下福大郑浩辉同学的博客作为他山之石:
这是他的错误提示:
-【开始校验参数】【校验参数中】请输入生成数量
-【开始校验参数】【校验参数中】生成数量只能是数字
-【未知指令】试试 -help ?
-【请输入指令及相关参数】试试 -help ?
-【开始校验参数】【校验参数中】请勿输入多余参数
同时郑同学的博客排版美观,思路清晰,建议大家去学习一下。链接:http://www.cnblogs.com/andwho/p/7500515.html
5.Github提交规范
这次提交的作业里,有这种画风的:

还有这种画风的:

本次作业要求的是“代码有进展即签入”稍有出入,也就是说,签入记录大体上应该是这样的:

以下摘自:[福大软工] Z班 第2次成绩排行榜
这是陈翔同学的博客:他的项目不仅有完整的运行说明,可读的commit信息注释,恰当的commit频率,还配置了集成测试。这个简直是一份完美的Github项目范例,推荐给各位同学。链接:http://www.cnblogs.com/qq952693358/p/7487056.html
这里推荐大家学习福州大学的陈翔同学整理的Github提交规范心得:D
https://github.com/Wasdns/github-example-repo
七、一些总结
1.算法
同学们使用的算法大概有这几种:
- 随机+回溯
- 行列变换
- 数字重新映射
- DLX
在中小数据上,随机产生与回溯的方法较为简单同学们优化做得太好了导致中小数据上看不出差别[捂脸]。部分同学使用了生成等价数独的方法,这个方法的好处是从根本上避免了重复数独的出现(尽管一些同学出现了重复的问题);同时也有同学考虑到求解和生成终局实际上可以使用同一个算法来解,这是也一个很好的思路。
2.优化
同学们进行的优化大概有这么几种:
- DEBUG -> RELEASE
- 优化IO
- 优化算法
第一个改进是最容易的,在生成时使用RELEASE模式而不是DEBUG模式。
简单说一下这两个模式的区别:
你们编译课大概在下半个学期会学到“编译优化”的部分(包括循环优化,控制优化,活跃变量分析等)。在DEBUG模式下编译器是不会对程序做优化的,但是RELEASE模式下会,但是编译速度会受到影响。
感兴趣的同学可以参看:DEBUG和RELEASE模式的区别
第二个则是大多数同学都会进行的优化,比较简单,而且修改幅度也不大,大致有以下的方法:
- 1.一次输出一个数->一次输出一个终局->把终局存起来一次性输出
- 2.使用string->使用字符数组
- 3.使用 ofstream 与 << ->使用fwrite,fprint
第一种方法减少了IO次数,第二、三种方法使用了底层的数据类型或方法,减少了开销,因此会使性能大大上升
第三个则是算法的优化,这里不再赘述
3.推荐博客
15061183-[2017BUAA软工]个人项目-数独
15061189-个人项目-数独
15061129-[2017BUAA软工]第一次个人项目 数独的生成与求解
15061122-个人作业 数独
[2017BUAA软工助教]个人项目小结的更多相关文章
- [2017BUAA软工助教]结对项目小结
2017BUAA结对项目小结 一.作业链接 http://www.cnblogs.com/jiel/p/7604111.html 二.评分细则 1.注意事项 按时间完成并提交--正常评分 晚交一周以内 ...
- [2017BUAA软工助教]个人项目准备工作
BUAA软工个人项目准备工作 零.注册Github个人账号(你不会没有吧..) 这是Git的使用教程: http://www.cnblogs.com/schaepher/p/5561193.html ...
- [2017BUAA软工助教]个人项目测试结果
个人项目测试结果 标签(空格分隔): 未分类 9.29第一次测试结果 注:点击表头内相应项目可针对该项目进行排序 -c测试结果 INDEX NumberID -c 1 -c 5 -c 100 -c 5 ...
- [2017BUAA软工助教]案例分析小结
BUAA案例分析小结 一.作业要求 http://www.cnblogs.com/jiel/p/7631784.html 二.统计数据 总人数 神策数据 博客园博客 必应词典 30 1 12 17 三 ...
- [2019BUAA软工助教]结对编程 - 小结
[2019BUAA软工助教]结对编程 - 小结 一.评分规则 博客 博客共五十分 序号 要求 分值 1 在文章开头给出Github项目地址 1 2 在开始实现程序之前,在下述PSP表格记录下你估计将在 ...
- [2019BUAA软工助教]第一次阅读 - 小结
[2019BUAA软工助教]第一次阅读 - 小结 一.评分规则 总分 16 分,附加 2 分,共 18 分 markdown格式统一且正确 - 2分 不统一:扣 1 分 不正确:扣 1 分(例如使用代 ...
- [2018福大至诚软工助教]alpha阶段小结
[2018福大至诚软工助教]alpha阶段小结 一.得分 1. 冲刺(7次 Scrum) 150分 1)第1篇(25分) 项目 评分标准 各个成员在 Alpha 阶段认领的任务 (6分)视详细程度给分 ...
- [2018福大至诚软工助教]UML设计小结
[2018福大至诚软工助教]UML设计小结 一.得分 总分(50分) 团队信息 (4分) 队名 (1分) 团队成员的学号与姓名(需要标注队长)(1分) 本次作业的博客链接(1分) 三者完全,4分 团队 ...
- [2017BUAA软工助教]收集个人信息
如题 我们要收集三个东西 1.学号 2.Github地址 ① 3.博客园博客地址 ② 请各位同学自行创建,并按照如下的格式评论在这篇博客下 "14061195+https://github. ...
随机推荐
- 安装Window 10系统------计算机经验
为什么这次安装window10系统呢?不是和window7系统的安装方法一样么?如果你是这样的想的话,是不完全对的,因为window10系统的安装有些繁杂,需要耐心.下面我就准备了官方原版的windo ...
- 登录Windows界面前执行自定义脚本
通常情况下,进入Windows界面之前都有一个登录过程,如何在登录前让系统执行脚本呢?下面介绍一种方法. 1.打开组策略,在Run(运行)中输入GREDIT.MSC,点击确认. 2.依次点击Compu ...
- jQuery -- 光阴似箭(五):AJAX 方法
jQuery -- 知识点回顾篇(五):AJAX 方法 1. $.ajax 方法:用于执行 AJAX(异步 HTTP)请求. <!DOCTYPE html> <html> &l ...
- Quartz简答介绍
引言 Quartz是开源任务调度框架中的翘楚,提供了强大的任务调度机制.Quartz允许开发人员灵活地定义触发器的调度时间表,并可对触发器和任务进行关联映射.此外,Quartz提供了调度运行环境的持久 ...
- (转)Spring Boot (十五): Spring Boot + Jpa + Thymeleaf 增删改查示例
http://www.ityouknow.com/springboot/2017/09/23/spring-boot-jpa-thymeleaf-curd.html 这篇文章介绍如何使用 Jpa 和 ...
- 【弱省胡策】Round #5 Count
[弱省胡策]Round #5 Count 太神仙了. \(DP\)做法 设\(f_{n,m,d,k}\)表示\(n*m\)的矩阵,填入第\(k\)个颜色,并且第\(k\)个颜色最少的一列上有\(d\) ...
- java读取properties中文乱码
1 确认properties文件的编码是utf-8 2 采用流的方式读取文件,设置编码为utf-8 public class ErrorCodeConfig { static Properties p ...
- SDOI2014 R1做题笔记
SDOI2014 R1做题笔记 经过很久很久的时间,shzr又做完了SDOI2014一轮的题目. 但是我不想写做题笔记(
- 发现一款比echarts更牛B,效果更炫的图表组件 d3.js
每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code d3.js ,能制作更加复杂的图表 https://github.com/d3/d3 ...
- php 依赖注入的实现
当A类需要依赖于B类,也就是说需要在A类中实例化B类的对象来使用时候,如果B类中的功能发生改变,也会导致A类中使用B类的地方也要跟着修改,导致A类与B类高耦合.这个时候解决方式是,A类应该去依赖B类的 ...