华为code craft软件精英赛笔记-如何在Linux下利用提供的shell文件生成tar.gz赛题提交压缩包

原创 2017年03月07日 10:50:59

以下内容摘抄自readme.txt:

看到中文readme是一件非常亲切的事情!仔细看完此文档即可完成第一个用例:

1、整体指引:
  1)使用一键式脚本编译后打包;
  2)如果编译成功会在bin路径下生成可执行二进制文件"cdn.jar";
  3)使用如下格式调用并调试程序,例如:
	Linux环境:		root> sh startup.sh /xxx/topo.txt /xxx/result.txt
	(说明:topo.txt是输入文件,result.txt是输出文件)
  4)将代码与makelist.txt打包压缩到同一个压缩包下,压缩包格式为tar.gz,即可上传答案。
  cdn.tar.gz
    └── code/
    └── makelist.txt

2、SDK目录结构:
├─bin/				 										二进制文件路径
│		└── cdn.jar								可执行的jar文件,由一键式打包脚本生成
│		└── startup.sh										Linux环境一键式执行脚本
├─code/														源代码路径
│	└── cdn/
│		├── bin/												编译后创建的class文件
│		└── src/												java源代码路径
│				└─com/
│					├─filetool/
│					│	├─main/
│					│	│		Main.java						main函数源文件,不可修改
│					│	└─util/
│					│			FileUtil.java				提供读写文件等功能的源文件,不可修改
│					│			LogUtil.java				提供日志记录功能的源文件,不可修改
│					└─cacheserverdeploy/
│						└─deploy/
│								Deploy.java					你要写代码的源文件,需要修改
├── build.sh												Linux环境编译打包脚本,不可修改
├── makelist.txt										需要编译的java文件,供脚本调用
├── cdn_tar.sh								答案提交打包脚本,生成cdn.tar.gz
└── readme.txt											你正在看的文件 -_-" 这不用介绍了吧
	注意:
	1)如果增加了源文件需要修改makelist.txt文件;
	2)如果运行时提示
startup.sh文件第14行错误,请按照你本地系统情况修改此行,此脚本只是用来方便调用,修改后不会影响在判题平台的判题。

3、SDK代码说明:
  我们已经提供了保姆式的服务,你只需要做:
  1)完成Deploy.java文件中的XXX方法;
  2)返回结果并输出;
  3)如果计算结果为没有路径,则直接输出NA。
  SDK已经实现了读取文件、按要求格式写文件以及打印开始和结束时间的功能。为了便于调试,SDK将读入的信息全部在屏幕输出,可根据自身的需要酌情删除此打印信息。
  注意:读取文件功能是指,将图的信息文件和路径信息文件按行读取到内存,其在内存中的存储格式仍是字符串格式。因为这些信息以什么格式存储涉及到算法设计,这样做是为了不禁锢你的思路。
  
4、重要提示:
  复赛和决赛阶段不再提交可执行二进制文件,而是直接提交你修改和增加的代码源文件,在判题服务器端执行编译。因此需要特别注意:
  1、必须基于本SDK开发,否则会编译不过;
  2、在SDK的源文件中,只有Deploy.java和makelist.txt文件允许修改,其他文件在编译前会统一使用官方SDK版本的文件替换;
  3、建议使用cdn_tar.sh脚本打包压缩文件,保证压缩文件目录结构正确;
  4、请使用jdk1.7版本进行开发。

可以看到,我们需要做的很简单,就是把Deploy.java的内容替换成我们想要的内容,注意返回给Main.java一个赛季结果的字符串,如果没有结果,就输出一个"NA",然后利用cdn_tar.sh进行打包,运行命令就是cd到SDK-java目录下,然后
bash ./cdn_tar.sh
注意,好像华为的哥哥们是在windows环境下编辑的这个sh文件,所以在Linux环境下可能会出现/bin/bash^M 没有这个目录的问题,这是因为目前的编辑代码格式还是DOS下的文本格式,大家可以验证一下:

vim cdn_tar.sh
:set ff?
如果出现fileforma=dos那么就基本可以确定是这个问题了。
:set fileformat=unix
:wq
然后再bash这个shell文件,问题完美解决,在这个目录下会生成一个cdn.tar.gz的文件,接下来就可以愉快的提交了。

版权声明:本文为博主原创文章,转载请注明出处

华为软件精英挑战赛2016题解

代码:https://github.com/jinhang/2016_Huawei_SoftWareMatch 前言 赛题源自“未来网络”业务发放中的路由计算问题。算路问题属于基础算法问题,在...
  • youdianjinjin
  • youdianjinjin
  • 2016年06月28日 20:59
  • 9056

华为软件精英赛总结

津京东北赛区复赛已经结束。 赛题:http://codecraft.huawei.com/home/detail 复赛赛题描述 1 问题定义 给定一个带权重的有向图G=(V,E),V为顶点...
  • firenet1
  • firenet1
  • 2016年05月15日 16:24
  • 2026

2016华为软件精英挑战赛初赛题目,个人分析与代码,尚未测试代码,因为没有judge系统啊!

看到题目,首先想到这是一个哈密顿回路的题,但是不是简单的哈密顿回路,因为题目中要求走过的点不是所有点,而是所有点V的一个子集V',所以在求出一个到达终点的路径之后,做一个判断,看path是否经历过所有...
  • lwtdzh999
  • lwtdzh999
  • 2016年03月04日 19:28
  • 8943

华为CodeCraft2016比赛的个人的算法优化

参加了2016华为CodeCraft比赛受到刺激很大, 感觉被那些牛人秒成渣渣. 要更努力啊!  我已经"光荣牺牲"了, 所以也就没什么心理负担了. 题目如下: 给定一个带权重的有向图G=(V,E),...
  • htjovi
  • htjovi
  • 2016年04月11日 21:56
  • 3164

2017华为CodeCraft回顾

2017.4.26 经过一个多月的努力,华为CodeCraft结束了。最后结果止步复赛,还是自己实力不够,大佬们还是强。不过对于我一个学电子的来说,第一次搞图论的算法感觉自己还是尽力了,开始群里大佬...
  • neilooo
  • neilooo
  • 2017年04月27日 00:09
  • 378

Code Craft 2016初赛的一点体会

作者: 虾米小华华为CodeCraft软件精英挑战赛初赛于4月11日结束,我们的队伍有幸进入南京苏州赛区32强,顺利晋级将于5月中旬举行的复赛。...
  • fanfan_U
  • fanfan_U
  • 2016年06月08日 20:49
  • 974

在Windows下压缩生成tar.gz文件的方法

选中需要打包的文件,右击-在弹出的菜单中【7-zip】-【添加到压缩包】,然后选择压缩格式为.tar;打包之后可发现生成的文件体积并没有减小。 最后,选中刚刚生成的.tar文件,再次执行右击-...
  • qvbfndcwy
  • qvbfndcwy
  • 2016年03月29日 15:51
  • 1425

Linux下创建与解压zip, tar, tar.gz和tar.bz2文件及该文件压缩对比

目前Linux下常见的压缩文件扩展名: *.Z compress程序压缩的文件(最早期使用),压缩后取代源文件; *.zip 一个夸平台的文件打包程序,适用于Linux、...
  • whatday
  • whatday
  • 2016年12月15日 13:10
  • 335

参加华为2017软件精英比赛的经历

最近参加了华为2017软件精英大赛,从3月初看到比赛信息开始构思解决方案,到4月初清明节前完成所有代码编写,然后开始调算法参数,再到4月5日初赛结束,一直忙碌了近一个月,要么是在敲代码,要么是在想怎么...
  • qq_18071075
  • qq_18071075
  • 2017年04月07日 15:36
  • 1422

shell解压当前目录下的全部.tar.gz文件

很简单的一个shell小脚本,很实用
  • timerlau
  • timerlau
  • 2014年07月28日 11:04
  • 2045
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:华为code craft软件精英赛笔记-如何在Linux下利用提供的shell文件生成tar.gz赛题提交压缩包
举报原因:
原因补充:

(最多只允许输入30个字)