MENU

笔记:使用qsort进行多字段排序

有一段时间没写东西了。

OJ上,评论里都说这是一个水题。事实上,确实也不难。这是NOIP2009普及组的第二题,普及组,第二题,你觉得呢。题目描述摘录如下:

世博会志愿者的选拔工作正在A市如火如荼的进行。为了选拔最合适的人才,A市区对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第$m\times 150%$(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。
现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。

【输入】 输入文件名为score.in
第一行,两个整数nm($5\leq n\leq 5000$,$3\leq m\leq n$),中间用一个空格隔开,其中n表示报名参加笔试的选手总数,m表示计划录取的志愿者人数。输入数据保证$m\times 150%$向下取整后小于等于n。第二行到第$n+1$行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k($1000\leq k\leq 9999$)和该选手的笔试成绩s($1\leq s\leq 100$)。数据保证选手的报名号各不相同。
【输出】 输出文件 score.out
第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。
从第二行开始,每行包含两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。

Read More

新EPDB下载及使用说明

去年我写了一个名为EPDB的MySQL数据库类,当时也附带了这么一篇文章。这之后也做出了一两次调整,总的来说还是比较好使的,自己常用。这两天又把它翻了出来,改造了一下。主要调整:改用MySQLi扩展;部分逻辑修改。

类及示例代码下载

至于做出了哪些调整,不是本文的主要内容。但是注意一点:修改后使用上和原来还是有一些差异的,主要体现在程序完全信任程序员的代码,不会自己检查潜在的危险操作。这里对使用方法做一个说明。

Read More

差点当叛徒——Markdown还是不错的

对于标题的解释:
昨天在某群里我说道:“有点想换Typecho了。”

的确,2010年是我刚开始使用独立博客的时间。那时,我第一眼看中的就是emlog。虽然之后的时间里面写博这件事情并没有一直坚持下来,但使用emlog的习惯倒是一直坚持下来了。至于为什么昨天会说到想换成Typecho,那是因为我主要是看中了Typecho可以使用Markdown写作的这个优点。

在网络上我找到了这样的一段描述:

Markdown的语法简洁明了、学习容易,而且功能比纯文本更强,因此有很多人用它写博客。世界上最流行的博客平台WordPress和大型CMS如joomla、drupal都能很好的支持Markdown。

显然描述是十分正确的。我想,使用Markdown,不仅是写作时,日后的修改,也能够方便很多。

Read More

使用WinForm实现无边框窗口

虽说新项目还没有提上议程,甚至第一次策划会议也一直没有召开,但是准备工作多多少少是有一点点了。项目难度最大的,就是开发桌面应用程序。这几乎是一个大家都没有多少了解的问题,所以下手比较困难。2013年初我们从TFDi Design处采购了smartCARS,同年7月Hans使用Visual Basic .Net开发了iTracker 2.0,这大概是我们选用.Net的原因吧。

2013年底(真正的年底),我开始使用Visual Studio 2013了。与Hans,不一样的是,我使用的是C#。我长期使用各种类C的程序语言,所以C#很快就能上手了。期间写过一些测试性的东西,写过一个即时通讯(上一篇日志提到过,服务端使用PHP with Swoole Extension)。VS的控件样式实话实说是很难看的;较新的VS,提供一些Flat的属性,磕磕巴巴地出来一些效果。如下图:

当然,我要寻求更好的解决方案。我找到了一篇文章Designing GitHub for Windows。自己向来非常认同GitHub的理念,便也想使用WPF尝试尝试。尝试的过程很艰辛,毕竟接触微软家的VS才一个月,Blend更是从来没有上过手。折腾了一个晚上,最后觉得太困难,还是暂时放弃了。我将目光转向WinForm。WinForm开发难度小得多,我刚开始使用VS便能顺利写出诸如“计算器”之类的小玩意儿;此时我甚至已有使用WinForm实现无边框窗口的想法。尝试了一下,确实可以。接下来我讲一讲我的做法。

Read More