4.28的宣讲会圆满结束(就在写这段话之前不久),对于西邮Linux兴趣小组这一次纳新,身为局外人表示:还是有历史,还是会玩,还是厉害哈。

华丽的分割线里面是自己之前的攻关战略,最后补充了宣讲会上学长的解释,属于自己的攻关过程之外,但值得记录。

以下攻关内容叙述角度模拟一个人单独挑战时的思考,实则我是在各种指点下与学长共同完成的。。

因此,感谢帮我的学长,还有下方评论区的伙伴@奥尔德赛,对于技术,我们永远是朋友。

FREE OPEN SHARE

-------------------------------------------------------------------自己的攻关经历分割线(START)-----------------------------------------------------------------------

4月伊始,西邮Linux小组为五月纳新进入了前期宣传阶段,免试题一放出,引来各个热爱技术的同学热情挑战。 
免试题入门可从西邮Linux小组官网中戳入,或直接点西邮Linux小组2016免试题进入。

本想着从百度进入免试题入口,却意外发现2013年曾有外校学生写过13年的免试题攻略,对小组免试题考察风格有了初步的了解。详见西邮Linux小组2013免试题+继续之战

 

第一关

首页如图所示,看见START,就立刻戳了进去。 

进去后是一张背景图片,中间写着2006的年份(西邮Linux兴趣小组2006年建立),点击后变成2007,再点击变成2008……到2015年后点击会重新跳到2006。那线索说不定在这里,如果能点出今年——2016,或许会有所发现。 
打开源代码,在有关2015的源码下发现<input type="hidden">隐藏域,value值为2006,因此点击2015后会重新回到2006的界面,而2006的界面源码隐藏域value的值为2007…… 
看来要出现2016的字样,就需要传递2016的value值,在任意年份的页面中将源码中隐藏域value改成2016后提交看看:

<input type="hidden" name="year" value="2006"></input>

修改后点击年份,不出所料,成功过关!

P.S:点击START之前的页面源码中也有相同隐藏域且value=2006,点击START之后跳到2006的界面中,更加证明了第一关需要出现的2016和该<input>有关。 
而在START页面将value直接修改成2016后点击START会怎么样?结果直接到了第二关! 

 

第二关

一段名言、一副梵高作的《星空图》和背景的弹琴声是进入第二关首先注意到的三大线索。再没有其它什么显示的,那么应该还需要到源码里面看看。 

分析源码,发现名言、图片之外,背景音乐所用的<audio>标签多了一个,应该不会平白出现的,如图,没怎么接触过音频文件,不知道是.3gpp格式和.eop格式哪个是多余的。 

复制该链接,全部下载出来,发现.3gpp就是背景音乐可以直接播放,而.eop没有相关软件可以打开。 
百度 .eop格式 发现这需要拿键盘钢琴软件Everyone Piano打开,下载并打开之。 
果然,这个源码中没用到的.eop文件用Everyone Piano打开后在键盘中敲出了线索————一个网址: 
 
www.dreamchasinger.cn/movie/ !

 

第三关

跟着琴声来到第三关,一部还看不懂的微电影和一串01码,对于01码,[西邮Linux兴趣小组2013年免试题](http://www.cnblogs.com/ma6174/archive/2013/05/04/3058889.html)第一关不就是这个01码么?老套路试试。

 老套路无果,因为这串01和13年不同的是,中间有空格,莫非是摩尔斯电码?写一个小程序把0和1变成点和横杠再用在线翻译器翻译,发现第四关的入口链接——182.254.246.154。
 如果翻译成乱码的话,是好事,只需改一下编码格式就好。这关打过去时间长了,当时好像用的是base64解码的。

第四关

怪不得纳新群之前有人说K炸,我还水了一句王炸。原来是他早已经打到这一关了,好可怕。

乱提交了一些发现并无用,源码里也毫无破绽,目瞪口呆之际盯着K玩,发现了一个神奇的现象——除了第三张方片国王是褐色胡子的中年人外,剩余三个国王都是白胡子老头!难道有猫腻,下载第三个图片之。
下载出来后听说有一种叫“图种”的制作技术,可以将rar压缩文件和一张图片合并起来显示为一张图。那这张图或许就是用图种制作器做出来的——把这张图片名字3.png改为3.rar发现正是一个压缩文件~


如上图所示,压缩文件里面放着1.txt,拉出来名称改成1.exe后发现……是一个贪吃蛇游戏!过关再说。 
 
一闪一闪的速成贪吃蛇游戏终于熬到了第四关,果然出现了IMPORTANT MESSAGE:VHUUEFUDIXQHU 

WHAT??!返回王炸的网页,在输入框输下VHUUEFUDIXQHU后居然还是没反应,那你还IMPORTANT! 
好吧,肯定有出路的,不过我暂时就卡在了这里……

-------------------------------------------------------------------自己的攻关经历分割线(END)-----------------------------------------------------------------------

-------------------------------------------------------------------评论区(START)-----------------------------------------------------------------------------------

评论区伙伴说该输入FREEOPENSHARE,果然到了第5.1关,也是可以从网址直接跳的。

自己的第一反应还是看源码,发现这是用HTML5的Canvas画布编写,由于自己从HTML+CSS直接跳至PHP服务端开发,之前没怎么深入了解过JavaScript,有些吃力。

但好歹现在也学C,并且JS也是面向对象的脚本语言,根据变量名还是能读出一些寓意的,如图所注释:

然而这时离宣讲会开始只剩一小时了,来不及思考了,要开车。

-------------------------------------------------------------------评论区(END)-------------------------------------------------------------------------------------

-------------------------------------------------------------------看完宣讲会官方攻略后的补充(START)--------------------------------------------------------------

官方详解如下,和自己的这篇博客相比的话各有优点哦:

西邮Linux兴趣小组2016免试题详解(一)

西邮Linux兴趣小组2016免试题详解(二)

其中,第五大关解题源码如下:

#include <iostream>
#include <cstring>
#include <math.h>
#include <cstdio> using namespace std; const int N = ;
int dp[N][N][N][N];
int a[N][N];
int fa[][N*N] = {};
char ans[][];
char str[]; int main()
{
cin>>str;
int len = strlen(str); int row, col;
row = col = ;
int num = ;
//将方格数据转化为矩阵
for(int i=; i<len; i++)
{
if(str[i] >= '' && str[i] <= '')
{
num = num * + str[i] - '';
}
else if(i > && str[i-] >= '' && str[i-] <= '')
{
if(str[i] == ']')
{
a[row][col] = num;
num = ;
if(str[i+] != ']')
{
col++;
row = ;
}
}
else if(str[i] == ',')
{
a[row][col] = num;
row++;
num = ;
}
}
} int n = col;
//动态规划
for(int i=; i<=row; i++)
for(int j=; j<=col; j++)
for(int k=; k<=row; k++)
for(int l=; l<=col; l++)
{
int mx = ;
if(mx < dp[i-][j][k-][l])
{
mx = dp[i-][j][k-][l];
}
if(mx < dp[i-][j][k][l-])
{
mx = dp[i-][j][k][l-];
}
if(mx < dp[i][j-][k-][l])
{
mx = dp[i][j-][k-][l];
}
if(mx < dp[i][j-][k][l-])
{
mx = dp[i][j-][k][l-];
} if(i == k && j == l)
dp[i][j][k][l] = mx + a[i][j];
else
dp[i][j][k][l] = mx + a[i][j] + a[k][l];
} cout<<"the ans = "<<dp[row][col][row][col]<<endl; //逆推得到路径
int cnt = ;
int i=row, j=col, k=row, l=col;
while()
{
if(i == && j == && k == && l == )
break;
dp[i][j][k][l] -= a[i][j];
if(i != k || j != l)
dp[i][j][k][l] -= a[k][l]; if(dp[i][j][k][l] == dp[i-][j][k-][l])
{
ans[][cnt] = 'U';
ans[][cnt] = 'D';
cnt++;
i--;k--;
}
else if(dp[i][j][k][l] == dp[i-][j][k][l-])
{
ans[][cnt] = 'U';
ans[][cnt] = 'R';
cnt++;
i--;l--;
}
else if(dp[i][j][k][l] == dp[i][j-][k-][l])
{
ans[][cnt] = 'L';
ans[][cnt] = 'D';
cnt++;
j--;k--;
}
else
{
ans[][cnt] = 'L';
ans[][cnt] = 'R';
cnt++;
j--;l--;
}
} //输出路径
cout<<"load_one > ";
for(int i=; i<cnt; i++)
cout<<ans[][i]<<" > ";
cout<<"end"<<endl; cout<<"load_two > ";
for(int i=cnt-; i>=; i--)
cout<<ans[][i]<<" > ";
cout<<"end"<<endl; return ;
}

-------------------------------------------------------------------看完宣讲会官方攻略后的补充(END)-----------------------------------------------------------------

西邮Linux兴趣小组2016免试题的更多相关文章

  1. Linux 兴趣小组2016免试题 第四关揭秘

    Linux 兴趣小组2016免试题 点这里 首先贴出第四关链接Linux 兴趣小组2016免试题 第四关 第四关: 进入网址我们看到的是4张扑克牌K,这是什么意思? 要我斗地主?好了,还是乖乖的先查看 ...

  2. 2016西邮Linux兴趣小组大事记

    2016年还有半个小时就结束了,前面把自己9月做的规划拿出来完善了下,觉得真的是不容易的一年,所有的事情只有自己经历过才会有不一样的感受,世上无难事,只怕有心人. 这是我九月份制定的计划: 下面是20 ...

  3. 西邮Linux兴趣小组2014级免试挑战题

    原文链接:西邮Linux兴趣小组2014级免试挑战题 又到了小组纳新的季节^_^,时间过的真快! 想起去年这会儿自己做免试题的时候根本找不着北@_@  有幸今年能够在这里和大家分享免试挑战题,也正如我 ...

  4. 西邮Linux兴趣小组第一次技术分享会

    2016年10月30日晚,西邮Linux兴趣小组技术分享会在西安邮电大学长安校区东区逸夫教学楼FF305室成功举办.200多名来自全校不同专业的15,16级同学参加了此次分享会. 分享会于20:00正 ...

  5. 优客源创会 西安站 西邮Linux兴趣小组

    2016年5月19日晚7:00,优客源创会西安站在西安邮电大学长安校区东区教学楼FF305如期举行,西安邮电大学计算机学院教授.西邮Linux兴趣小组指导老师陈莉君.王小银老师和来自开源中国的周凯先生 ...

  6. 西邮linux兴趣小组2014纳新免试题(五)

    [第五关] 题目 http://final5.sinaapp.com/ 关注西邮Linux微信平台,得到一个名为a的文件 分析 分析文件a 需要反汇编,拿IDA上,打开后发现key_function及 ...

  7. 西邮Linux兴趣小组纳新笔试试题

    下面是西邮Linux小组今年纳新的笔试试题 1. 下面这个程序的输出结果是什么? int main() { int a = (1, 2); printf(“a = %d\n”, a); return ...

  8. 西邮linux兴趣小组2014纳新免试题(一)

    [第一关] 题目 0101001001100001011100100010000100011010000001110000000011001111100100000111001100000000000 ...

  9. 西邮linux兴趣小组2014纳新免试题(四)

    [第四关] 题目 http://findakey.sinaapp.com/ Example: String1:FFFF8 5080D D0807 9CBFC E4A04 24BC6 6C840 49B ...

随机推荐

  1. HTML5新特性之WebRTC

    1.概述 WebRTC是“网络实时通信”(Web Real Time Communication)的缩写,它主要用来让浏览器实时获取和交换视频.音频和数据. WebRTC共分三个API. MediaS ...

  2. 本人独立博客:http://www.zjmainstay.cn

    为了方便各种管理,本人创建了独立博客,博客地址:http://www.zjmainstay.cn 欢迎新老朋友围观.

  3. 【学】SoapExtension 学习

    http://msdn.microsoft.com/zh-cn/library/System.Web.Services.Protocols.SoapExtension_methods(v=vs.80) ...

  4. POJ 2078 Matrix

    Matrix Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 3239   Accepted: 1680 Descriptio ...

  5. C#参考:Linq 概述

    Linq (Language Integrated Query,语言集成查询),是微软公司提供的一项新技术,它能够将查询功能引入到.NET 3.5 所支持的编程语言中,例如C#,Visual Basi ...

  6. 【Machine Learning】机器学习の特征

    绘制了一张导图,有不对的地方欢迎指正: 下载地址 机器学习中,特征是很关键的.其中包括,特征的提取和特征的选择.他们是降维的两种方法,但又有所不同: 特征抽取(Feature Extraction): ...

  7. C# 装箱与拆箱

    知识点  值类型.    值类型是在栈中分配内存,在声明时初始化才能使用,不能为null.    值类型超出作用范围系统自动释放内存.    主要由两类组成:结构,枚举(enum),结构分为以下几类: ...

  8. bootstrap插件学习-bootstrap.carousel.js

    先看bootstrap.carousel.js的结构 var Carousel = function (element, options){} //构造器 Carousel.prototype = { ...

  9. Tips2:无需Gizmo函数 和 附加Render 实现空物体(GameObject)的可视化

    Unity在场景创建过程中,可能会用到很多空物体,如生成器(Spawn)什么的,一般空物体默认是看不到的,其实,空物体可以通过设置为可见的,这样在用到空物体时就能更加方便的编辑和控制了. 1.可以是这 ...

  10. Parallax.js – 自适应智能设备方向的视差效果插件

    Parallax.js 是一个简单的,轻量级的的视差引擎,能够对智能设备的方向作出反应.在没有没有陀螺仪或运动检测硬件可用的时候,使用光标的位置来代替.有很多的行为,你就可以设置为任何给定的视差实例. ...