MENU

c/cpp

没事找事:WTFPL解释器的C++实现

写在前面:本文中所提到的源代码及由其编译得到的二进制可执行文件(Windows)可以在这里下载到。本代码已在GNU/Linux GCC、MinGW GCC及Microsoft Visual C++环境下编译通过且正常运行测试样例。压缩包中的二进制文件是使用Microsoft Visual Studio 2013生成的。

简介:这是一个使用C++实现的What The Fuck Programming Language解析器。本来打算写的是GrassMudHorse Programming Language的解析器,最终由于编码问题放弃了。如果读者您能够完美解决这个问题并保持额外开销在一个很低的水平,请与我取得联系,不胜感激。

Read More

无穷的序列与位域

题目名称:无穷的序列
内存限制:128 MB
时间限制:1 s
【题目描述】 有一个无穷序列如下:
110100100010000100000…
请你找出这个无穷序列中指定位置上的数字
【输入格式】 第一行一个正整数N,表示询问次数;
接下来的N行每行一个正整数$A_i$,$A_i$表示在序列中的位置。
【输出格式】 N行,每行为0或1,表示序列第$A_i$位上的数字。
对于100%的数据有$N\leq 1500000$,$A_i\leq 10^{9}$

Read More

NDS开发:猜数字游戏

开发环境搭建完了,也尝试了几个示例程序,有没有感觉到 devkitPro 的 libnds 的强大?我们现在就来开发一个小游戏感受感受。

这是一个算不上游戏的游戏:在区间 [0,1000] 中随机生成一个数字,玩家来猜。游戏会对每次猜测的数字给出“过大”或“过小”的提示。这绝对是一个入门级别的小程序,稍稍熟悉 C/C++ 的朋友大概一两分钟就能写完吧。为了在 NDS 上运行这样一个小游戏,我们需要编写比 PC 机上稍多一点的代码。

怎么样?是不是应该先自己尝试尝试呢?这里给出一些小提示: example/nds 下的 input/keyboard/keyboard_stdinhello_worldGraphics/Printing/print_both_screens 目录中给出了我们需要用到的代码的相当充分的示例。是不是发现非常的简单呢?我这里也给出一份速成的参考代码,建议使用方式是直接对hello_world进行修改。

Read More

笔记:使用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