├── .idea ├── .name ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── encodings.xml ├── misc.xml ├── modules.xml ├── uiDesigner.xml └── vcs.xml ├── 001-NowCoder猜想 ├── 001-NowCoder猜想.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 002-分遗产 ├── 002-分遗产.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 003-素数和 ├── 003-素数和.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 004-包含一 ├── 004-包含一.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 005-猴子分桃 ├── 005-猴子分桃.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 006-统计一 ├── 006-统计一.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 007-循环数 ├── 007-循环数.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 008-快到碗里来 ├── 008-快到碗里来.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 009-数根 ├── 009-数根.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 010-杨辉三角 ├── 010-杨辉三角.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 011-鸽兔同校 ├── 011-鸽兔同校.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 012-Hero ├── 012-Hero.iml ├── readme.md └── src │ ├── Main.java │ ├── Main2.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 013-最长句子 ├── 013-最长句子.iml ├── readme.md └── src │ ├── Main.java │ ├── Main2.java │ ├── Main3.java │ ├── data.txt │ ├── data2.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 014-红与黑 ├── 014-红与黑.iml ├── readme.md └── src │ ├── Main.java │ ├── Main2.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 015-走迷宫 ├── 015-走迷宫.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 016-过年回家 ├── 016-过年回家.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 017-Emacs计算器 ├── 017-Emacs计算器.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 018-不喜欢括号 ├── 018-不喜欢括号.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 019-一笔画 ├── 019-一笔画.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ ├── data3.txt │ ├── data4.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 020-小世界现象 ├── 020-小世界现象.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ ├── data3.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 021-数据库连接池 ├── 021-数据库连接池.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 022-网页浏览历史 ├── 022-网页浏览历史.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 023-换零钱 ├── 023-换零钱.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 024-放苹果 ├── 024-放苹果.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 025-数字三角形 ├── 025-数字三角形.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 026-是男人就下100层 ├── 026-是男人就下100层.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ ├── data3.txt │ ├── readme.md │ └── 解题思路.docx ├── 027-最短编辑距离 ├── 027-最短编辑距离.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 028-最长上升子序列 ├── 028-最长上升子序列.iml ├── readme.md └── src │ ├── Main.java │ ├── Main2.java │ ├── data.txt │ ├── data2.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 029-最长公共子序列 ├── 029-最长公共子序列.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ └── 解题思路.docx ├── 030-滑雪 ├── 030-滑雪.iml ├── readme.md └── src │ ├── Main.java │ ├── Main2.java │ ├── data.txt │ ├── data2.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 031-NowCoder的密码 ├── 031-NowCoder的密码.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ ├── data3.txt │ ├── data4.txt │ ├── data5.txt │ └── readme.md ├── 032-二叉树 ├── 032-二叉树.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 033-八皇后问题 ├── 033-八皇后问题.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 034-强势糖果 ├── 034-强势糖果.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 035-NowCoder赛马 ├── 035-NowCoder赛马.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 036-中美代表 ├── 036-中美代表.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 037-价格浮动 ├── 037-价格浮动.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 038-冲突的电话号码 ├── 038-冲突的电话号码.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ ├── data3.txt │ └── readme.md ├── 039-寻找舞伴 ├── 039-寻找舞伴.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 040-整理图书 ├── 040-整理图书.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ └── readme.md ├── 041-最短前缀 ├── 041-最短前缀.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ └── readme.md ├── 042-狐狸和绳子 ├── 042-狐狸和绳子.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 043-英文金曲大赛 ├── 043-英文金曲大赛.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 044-鹊桥相会 ├── 044-鹊桥相会.iml └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ └── 解题思路.docx ├── 045-Homework ├── 045-Homework.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ └── readme.md ├── 046-压缩数据 ├── 046-压缩数据.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ ├── data3.txt │ ├── readme.md │ └── 绘图1.eddx ├── 047-发工资 ├── 047-发工资.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 048-发放贷款 ├── 048-发放贷款.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 049-最佳投资 ├── 049-最佳投资.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ └── readme.md ├── 050-最大收益 ├── 050-最大收益.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ ├── data3.txt │ ├── data4.txt │ ├── data5.txt │ └── readme.md ├── 051-砌墙 ├── 051-砌墙.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 052-All-in-All ├── 052-All-in-All.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 053-Base64 ├── 053-Base64.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 054-mkdir ├── 054-mkdir.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ ├── data3.txt │ └── readme.md ├── 055-University ├── 055-University.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 056-剪花布条 ├── 056-剪花布条.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 057-叠筐 ├── 057-叠筐.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 058-寄居蟹与海葵 ├── 058-寄居蟹与海葵.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 059-抄送列表 ├── 059-抄送列表.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ ├── data3.txt │ ├── data4.txt │ ├── data5.txt │ └── readme.md ├── 060-换座位 ├── 060-换座位.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 061-收件人列表 ├── 061-收件人列表.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 062-最长回文 ├── 062-最长回文.iml └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 063-电话号码 ├── 063-电话号码.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 064-解读密码 ├── 064-解读密码.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 065-骆驼命名法 ├── 065-骆驼命名法.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 066-五子棋 ├── 066-五子棋.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ └── readme.md ├── 067-单词迷阵 ├── 067-单词迷阵.iml ├── readme.md └── src │ ├── Main.java │ ├── Main2.java │ ├── data.txt │ ├── data2.txt │ ├── data3.txt │ └── readme.md ├── 068-天仙配 ├── 068-天仙配.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 069-广场舞 ├── 069-广场舞.iml ├── readme.md └── src │ ├── Main.java │ ├── Main2.java │ ├── data.txt │ ├── data2.txt │ └── readme.md ├── 070-求面积 ├── 070-求面积.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 071-螺旋数 ├── 071-螺旋数.iml ├── readme.md └── src │ ├── Main.java │ ├── Main2.java │ ├── data.txt │ ├── data2.txt │ ├── readme.md │ └── 解题思路.docx ├── 072-黑白棋 ├── 072-黑白棋.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ └── 解题思路.docx ├── 073-NowCoder的遭遇 ├── 073-NowCoder的遭遇.iml └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 074-下个月 ├── 074-下个月.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ ├── data3.txt │ └── readme.md ├── 075-出差 ├── 075-出差.iml └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 076-淘宝网店 ├── 076-淘宝网店.iml └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 077-玛雅历 ├── 077-玛雅历.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ ├── data3.txt │ └── readme.md ├── 078-程序员日 ├── 078-程序员日.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 079-美国节日 ├── 079-美国节日.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ ├── 解题思路.docx │ └── 解题思路.pdf ├── 080-下一个排列 ├── 080-下一个排列.iml └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ └── 解题思路.docx ├── 081-显示器 ├── 081-显示器.iml └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ └── 解题思路.docx ├── 082-棋盘上的距离 ├── 082-棋盘上的距离.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ ├── readme.md │ └── 解题思路.docx ├── 083-目标柏林 ├── 083-目标柏林.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── readme.md │ └── 解题思路.docx ├── 084-私钥 ├── 084-私钥.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ └── readme.md ├── 085-装箱 ├── 085-装箱.iml ├── readme.md └── src │ ├── Main.java │ ├── data.txt │ ├── data2.txt │ ├── data3.txt │ └── readme.md ├── ASCII.jpg ├── readme.md └── template.txt /.idea/.name: -------------------------------------------------------------------------------- 1 | ProgrammingMarathon -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /001-NowCoder猜想/001-NowCoder猜想.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /001-NowCoder猜想/readme.md: -------------------------------------------------------------------------------- 1 | #NowCoder猜想 2 | 3 | ##题目描述 4 | nowcoder在家极度无聊,于是找了张纸开始统计素数的个数。设函数f(n)返回从1-n之间素数的个数。nowcoder 发现:
5 | f(1) = 0
6 | f(10) = 4
7 | f(100) = 25
8 | ...
9 | 满足g(m) = 17 * m^2 / 3 - 22 * m / 3 + 5 / 3
10 | 其中m为n的位数。
11 | 他很激动,是不是自己发现了素数分布的规律了! 12 | 请你设计一个程序,求出f(n),来验证nowcoder是不是正确的,也许还可以得诺贝尔奖呢。^_^ 13 | 14 | ##输入描述: 15 | 输入包括多组数据。 16 | 每组数据仅有一个整数n (1≤n≤10000000)。 17 | 18 | 19 | ##输出描述: 20 | 对于每组数据输入,输出一行,为1->n(包括n)之间的素数的个数。 21 | 22 | ##输入例子: 23 | ``` 24 | 1 25 | 10 26 | 65 27 | 100 28 | 0 29 | ``` 30 | 31 | ##输出例子: 32 | ``` 33 | 0 34 | 4 35 | 18 36 | 25 37 | ``` -------------------------------------------------------------------------------- /001-NowCoder猜想/src/data.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 10 3 | 65 4 | 100 5 | 0 -------------------------------------------------------------------------------- /001-NowCoder猜想/src/readme.md: -------------------------------------------------------------------------------- 1 | #NowCoder猜想 2 | 3 | ##题目描述 4 |   nowcoder在家极度无聊,于是找了张纸开始统计素数的个数。设函数f(n)返回从1-n之间素数的个数。nowcoder 发现:
5 | >  f(1) = 0
6 | >  f(10) = 4
7 | >  f(100) = 25
8 | >  ...
9 | >  满足g(m) = 17 * m^2 / 3 - 22 * m / 3 + 5 / 3
10 | >  其中m为n的位数。
11 | 12 |   他很激动,是不是自己发现了素数分布的规律了!
13 |   请你设计一个程序,求出f(n),来验证nowcoder是不是正确的,也许还可以得诺贝尔奖呢。^_^ 14 | 15 | ##输入描述: 16 |   输入包括多组数据。
17 |   每组数据仅有一个整数n (1≤n≤10000000)。 18 | 19 | 20 | ##输出描述: 21 |   对于每组数据输入,输出一行,为1->n(包括n)之间的素数的个数。 22 | 23 | ##输入例子: 24 | ``` 25 | 1 26 | 10 27 | 65 28 | 100 29 | 0 30 | ``` 31 | 32 | ##输出例子: 33 | ``` 34 | 0 35 | 4 36 | 18 37 | 25 38 | ``` -------------------------------------------------------------------------------- /001-NowCoder猜想/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/001-NowCoder猜想/src/解题思路.docx -------------------------------------------------------------------------------- /001-NowCoder猜想/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/001-NowCoder猜想/src/解题思路.pdf -------------------------------------------------------------------------------- /002-分遗产/002-分遗产.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /002-分遗产/readme.md: -------------------------------------------------------------------------------- 1 | #分遗产 2 | 3 | ##题目描述 4 |   有一位阿拉伯老人,生前养有11匹马,他去世前立下遗嘱:大儿子、二儿子、小儿子分别继承遗产的1/2、1/4、1/6。
5 |   儿子们想来想去没法分:他们所得到的都不是整数,即分别为11/2、11/4、11/6,总不能把一匹马割成几块来分吧?
6 |   聪明的邻居牵来了自己的一匹马,对他们说:“你们看,现在有12匹马了,老大得12匹的1/2就是6匹,老二得12匹的1/4就是3匹, 老三得12匹的1/6就是2匹,还剩一匹我照旧牵回家去。”这样把难分的问题解决了。
7 |   现在又有一个老人要分遗产了,他有m匹马(1≤m≤1000000),并且有n个儿子(1≤n≤10),每个儿子分别得到1/a1、1/a2、...、1/an的遗产。
8 |   因为马不能分割,并且遗产要全部分完,所以请你用上面那位聪明的邻居的方法计算一下每个儿子能分到几匹马
9 | 10 | ##输入描述: 11 |   输入包括多组测试数据。
12 |   每组测试数据包括两行:
13 |   第一行为m、n,分别代表老人拥有的马匹数和几个儿子。
14 |   第二行有n个数据a1、a2、...、an,依次代表大儿子、二儿子...第n个儿子分到的遗产的份额。(0 < ai < 50)
15 |   程序以输入0 0结束,该行不做处理。
16 | 17 | 18 | ##输出描述: 19 |   按照上面介绍的方法解决这个问题。
20 |   如果那种方法不能解决这个问题(即所有儿子不能得到整数匹马),则你的程序要输出"Can't Solve";
21 |   否者依次输出大儿子、二儿子...得到的马的匹数。
22 |   每个数之间有一个空格隔开(最后一个数据后面没有空格)。
23 | 24 | ##输入例子: 25 | ``` 26 | 11 3 27 | 2 4 6 28 | 2 2 29 | 3 3 30 | 0 0 31 | ``` 32 | 33 | ##输出例子: 34 | ``` 35 | 6 3 2 36 | 1 1 37 | ``` -------------------------------------------------------------------------------- /002-分遗产/src/data.txt: -------------------------------------------------------------------------------- 1 | 11 3 2 | 2 4 6 3 | 2 2 4 | 3 3 5 | 0 0 -------------------------------------------------------------------------------- /002-分遗产/src/readme.md: -------------------------------------------------------------------------------- 1 | #分遗产 2 | 3 | ##题目描述 4 |   有一位阿拉伯老人,生前养有11匹马,他去世前立下遗嘱:大儿子、二儿子、小儿子分别继承遗产的1/2、1/4、1/6。
5 |   儿子们想来想去没法分:他们所得到的都不是整数,即分别为11/2、11/4、11/6,总不能把一匹马割成几块来分吧?
6 |   聪明的邻居牵来了自己的一匹马,对他们说:“你们看,现在有12匹马了,老大得12匹的1/2就是6匹,老二得12匹的1/4就是3匹, 老三得12匹的1/6就是2匹,还剩一匹我照旧牵回家去。”这样把难分的问题解决了。
7 |   现在又有一个老人要分遗产了,他有m匹马(1≤m≤1000000),并且有n个儿子(1≤n≤10),每个儿子分别得到1/a1、1/a2、...、1/an的遗产。
8 |   因为马不能分割,并且遗产要全部分完,所以请你用上面那位聪明的邻居的方法计算一下每个儿子能分到几匹马
9 | 10 | ##输入描述: 11 |   输入包括多组测试数据。
12 |   每组测试数据包括两行:
13 |   第一行为m、n,分别代表老人拥有的马匹数和几个儿子。
14 |   第二行有n个数据a1、a2、...、an,依次代表大儿子、二儿子...第n个儿子分到的遗产的份额。(0 < ai < 50)
15 |   程序以输入0 0结束,该行不做处理。
16 | 17 | 18 | ##输出描述: 19 |   按照上面介绍的方法解决这个问题。
20 |   如果那种方法不能解决这个问题(即所有儿子不能得到整数匹马),则你的程序要输出"Can't Solve";
21 |   否者依次输出大儿子、二儿子...得到的马的匹数。
22 |   每个数之间有一个空格隔开(最后一个数据后面没有空格)。
23 | 24 | ##输入例子: 25 | ``` 26 | 11 3 27 | 2 4 6 28 | 2 2 29 | 3 3 30 | 0 0 31 | ``` 32 | 33 | ##输出例子: 34 | ``` 35 | 6 3 2 36 | 1 1 37 | ``` -------------------------------------------------------------------------------- /002-分遗产/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/002-分遗产/src/解题思路.docx -------------------------------------------------------------------------------- /002-分遗产/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/002-分遗产/src/解题思路.pdf -------------------------------------------------------------------------------- /003-素数和/003-素数和.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /003-素数和/readme.md: -------------------------------------------------------------------------------- 1 | #素数和 2 | 3 | ##题目描述 4 |   NowCoder发现某些整数可以拆分成两个不同的素数的和。例如7=2+5、20=3+17=7+13等。
5 |   他想知道每个正整数都有几种拆分的方法,你能帮他解决吗? 6 | 7 | ##输入描述: 8 |   输入包括多组数据。
9 |   每组数据仅有一个整数n (1≤n≤100000)。 10 | 11 | 12 | ##输出描述: 13 |   对应每个整数,输出其拆成不同素数和的个数,每个结果占一行。 14 | 15 | ##输入例子: 16 | ``` 17 | 30 18 | 26 19 | 20 20 | ``` 21 | 22 | ##输出例子: 23 | ``` 24 | 3 25 | 2 26 | 2 27 | ``` -------------------------------------------------------------------------------- /003-素数和/src/data.txt: -------------------------------------------------------------------------------- 1 | 30 2 | 26 3 | 20 4 | 50023 -------------------------------------------------------------------------------- /003-素数和/src/readme.md: -------------------------------------------------------------------------------- 1 | #素数和 2 | 3 | ##题目描述 4 |   NowCoder发现某些整数可以拆分成两个不同的素数的和。例如7=2+5、20=3+17=7+13等。
5 |   他想知道每个正整数都有几种拆分的方法,你能帮他解决吗? 6 | 7 | ##输入描述: 8 |   输入包括多组数据。
9 |   每组数据仅有一个整数n (1≤n≤100000)。 10 | 11 | 12 | ##输出描述: 13 |   对应每个整数,输出其拆成不同素数和的个数,每个结果占一行。 14 | 15 | ##输入例子: 16 | ``` 17 | 30 18 | 26 19 | 20 20 | ``` 21 | 22 | ##输出例子: 23 | ``` 24 | 3 25 | 2 26 | 2 27 | ``` -------------------------------------------------------------------------------- /003-素数和/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/003-素数和/src/解题思路.docx -------------------------------------------------------------------------------- /003-素数和/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/003-素数和/src/解题思路.pdf -------------------------------------------------------------------------------- /004-包含一/004-包含一.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /004-包含一/readme.md: -------------------------------------------------------------------------------- 1 | #包含一 2 | 3 | ##题目描述 4 |   NowCoder总是力争上游,凡事都要拿第一,所以他对“1”这个数情有独钟。爱屋及乌,他也很喜欢包含1的数,例如10、11、12……。你能帮他统计一下有多少个包含1的正整数吗? 5 | 6 | ##输入描述: 7 |   输入有多组数据,每组数据包含一个正整数n,(1≤n≤2147483647)。 8 | 9 | ##输出描述: 10 |   对应每组输入,输出从1到n(包含1和n)之间包含数字1的正整数的个数。 11 | 12 | ##输入例子: 13 | ``` 14 | 1 15 | 9 16 | 10 17 | 20 18 | ``` 19 | 20 | ##输出例子: 21 | ``` 22 | 1 23 | 1 24 | 2 25 | 11 26 | ``` -------------------------------------------------------------------------------- /004-包含一/src/data.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 9 3 | 10 4 | 20 -------------------------------------------------------------------------------- /004-包含一/src/readme.md: -------------------------------------------------------------------------------- 1 | #包含一 2 | 3 | ##题目描述 4 |   NowCoder总是力争上游,凡事都要拿第一,所以他对“1”这个数情有独钟。爱屋及乌,他也很喜欢包含1的数,例如10、11、12……。你能帮他统计一下有多少个包含1的正整数吗? 5 | 6 | ##输入描述: 7 |   输入有多组数据,每组数据包含一个正整数n,(1≤n≤2147483647)。 8 | 9 | ##输出描述: 10 |   对应每组输入,输出从1到n(包含1和n)之间包含数字1的正整数的个数。 11 | 12 | ##输入例子: 13 | ``` 14 | 1 15 | 9 16 | 10 17 | 20 18 | ``` 19 | 20 | ##输出例子: 21 | ``` 22 | 1 23 | 1 24 | 2 25 | 11 26 | ``` -------------------------------------------------------------------------------- /004-包含一/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/004-包含一/src/解题思路.docx -------------------------------------------------------------------------------- /004-包含一/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/004-包含一/src/解题思路.pdf -------------------------------------------------------------------------------- /005-猴子分桃/005-猴子分桃.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /005-猴子分桃/readme.md: -------------------------------------------------------------------------------- 1 | #猴子分桃 2 | 3 | ##题目描述 4 |   老猴子辛苦了一辈子,给那群小猴子们留下了一笔巨大的财富——一大堆桃子。老猴子决定把这些桃子分给小猴子。
5 |   第一个猴子来了,它把桃子分成五堆,五堆一样多,但还多出一个。它把剩下的一个留给老猴子,自己拿走其中的一堆。
6 |   第二个猴子来了,它把桃子分成五堆,五堆一样多,但又多出一个。它把多出的一个留给老猴子,自己拿走其中的一堆。 7 |   后来的小猴子都如此照办。最后剩下的桃子全部留给老猴子。 8 |   这里有n只小猴子,请你写个程序计算一下在开始时至少有多少个桃子,以及最后老猴子最少能得到几个桃子。 9 | 10 | ##输入描述: 11 |   输入包括多组测试数据。
12 |   每组测试数据包括一个整数n(1≤n≤20)。
13 |   输入以0结束,该行不做处理。 14 | 15 | 16 | ##输出描述: 17 |   每组测试数据对应一行输出。
18 |   包括两个整数a,b。
19 |   分别代表开始时最小需要的桃子数,和结束后老猴子最少能得到的桃子数。 20 | 21 | ##输入例子: 22 | ``` 23 | 5 24 | 1 25 | 0 26 | ``` 27 | 28 | ##输出例子: 29 | ``` 30 | 3121 1025 31 | 1 1 32 | ``` -------------------------------------------------------------------------------- /005-猴子分桃/src/data.txt: -------------------------------------------------------------------------------- 1 | 5 2 | 1 3 | 14 4 | 0 -------------------------------------------------------------------------------- /005-猴子分桃/src/readme.md: -------------------------------------------------------------------------------- 1 | #猴子分桃 2 | 3 | ##题目描述 4 |   老猴子辛苦了一辈子,给那群小猴子们留下了一笔巨大的财富——一大堆桃子。老猴子决定把这些桃子分给小猴子。
5 |   第一个猴子来了,它把桃子分成五堆,五堆一样多,但还多出一个。它把剩下的一个留给老猴子,自己拿走其中的一堆。
6 |   第二个猴子来了,它把桃子分成五堆,五堆一样多,但又多出一个。它把多出的一个留给老猴子,自己拿走其中的一堆。 7 |   后来的小猴子都如此照办。最后剩下的桃子全部留给老猴子。 8 |   这里有n只小猴子,请你写个程序计算一下在开始时至少有多少个桃子,以及最后老猴子最少能得到几个桃子。 9 | 10 | ##输入描述: 11 |   输入包括多组测试数据。
12 |   每组测试数据包括一个整数n(1≤n≤20)。
13 |   输入以0结束,该行不做处理。 14 | 15 | 16 | ##输出描述: 17 |   每组测试数据对应一行输出。
18 |   包括两个整数a,b。
19 |   分别代表开始时最小需要的桃子数,和结束后老猴子最少能得到的桃子数。 20 | 21 | ##输入例子: 22 | ``` 23 | 5 24 | 1 25 | 0 26 | ``` 27 | 28 | ##输出例子: 29 | ``` 30 | 3121 1025 31 | 1 1 32 | ``` -------------------------------------------------------------------------------- /005-猴子分桃/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/005-猴子分桃/src/解题思路.docx -------------------------------------------------------------------------------- /005-猴子分桃/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/005-猴子分桃/src/解题思路.pdf -------------------------------------------------------------------------------- /006-统计一/006-统计一.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /006-统计一/readme.md: -------------------------------------------------------------------------------- 1 | #统计一 2 | 3 | ##题目描述 4 |   NowCoder总是力争上游,凡事都要拿第一,所以他对“1”这个数情有独钟。爱屋及乌,他也很喜欢包含1的数,例如10、11、12……。你能帮他统计一下整数里有多少个1吗? 5 | 6 | ##输入描述: 7 |   输入有多组数据,每组数据包含一个正整数n,(1≤n≤2147483647)。 8 | 9 | ##输出描述: 10 |   对应每组输入,输出从1到n(包含1和n)之间包含数字1的个数。例如11与101包含2个1、1101包含3个1。 11 | 12 | ##输入例子: 13 | ``` 14 | 1 15 | 9 16 | 10 17 | 20 18 | ``` 19 | 20 | ##输出例子: 21 | ``` 22 | 1 23 | 1 24 | 2 25 | 12 26 | ``` -------------------------------------------------------------------------------- /006-统计一/src/data.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 9 3 | 10 4 | 20 5 | 10100 6 | 12113 -------------------------------------------------------------------------------- /006-统计一/src/readme.md: -------------------------------------------------------------------------------- 1 | #统计一 2 | 3 | ##题目描述 4 |   NowCoder总是力争上游,凡事都要拿第一,所以他对“1”这个数情有独钟。爱屋及乌,他也很喜欢包含1的数,例如10、11、12……。你能帮他统计一下整数里有多少个1吗? 5 | 6 | ##输入描述: 7 |   输入有多组数据,每组数据包含一个正整数n,(1≤n≤2147483647)。 8 | 9 | ##输出描述: 10 |   对应每组输入,输出从1到n(包含1和n)之间包含数字1的个数。例如11与101包含2个1、1101包含3个1。 11 | 12 | ##输入例子: 13 | ``` 14 | 1 15 | 9 16 | 10 17 | 20 18 | ``` 19 | 20 | ##输出例子: 21 | ``` 22 | 1 23 | 1 24 | 2 25 | 12 26 | ``` -------------------------------------------------------------------------------- /006-统计一/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/006-统计一/src/解题思路.docx -------------------------------------------------------------------------------- /006-统计一/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/006-统计一/src/解题思路.pdf -------------------------------------------------------------------------------- /007-循环数/007-循环数.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /007-循环数/readme.md: -------------------------------------------------------------------------------- 1 | #循环数 2 | 3 | ##题目描述 4 |   142857是一个六位数,我们发现:
5 |   142857 * 1 = 142857
6 |   142857 * 2 = 285714
7 |   142857 * 3 = 428571
8 |   142857 * 4 = 571428
9 |   142857 * 5 = 714285
10 |   142857 * 6 = 857142
11 |   即用1到6的整数去乘142857,会得到一个将原来的数首尾相接循环移动若干数字再在某处断开而得到的数字。
12 |   也就是说,如果把原来的数字和新的数字都首尾相接,他们得到的环是相同的。只是两个数的起始数字不一定相同。
13 |   请写一个程序,判断给定的数不是循环数。 14 | ##输入描述: 15 |   输入包括多组数据。
16 |   每组数据包含一个正整数n,n是2到60位的正整数,并且允许前缀0。即001也是合法的输入数据。
17 | 18 | ##输出描述: 19 |   对应每一组数据,如果是循环数,则输出“Yes”;否则,输出“No”。 20 | 21 | ##输入例子: 22 | ``` 23 | 142857 24 | 012345 25 | ``` 26 | ##输出例子: 27 | ``` 28 | Yes 29 | No 30 | ``` -------------------------------------------------------------------------------- /007-循环数/src/data.txt: -------------------------------------------------------------------------------- 1 | 142857 2 | 012345 -------------------------------------------------------------------------------- /007-循环数/src/readme.md: -------------------------------------------------------------------------------- 1 | #循环数 2 | 3 | ##题目描述 4 |   142857是一个六位数,我们发现:
5 |   142857 * 1 = 142857
6 |   142857 * 2 = 285714
7 |   142857 * 3 = 428571
8 |   142857 * 4 = 571428
9 |   142857 * 5 = 714285
10 |   142857 * 6 = 857142
11 |   即用1到6的整数去乘142857,会得到一个将原来的数首尾相接循环移动若干数字再在某处断开而得到的数字。
12 |   也就是说,如果把原来的数字和新的数字都首尾相接,他们得到的环是相同的。只是两个数的起始数字不一定相同。
13 |   请写一个程序,判断给定的数不是循环数。 14 | ##输入描述: 15 |   输入包括多组数据。
16 |   每组数据包含一个正整数n,n是2到60位的正整数,并且允许前缀0。即001也是合法的输入数据。
17 | 18 | ##输出描述: 19 |   对应每一组数据,如果是循环数,则输出“Yes”;否则,输出“No”。 20 | 21 | ##输入例子: 22 | ``` 23 | 142857 24 | 012345 25 | ``` 26 | ##输出例子: 27 | ``` 28 | Yes 29 | No 30 | ``` -------------------------------------------------------------------------------- /007-循环数/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/007-循环数/src/解题思路.docx -------------------------------------------------------------------------------- /007-循环数/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/007-循环数/src/解题思路.pdf -------------------------------------------------------------------------------- /008-快到碗里来/008-快到碗里来.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /008-快到碗里来/readme.md: -------------------------------------------------------------------------------- 1 | #快到碗里来 2 | 3 | ##题目描述 4 |   小喵们很喜欢把自己装进容器里的(例如碗),但是要是碗的周长比喵的身长还短,它们就进不去了。
5 |   现在告诉你它们的身长,和碗的半径,请判断一下能否到碗里去。 6 | 7 | ##输入描述: 8 |   输入有多组数据。
9 |   每组数据包含两个整数n (1≤n≤2^128) 和r (1≤r≤2^128),分别代表喵的身长和碗的半径。
10 |   圆周率使用3.14。 11 | 12 | 13 | ##输出描述: 14 |   对应每一组数据,如果喵能装进碗里就输出“Yes”;否则输出“No”。 15 | 16 | ##输入例子: 17 | ``` 18 | 6 1 19 | 7 1 20 | 9876543210 1234567890 21 | ``` 22 | ##输出例子: 23 | ``` 24 | Yes 25 | No 26 | No 27 | ``` -------------------------------------------------------------------------------- /008-快到碗里来/src/data.txt: -------------------------------------------------------------------------------- 1 | 6 1 2 | 7 1 3 | 9876543210 1234567890 -------------------------------------------------------------------------------- /008-快到碗里来/src/readme.md: -------------------------------------------------------------------------------- 1 | #快到碗里来 2 | 3 | ##题目描述 4 |   小喵们很喜欢把自己装进容器里的(例如碗),但是要是碗的周长比喵的身长还短,它们就进不去了。
5 |   现在告诉你它们的身长,和碗的半径,请判断一下能否到碗里去。 6 | 7 | ##输入描述: 8 |   输入有多组数据。
9 |   每组数据包含两个整数n (1≤n≤2^128) 和r (1≤r≤2^128),分别代表喵的身长和碗的半径。
10 |   圆周率使用3.14。 11 | 12 | 13 | ##输出描述: 14 |   对应每一组数据,如果喵能装进碗里就输出“Yes”;否则输出“No”。 15 | 16 | ##输入例子: 17 | ``` 18 | 6 1 19 | 7 1 20 | 9876543210 1234567890 21 | ``` 22 | ##输出例子: 23 | ``` 24 | Yes 25 | No 26 | No 27 | ``` -------------------------------------------------------------------------------- /008-快到碗里来/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/008-快到碗里来/src/解题思路.docx -------------------------------------------------------------------------------- /008-快到碗里来/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/008-快到碗里来/src/解题思路.pdf -------------------------------------------------------------------------------- /009-数根/009-数根.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /009-数根/readme.md: -------------------------------------------------------------------------------- 1 | #数根 2 | 3 | ##题目描述 4 |   数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根;如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。
5 |   比如,对于24 来说,把2 和4 相加得到6,由于6 是一位数,因此6 是24 的数根。
6 |   再比如39,把3 和9 加起来得到12,由于12 不是一位数,因此还得把1 和2 加起来,最后得到3,这是一个一位数,因此3 是39 的数根。
7 |   现在给你一个正整数,输出它的数根。 8 | 9 | ##输入描述: 10 |   输入包含多组数据。 11 |   每组数据数据包含一个正整数n(1≤n≤10E1000)。
12 | 13 | 14 | ##输出描述: 15 |   对应每一组数据,输出该正整数的数根。
16 | 17 | ##输入例子: 18 | ``` 19 | 24 20 | 39 21 | ``` 22 | ##输出例子: 23 | ``` 24 | 6 25 | 3 26 | ``` -------------------------------------------------------------------------------- /009-数根/src/data.txt: -------------------------------------------------------------------------------- 1 | 24 2 | 39 -------------------------------------------------------------------------------- /009-数根/src/readme.md: -------------------------------------------------------------------------------- 1 | #数根 2 | 3 | ##题目描述 4 |   数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根;如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。
5 |   比如,对于24 来说,把2 和4 相加得到6,由于6 是一位数,因此6 是24 的数根。
6 |   再比如39,把3 和9 加起来得到12,由于12 不是一位数,因此还得把1 和2 加起来,最后得到3,这是一个一位数,因此3 是39 的数根。
7 |   现在给你一个正整数,输出它的数根。 8 | 9 | ##输入描述: 10 |   输入包含多组数据。 11 |   每组数据数据包含一个正整数n(1≤n≤10E1000)。
12 | 13 | 14 | ##输出描述: 15 |   对应每一组数据,输出该正整数的数根。
16 | 17 | ##输入例子: 18 | ``` 19 | 24 20 | 39 21 | ``` 22 | ##输出例子: 23 | ``` 24 | 6 25 | 3 26 | ``` -------------------------------------------------------------------------------- /009-数根/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/009-数根/src/解题思路.docx -------------------------------------------------------------------------------- /009-数根/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/009-数根/src/解题思路.pdf -------------------------------------------------------------------------------- /010-杨辉三角/010-杨辉三角.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /010-杨辉三角/readme.md: -------------------------------------------------------------------------------- 1 | #杨辉三角 2 | 3 | ##题目描述 4 | 5 | 1 6 | 1 1 7 | 1 2 1 8 | 1 3 3 1 9 | 1 4 6 4 1 10 | 1 5 10 10 5 1 11 | 12 |   上面的图形熟悉吗?它就是我们中学时候学过的杨辉三角。 13 | 14 | #输入描述: 15 |   输入数据包含多组测试数据。
16 |   每组测试数据的输入只有一个正整数n(1≤n≤128),表示将要输出的杨辉三角的层数。
17 |   输入以0结束 18 | 19 | 20 | #输出描述: 21 |   对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。 22 | 23 | #输入例子: 24 | ``` 25 | 2 26 | 3 27 | 0 28 | ``` 29 | 30 | #输出例子: 31 | ``` 32 | 1 33 | 1 1 34 | 35 | 1 36 | 1 1 37 | 1 2 1 38 | ``` -------------------------------------------------------------------------------- /010-杨辉三角/src/data.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 4 5 | 5 6 | 6 7 | 7 8 | 8 9 | 9 10 | 10 11 | 40 12 | 68 13 | 0 -------------------------------------------------------------------------------- /010-杨辉三角/src/readme.md: -------------------------------------------------------------------------------- 1 | #杨辉三角 2 | 3 | ##题目描述 4 | 5 | 1 6 | 1 1 7 | 1 2 1 8 | 1 3 3 1 9 | 1 4 6 4 1 10 | 1 5 10 10 5 1 11 | 12 |   上面的图形熟悉吗?它就是我们中学时候学过的杨辉三角。 13 | 14 | #输入描述: 15 |   输入数据包含多组测试数据。
16 |   每组测试数据的输入只有一个正整数n(1≤n≤128),表示将要输出的杨辉三角的层数。
17 |   输入以0结束 18 | 19 | 20 | #输出描述: 21 |   对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。 22 | 23 | #输入例子: 24 | ``` 25 | 2 26 | 3 27 | 0 28 | ``` 29 | 30 | #输出例子: 31 | ``` 32 | 1 33 | 1 1 34 | 35 | 1 36 | 1 1 37 | 1 2 1 38 | ``` -------------------------------------------------------------------------------- /010-杨辉三角/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/010-杨辉三角/src/解题思路.docx -------------------------------------------------------------------------------- /010-杨辉三角/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/010-杨辉三角/src/解题思路.pdf -------------------------------------------------------------------------------- /011-鸽兔同校/011-鸽兔同校.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /011-鸽兔同校/readme.md: -------------------------------------------------------------------------------- 1 | #鸽兔同校 2 | 3 | ##题目描述 4 |   浙江大学校园里绿树成荫,环境非常舒适,因此也引来一批动物朋友来此居住。
5 |   童心未泯的NowCoder就经常带些碎面包什么的去广场喂鸽子和兔子,并和它们玩耍。 一点也没有大学生的样子,还是一副老不正经的样子,呵呵。
6 |   随着鸽子和兔子数目的增多,NowCoder带的那点食物已经不够它们瓜分了。为了能让自己的好朋友吃的饱饱的, NowCoder决定统计一下有多少只鸽子和有多少只兔子,以便带来足够的食物。一、二、三、四、五...他开始数了。
7 |   现在,他已经知道有这些鸽子和兔子一共有n个头和m只脚。请你帮他写个程序计算一下一共有多少只鸽子和兔子。
8 | 9 | ##输入描述: 10 |   输入包括多组数据。
11 |   每行包括2个正整数n和m,n和m可能会很大,超过2^64,但位数不超过100位。
12 | 13 | ##输出描述: 14 |   每组数据的输出都只有一行,分别是鸽子的数量和兔子数量。
15 |   如果输入的测试数据不能求得结果,那肯定是NowCoder这个马大哈数错了,就输出“Error”提示他。
16 | 17 | ##输入例子: 18 | ``` 19 | 35 94 20 | 1 3 21 | ``` 22 | ##输出例子: 23 | ``` 24 | 23 12 25 | Error 26 | ``` -------------------------------------------------------------------------------- /011-鸽兔同校/src/data.txt: -------------------------------------------------------------------------------- 1 | 35 94 2 | 1 3 -------------------------------------------------------------------------------- /011-鸽兔同校/src/readme.md: -------------------------------------------------------------------------------- 1 | #鸽兔同校 2 | 3 | ##题目描述 4 |   浙江大学校园里绿树成荫,环境非常舒适,因此也引来一批动物朋友来此居住。
5 |   童心未泯的NowCoder就经常带些碎面包什么的去广场喂鸽子和兔子,并和它们玩耍。 一点也没有大学生的样子,还是一副老不正经的样子,呵呵。
6 |   随着鸽子和兔子数目的增多,NowCoder带的那点食物已经不够它们瓜分了。为了能让自己的好朋友吃的饱饱的, NowCoder决定统计一下有多少只鸽子和有多少只兔子,以便带来足够的食物。一、二、三、四、五...他开始数了。
7 |   现在,他已经知道有这些鸽子和兔子一共有n个头和m只脚。请你帮他写个程序计算一下一共有多少只鸽子和兔子。
8 | 9 | ##输入描述: 10 |   输入包括多组数据。
11 |   每行包括2个正整数n和m,n和m可能会很大,超过2^64,但位数不超过100位。
12 | 13 | ##输出描述: 14 |   每组数据的输出都只有一行,分别是鸽子的数量和兔子数量。
15 |   如果输入的测试数据不能求得结果,那肯定是NowCoder这个马大哈数错了,就输出“Error”提示他。
16 | 17 | ##输入例子: 18 | ``` 19 | 35 94 20 | 1 3 21 | ``` 22 | ##输出例子: 23 | ``` 24 | 23 12 25 | Error 26 | ``` -------------------------------------------------------------------------------- /011-鸽兔同校/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/011-鸽兔同校/src/解题思路.docx -------------------------------------------------------------------------------- /011-鸽兔同校/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/011-鸽兔同校/src/解题思路.pdf -------------------------------------------------------------------------------- /012-Hero/012-Hero.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /012-Hero/readme.md: -------------------------------------------------------------------------------- 1 | #Hero 2 | 3 | ##题目描述 4 |   500年前,NowCoder是我国最卓越的剑客。他英俊潇洒,而且机智过人^_^。 突然有一天,NowCoder心爱的公主被魔王困在了一个巨大的迷宫中。
5 |   NowCoder听说这个消息已经是两天以后了,他知道公主在迷宫中还能坚持T天,他急忙赶到迷宫,开始到处寻找公主的下落。 时间一点一点的过去,
6 |   NowCoder还是无法找到公主。最后当他找到公主的时候,美丽的公主已经死了。从此NowCoder郁郁寡欢,茶饭不思,一年后追随公主而去了。T_T
7 |   500年后的今天,NowCoder托梦给你,希望你帮他判断一下当年他是否有机会在给定的时间内找到公主。 他会为你提供迷宫的地图以及所剩的时间
8 |   T。请你判断他是否能救出心爱的公主。 9 | ##输入描述: 10 |   题目包括多组测试数据。
11 |   每组测试数据以三个整数N,M,T(00)开头,分别代表迷宫的长和高,以及公主能坚持的天数。
12 |   紧接着有M行,N列字符,由".","*","P","S"组成。其中
13 |   "." 代表能够行走的空地。
14 |   "*" 代表墙壁,NowCoder不能从此通过。
15 |   "P" 是公主所在的位置。
16 |   "S" 是NowCoder的起始位置。
17 |   每个时间段里NowCoder只能选择“上、下、左、右”任意一方向走一步。
18 |   输入以0 0 0结束。 19 | 20 | 21 | ##输出描述: 22 |   如果能在规定时间内救出公主输出“YES”,否则输出“NO”。 23 | 24 | ##输入例子: 25 | ``` 26 | 4 4 10 27 | .... 28 | .... 29 | .... 30 | S**P 31 | 0 0 0 32 | ``` 33 | 34 | ##输出例子: 35 | ``` 36 | YES 37 | ``` -------------------------------------------------------------------------------- /012-Hero/src/data.txt: -------------------------------------------------------------------------------- 1 | 4 4 10 2 | .... 3 | .... 4 | .... 5 | S**P 6 | 4 4 1 7 | .... 8 | .... 9 | .... 10 | S**P 11 | 4 4 2 12 | .... 13 | .... 14 | .... 15 | S**P 16 | 4 4 3 17 | .... 18 | .... 19 | .... 20 | S**P 21 | 4 4 4 22 | .... 23 | .... 24 | .... 25 | S**P 26 | 4 4 5 27 | .... 28 | .... 29 | .... 30 | S**P 31 | 4 4 6 32 | .... 33 | .... 34 | .... 35 | S**P 36 | 0 0 0 37 | -------------------------------------------------------------------------------- /012-Hero/src/readme.md: -------------------------------------------------------------------------------- 1 | #Hero 2 | 3 | ##题目描述 4 |   500年前,NowCoder是我国最卓越的剑客。他英俊潇洒,而且机智过人^_^。 突然有一天,NowCoder心爱的公主被魔王困在了一个巨大的迷宫中。NowCoder听说这个消息已经是两天以后了,他知道公主在迷宫中还能坚持T天,他急忙赶到迷宫,开始到处寻找公主的下落。 时间一点一点的过去,NowCoder还是无法找到公主。最后当他找到公主的时候,美丽的公主已经死了。从此NowCoder郁郁寡欢,茶饭不思,一年后追随公主而去了。T_T 500年后的今天,NowCoder托梦给你,希望你帮他判断一下当年他是否有机会在给定的时间内找到公主。 他会为你提供迷宫的地图以及所剩的时间T。请你判断他是否能救出心爱的公主。 5 | 6 | ##输入描述: 7 |   题目包括多组测试数据。
8 |   每组测试数据以三个整数N,M,T(00)开头,分别代表迷宫的长和高,以及公主能坚持的天数。
9 |   紧接着有M行,N列字符,由".","*","P","S"组成。其中
10 |   "." 代表能够行走的空地。
11 |   "*" 代表墙壁,NowCoder不能从此通过。
12 |   "P" 是公主所在的位置。
13 |   "S" 是NowCoder的起始位置。
14 |   每个时间段里NowCoder只能选择“上、下、左、右”任意一方向走一步。
15 |   输入以0 0 0结束。 16 | 17 | 18 | ##输出描述: 19 |   如果能在规定时间内救出公主输出“YES”,否则输出“NO”。 20 | 21 | ##输入例子: 22 | ``` 23 | 4 4 10 24 | .... 25 | .... 26 | .... 27 | S**P 28 | 0 0 0 29 | ``` 30 | 31 | ##输出例子: 32 | ``` 33 | YES 34 | ``` -------------------------------------------------------------------------------- /012-Hero/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/012-Hero/src/解题思路.docx -------------------------------------------------------------------------------- /012-Hero/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/012-Hero/src/解题思路.pdf -------------------------------------------------------------------------------- /013-最长句子/013-最长句子.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /013-最长句子/readme.md: -------------------------------------------------------------------------------- 1 | #最长句子 2 | 3 | ##题目描述 4 |   英语中,有些单词可以出现在其他单词后面。例如“Love”可以出现在“I”之后,“You”可以出现在“Love”之后,因此它们能构成“I Love You”这句话。
5 |   现在给你一些单词间的关系,你能计算出最多能有几个单词组合在一起构成一句话吗? 6 | 7 | ##输入描述: 8 |   输入包含多组数据。
9 |   每组数据的第一行包含一个正整数n (1≤n≤10000)。
10 |   紧接着n行单词关系,每行包含两个单词A和B,表示单词B能出现在A后面。单词长度不超过32个字符,并且只有字母组成。
11 |   不存在循环的依赖关系。 12 | 13 | 14 | ##输出描述: 15 |   对应每组数据,输出最多有几个单词能构成一个句子。 16 | 17 | ##输入例子: 18 | ``` 19 | 1 20 | hello world 21 | 3 22 | I love 23 | love you 24 | love me 25 | ``` 26 | 27 | #输出例子: 28 | ``` 29 | 2 30 | 3 31 | ``` -------------------------------------------------------------------------------- /013-最长句子/src/data.txt: -------------------------------------------------------------------------------- 1 | 1 2 | hello world 3 | 3 4 | I love 5 | love you 6 | love me 7 | 9 8 | A B 9 | B C 10 | C D 11 | B D 12 | E F 13 | F G 14 | C E 15 | I B 16 | A F -------------------------------------------------------------------------------- /013-最长句子/src/readme.md: -------------------------------------------------------------------------------- 1 | #最长句子 2 | 3 | ##题目描述 4 |   英语中,有些单词可以出现在其他单词后面。例如“Love”可以出现在“I”之后,“You”可以出现在“Love”之后,因此它们能构成“I Love You”这句话。
5 |   现在给你一些单词间的关系,你能计算出最多能有几个单词组合在一起构成一句话吗? 6 | 7 | ##输入描述: 8 |   输入包含多组数据。
9 |   每组数据的第一行包含一个正整数n (1≤n≤10000)。
10 |   紧接着n行单词关系,每行包含两个单词A和B,表示单词B能出现在A后面。单词长度不超过32个字符,并且只有字母组成。
11 |   不存在循环的依赖关系。 12 | 13 | 14 | ##输出描述: 15 |   对应每组数据,输出最多有几个单词能构成一个句子。 16 | 17 | ##输入例子: 18 | ``` 19 | 1 20 | hello world 21 | 3 22 | I love 23 | love you 24 | love me 25 | ``` 26 | 27 | #输出例子: 28 | ``` 29 | 2 30 | 3 31 | ``` -------------------------------------------------------------------------------- /013-最长句子/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/013-最长句子/src/解题思路.docx -------------------------------------------------------------------------------- /013-最长句子/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/013-最长句子/src/解题思路.pdf -------------------------------------------------------------------------------- /014-红与黑/014-红与黑.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /014-红与黑/readme.md: -------------------------------------------------------------------------------- 1 | #红与黑 2 | 3 | ##题目描述 4 |   有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的(上下左右四个方向)黑色瓷砖移动。
5 |   请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 6 | 7 | ##输入描述: 8 |   输入包含多组数据。 9 |   每组数据第一行是两个整数 m 和 n(1≤m, n≤20)。紧接着 m 行,每行包括 n 个字符。每个字符表示一块瓷砖的颜色,规则如下:
10 |   1. “.”:黑色的瓷砖;
11 |   2. “#”:白色的瓷砖;
12 |   3. “@”:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个数据集合中唯一出现一次。 13 | 14 | 15 | ##输出描述: 16 |   对应每组数据,输出总共能够到达多少块黑色的瓷砖。 17 | 18 | ##输入例子: 19 | ``` 20 | 9 6 21 | ....#. 22 | .....# 23 | ...... 24 | ...... 25 | ...... 26 | ...... 27 | ...... 28 | #@...# 29 | .#..#. 30 | ``` 31 | 32 | ##输出例子: 33 | ``` 34 | 45 35 | ``` -------------------------------------------------------------------------------- /014-红与黑/src/data.txt: -------------------------------------------------------------------------------- 1 | 9 6 2 | ....#. 3 | .....# 4 | ...... 5 | ...... 6 | ...... 7 | ...... 8 | ...... 9 | #@...# 10 | .#..#. -------------------------------------------------------------------------------- /014-红与黑/src/readme.md: -------------------------------------------------------------------------------- 1 | #红与黑 2 | 3 | ##题目描述 4 |   有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的(上下左右四个方向)黑色瓷砖移动。
5 |   请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 6 | 7 | ##输入描述: 8 |   输入包含多组数据。 9 |   每组数据第一行是两个整数 m 和 n(1≤m, n≤20)。紧接着 m 行,每行包括 n 个字符。每个字符表示一块瓷砖的颜色,规则如下:
10 |   1. “.”:黑色的瓷砖;
11 |   2. “#”:白色的瓷砖;
12 |   3. “@”:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个数据集合中唯一出现一次。 13 | 14 | 15 | ##输出描述: 16 |   对应每组数据,输出总共能够到达多少块黑色的瓷砖。 17 | 18 | ##输入例子: 19 | ``` 20 | 9 6 21 | ....#. 22 | .....# 23 | ...... 24 | ...... 25 | ...... 26 | ...... 27 | ...... 28 | #@...# 29 | .#..#. 30 | ``` 31 | 32 | ##输出例子: 33 | ``` 34 | 45 35 | ``` -------------------------------------------------------------------------------- /014-红与黑/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/014-红与黑/src/解题思路.docx -------------------------------------------------------------------------------- /014-红与黑/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/014-红与黑/src/解题思路.pdf -------------------------------------------------------------------------------- /015-走迷宫/015-走迷宫.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /015-走迷宫/readme.md: -------------------------------------------------------------------------------- 1 | #走迷宫 2 | 3 | ##题目描述 4 |   NowCoder最喜欢游乐场的迷宫游戏,他和小伙伴们比赛谁先走出迷宫。
5 |   现在把迷宫的地图给你,你能帮他算出最快走出迷宫需要多少步吗? 6 | 7 | ##输入描述: 8 |   输入包含多组数据。
9 |   每组数据包含一个10*10,由“#”和“.”组成的迷宫。其中“#”代表墙;“.”代表通路。
10 |   入口在第一行第二列;出口在最后一行第九列。
11 |   从任意一个“.”点都能一步走到上下左右四个方向的“.”点。 12 | 13 | ##输出描述: 14 |   对应每组数据,输出从入口到出口最短需要几步。 15 | 16 | ##输入例子: 17 | ``` 18 | #.######## 19 | #........# 20 | #........# 21 | #........# 22 | #........# 23 | #........# 24 | #........# 25 | #........# 26 | #........# 27 | ########.# 28 | 29 | #.######## 30 | #........# 31 | ########.# 32 | #........# 33 | #.######## 34 | #........# 35 | ########.# 36 | #........# 37 | #.######.# 38 | ########.# 39 | ``` 40 | 41 | ##输出例子: 42 | ``` 43 | 16 44 | 30 45 | ``` -------------------------------------------------------------------------------- /015-走迷宫/src/data.txt: -------------------------------------------------------------------------------- 1 | #.######## 2 | #........# 3 | #........# 4 | #........# 5 | #........# 6 | #........# 7 | #........# 8 | #........# 9 | #........# 10 | ########.# 11 | #.######## 12 | #........# 13 | ########.# 14 | #........# 15 | #.######## 16 | #........# 17 | ########.# 18 | #........# 19 | #.######.# 20 | ########.# -------------------------------------------------------------------------------- /015-走迷宫/src/readme.md: -------------------------------------------------------------------------------- 1 | #走迷宫 2 | 3 | ##题目描述 4 |   NowCoder最喜欢游乐场的迷宫游戏,他和小伙伴们比赛谁先走出迷宫。
5 |   现在把迷宫的地图给你,你能帮他算出最快走出迷宫需要多少步吗? 6 | 7 | ##输入描述: 8 |   输入包含多组数据。
9 |   每组数据包含一个10*10,由“#”和“.”组成的迷宫。其中“#”代表墙;“.”代表通路。
10 |   入口在第一行第二列;出口在最后一行第九列。
11 |   从任意一个“.”点都能一步走到上下左右四个方向的“.”点。 12 | 13 | ##输出描述: 14 |   对应每组数据,输出从入口到出口最短需要几步。 15 | 16 | ##输入例子: 17 | ``` 18 | #.######## 19 | #........# 20 | #........# 21 | #........# 22 | #........# 23 | #........# 24 | #........# 25 | #........# 26 | #........# 27 | ########.# 28 | 29 | #.######## 30 | #........# 31 | ########.# 32 | #........# 33 | #.######## 34 | #........# 35 | ########.# 36 | #........# 37 | #.######.# 38 | ########.# 39 | ``` 40 | 41 | ##输出例子: 42 | ``` 43 | 16 44 | 30 45 | ``` -------------------------------------------------------------------------------- /015-走迷宫/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/015-走迷宫/src/解题思路.docx -------------------------------------------------------------------------------- /015-走迷宫/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/015-走迷宫/src/解题思路.pdf -------------------------------------------------------------------------------- /016-过年回家/016-过年回家.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /016-过年回家/readme.md: -------------------------------------------------------------------------------- 1 | #过年回家 2 | 3 | ##题目描述 4 |   NowCoder今年买了一辆新车,他决定自己开车回家过年。回家过程中要经过n个大小收费站,每个收费站的费用不同,
5 |   你能帮他计算一下最少需要给多少过路费吗? 6 | 7 | ##输入描述: 8 |   输入包含多组数据,每组数据第一行包含两个正整数m(1≤m≤500)和n(1≤n≤30),其中n表示有n个收费站,
9 |   编号依次为1、2、…、n。出发地的编号为0,终点的编号为n,即需要从0到n。
10 |   紧接着m行,每行包含三个整数f、t、c,(0≤f, t≤n; 1≤c≤10),分别表示从编号为f的地方开到t,需要交c元的过路费。 11 | 12 | 13 | ##输出描述: 14 |   对应每组数据,请输出至少需要交多少过路费。
15 | 16 | ##输入例子: 17 | ``` 18 | 8 4 19 | 0 1 10 20 | 0 2 5 21 | 1 2 2 22 | 1 3 1 23 | 2 1 3 24 | 2 3 9 25 | 2 4 2 26 | 3 4 4 27 | ``` 28 | ##输出例子: 29 | ``` 30 | 7 31 | ``` -------------------------------------------------------------------------------- /016-过年回家/src/data.txt: -------------------------------------------------------------------------------- 1 | 8 4 2 | 0 1 10 3 | 0 2 5 4 | 1 2 2 5 | 1 3 1 6 | 2 1 3 7 | 2 3 9 8 | 2 4 2 9 | 3 4 4 -------------------------------------------------------------------------------- /016-过年回家/src/readme.md: -------------------------------------------------------------------------------- 1 | #过年回家 2 | 3 | ##题目描述 4 |   NowCoder今年买了一辆新车,他决定自己开车回家过年。回家过程中要经过n个大小收费站,每个收费站的费用不同,
5 |   你能帮他计算一下最少需要给多少过路费吗? 6 | 7 | ##输入描述: 8 |   输入包含多组数据,每组数据第一行包含两个正整数m(1≤m≤500)和n(1≤n≤30),其中n表示有n个收费站,
9 |   编号依次为1、2、…、n。出发地的编号为0,终点的编号为n,即需要从0到n。
10 |   紧接着m行,每行包含三个整数f、t、c,(0≤f, t≤n; 1≤c≤10),分别表示从编号为f的地方开到t,需要交c元的过路费。 11 | 12 | 13 | ##输出描述: 14 |   对应每组数据,请输出至少需要交多少过路费。
15 | 16 | ##输入例子: 17 | ``` 18 | 8 4 19 | 0 1 10 20 | 0 2 5 21 | 1 2 2 22 | 1 3 1 23 | 2 1 3 24 | 2 3 9 25 | 2 4 2 26 | 3 4 4 27 | ``` 28 | ##输出例子: 29 | ``` 30 | 7 31 | ``` -------------------------------------------------------------------------------- /016-过年回家/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/016-过年回家/src/解题思路.docx -------------------------------------------------------------------------------- /016-过年回家/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/016-过年回家/src/解题思路.pdf -------------------------------------------------------------------------------- /017-Emacs计算器/017-Emacs计算器.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /017-Emacs计算器/readme.md: -------------------------------------------------------------------------------- 1 | #Emacs计算器 2 | 3 | ##题目描述 4 |   Emacs号称神的编辑器,它自带了一个计算器。与其他计算器不同,它是基于后缀表达式的,即运算符在操作数的后面。例如“2 3 +”等价于中缀表达式的“2 + 3”。
5 |   请你实现一个后缀表达式的计算器。 6 | 7 | ##输入描述: 8 |   输入包含多组数据。
9 |   每组数据包括两行:第一行是一个正整数n (3≤n≤50);紧接着第二行包含n个由数值和运算符组成的列表。
10 |   “+-*/”分别为加减乘除四则运算,其中除法为整除,即“5/3=1”。 11 | 12 | ##输出描述: 13 |   对应每一组数据,输出它们的运算结果。 14 | 15 | ##输入例子: 16 | ``` 17 | 3 18 | 2 3 + 19 | 5 20 | 2 2 + 3 * 21 | 5 22 | 2 2 3 + * 23 | ``` 24 | 25 | ##输出例子: 26 | ``` 27 | 5 28 | 12 29 | 10 30 | ``` -------------------------------------------------------------------------------- /017-Emacs计算器/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 2 | 2 3 + 3 | 5 4 | 2 2 + 3 * 5 | 5 6 | 2 2 3 + * -------------------------------------------------------------------------------- /017-Emacs计算器/src/readme.md: -------------------------------------------------------------------------------- 1 | #Emacs计算器 2 | 3 | ##题目描述 4 |   Emacs号称神的编辑器,它自带了一个计算器。与其他计算器不同,它是基于后缀表达式的,即运算符在操作数的后面。例如“2 3 +”等价于中缀表达式的“2 + 3”。
5 |   请你实现一个后缀表达式的计算器。 6 | 7 | ##输入描述: 8 |   输入包含多组数据。
9 |   每组数据包括两行:第一行是一个正整数n (3≤n≤50);紧接着第二行包含n个由数值和运算符组成的列表。
10 |   “+-*/”分别为加减乘除四则运算,其中除法为整除,即“5/3=1”。 11 | 12 | ##输出描述: 13 |   对应每一组数据,输出它们的运算结果。 14 | 15 | ##输入例子: 16 | ``` 17 | 3 18 | 2 3 + 19 | 5 20 | 2 2 + 3 * 21 | 5 22 | 2 2 3 + * 23 | ``` 24 | 25 | ##输出例子: 26 | ``` 27 | 5 28 | 12 29 | 10 30 | ``` -------------------------------------------------------------------------------- /017-Emacs计算器/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/017-Emacs计算器/src/解题思路.docx -------------------------------------------------------------------------------- /017-Emacs计算器/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/017-Emacs计算器/src/解题思路.pdf -------------------------------------------------------------------------------- /018-不喜欢括号/018-不喜欢括号.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /018-不喜欢括号/readme.md: -------------------------------------------------------------------------------- 1 | #不喜欢括号 2 | 3 | ##题目描述 4 | NowCoder从小就喜欢数学,喜欢在笔记里记录很多表达式。它觉得现在的表达式写法很麻烦, 5 | 为了提高运算符优先级,不得不添加很多括号,不小心漏了一个右括号的话差之毫厘谬之千里。 6 | 因此他改用前缀表达式,例如`(2 + 3) * 4`写成`* + 2 3 4`,这样就能避免使用括号了。 7 | 这样的表达式书写简单,但计算却不够直观。请你写一个程序帮他计算这些前缀表达式吧。 8 | 9 | ##输入描述: 10 | 输入包含多组数据,每组数据包含两行。 11 | 第一行为正整数n(3≤n≤50),紧接着第二行包含n个由数值和运算符组成的列表。 12 | “+-*/”分别为加减乘除四则运算,其中除法为整除,即“5/3=1”。 13 | 14 | ##输出描述: 15 | 对应每一组数据,输出它们的运算结果。 16 | 17 | #输入例子: 18 | 3 19 | + 2 3 20 | 5 21 | * + 2 2 3 22 | 5 23 | * 2 + 2 3 24 | 25 | ##输出例子: 26 | 5 27 | 12 28 | 10 -------------------------------------------------------------------------------- /018-不喜欢括号/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 2 | + 2 3 3 | 5 4 | * + 2 2 3 5 | 5 6 | * 2 + 2 3 -------------------------------------------------------------------------------- /018-不喜欢括号/src/readme.md: -------------------------------------------------------------------------------- 1 | #不喜欢括号 2 | 3 | ##题目描述 4 | NowCoder从小就喜欢数学,喜欢在笔记里记录很多表达式。它觉得现在的表达式写法很麻烦, 5 | 为了提高运算符优先级,不得不添加很多括号,不小心漏了一个右括号的话差之毫厘谬之千里。 6 | 因此他改用前缀表达式,例如`(2 + 3) * 4`写成`* + 2 3 4`,这样就能避免使用括号了。 7 | 这样的表达式书写简单,但计算却不够直观。请你写一个程序帮他计算这些前缀表达式吧。 8 | 9 | ##输入描述: 10 | 输入包含多组数据,每组数据包含两行。 11 | 第一行为正整数n(3≤n≤50),紧接着第二行包含n个由数值和运算符组成的列表。 12 | “+-*/”分别为加减乘除四则运算,其中除法为整除,即“5/3=1”。 13 | 14 | ##输出描述: 15 | 对应每一组数据,输出它们的运算结果。 16 | 17 | #输入例子: 18 | 3 19 | + 2 3 20 | 5 21 | * + 2 2 3 22 | 5 23 | * 2 + 2 3 24 | 25 | ##输出例子: 26 | 5 27 | 12 28 | 10 -------------------------------------------------------------------------------- /018-不喜欢括号/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/018-不喜欢括号/src/解题思路.docx -------------------------------------------------------------------------------- /018-不喜欢括号/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/018-不喜欢括号/src/解题思路.pdf -------------------------------------------------------------------------------- /019-一笔画/019-一笔画.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /019-一笔画/readme.md: -------------------------------------------------------------------------------- 1 | #一笔画 2 | 3 | ##题目描述 4 |   咱们来玩一笔画游戏吧,规则是这样的:有一个连通的图,能否找到一个恰好包含了所有的边,并且没有重复的路径。 5 | 6 | ##输入描述: 7 |   输入包含多组数据。
8 |   每组数据的第一行包含两个整数n和m (2≤n, m≤1000),其中n是顶点的个数,m是边的条数。
9 |   紧接着有m行,每行包含两个整数from和to (1 ≤ from, to ≤ n, from != to),分别代表边的两端顶点。
10 |   边是双向的,并且两个顶点之间可能不止一条边。 11 | 12 | 13 | ##输出描述: 14 |   对应每一组输入,如果能一笔画则输出“Yes”;否则输出“No”。 15 | 16 | ##输入例子: 17 | ``` 18 | 3 3 19 | 1 2 20 | 2 3 21 | 1 3 22 | 4 7 23 | 1 2 24 | 2 1 25 | 1 3 26 | 1 4 27 | 1 4 28 | 2 3 29 | 4 3 30 | ``` 31 | 32 | ##输出例子: 33 | ``` 34 | Yes 35 | No 36 | ``` -------------------------------------------------------------------------------- /019-一笔画/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 3 2 | 1 2 3 | 2 3 4 | 3 1 5 | 4 7 6 | 1 2 7 | 2 1 8 | 1 3 9 | 1 4 10 | 1 4 11 | 2 3 12 | 4 3 -------------------------------------------------------------------------------- /019-一笔画/src/data2.txt: -------------------------------------------------------------------------------- 1 | 3 3 2 | 1 2 3 | 2 3 4 | 1 3 5 | 2 1 6 | 1 2 -------------------------------------------------------------------------------- /019-一笔画/src/data3.txt: -------------------------------------------------------------------------------- 1 | 4 8 2 | 1 2 3 | 2 1 4 | 2 3 5 | 3 2 6 | 3 4 7 | 4 3 8 | 4 1 9 | 1 4 10 | 5 9 11 | 1 2 12 | 2 3 13 | 3 4 14 | 4 5 15 | 5 1 16 | 1 3 17 | 1 4 18 | 2 4 19 | 3 5 -------------------------------------------------------------------------------- /019-一笔画/src/data4.txt: -------------------------------------------------------------------------------- 1 | 2 3 2 | 1 2 3 | 1 2 4 | 1 2 -------------------------------------------------------------------------------- /019-一笔画/src/readme.md: -------------------------------------------------------------------------------- 1 | #一笔画 2 | 3 | ##题目描述 4 |   咱们来玩一笔画游戏吧,规则是这样的:有一个连通的图,能否找到一个恰好包含了所有的边,并且没有重复的路径。 5 | 6 | ##输入描述: 7 |   输入包含多组数据。
8 |   每组数据的第一行包含两个整数n和m (2≤n, m≤1000),其中n是顶点的个数,m是边的条数。
9 |   紧接着有m行,每行包含两个整数from和to (1 ≤ from, to ≤ n, from != to),分别代表边的两端顶点。
10 |   边是双向的,并且两个顶点之间可能不止一条边。 11 | 12 | 13 | ##输出描述: 14 |   对应每一组输入,如果能一笔画则输出“Yes”;否则输出“No”。 15 | 16 | ##输入例子: 17 | ``` 18 | 3 3 19 | 1 2 20 | 2 3 21 | 1 3 22 | 4 7 23 | 1 2 24 | 2 1 25 | 1 3 26 | 1 4 27 | 1 4 28 | 2 3 29 | 4 3 30 | ``` 31 | 32 | ##输出例子: 33 | ``` 34 | Yes 35 | No 36 | ``` -------------------------------------------------------------------------------- /019-一笔画/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/019-一笔画/src/解题思路.docx -------------------------------------------------------------------------------- /019-一笔画/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/019-一笔画/src/解题思路.pdf -------------------------------------------------------------------------------- /020-小世界现象/020-小世界现象.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /020-小世界现象/readme.md: -------------------------------------------------------------------------------- 1 | #小世界现象 2 | 3 | ##题目描述 4 |   小世界现象(又称小世界效应),也称六度分隔理论(英文:Six Degrees of Separation)。
5 |   假设世界上所有互不相识的人只需要很少中间人就能建立起联系。后来1967年哈佛大学的心理学教授斯坦利·米尔格拉姆根据这概念做过一次连锁信实验,尝试证明平均只需要5个中间人就可以联系任何两个互不相识的美国人。
6 |   NowCoder最近获得了社交网站Footbook的好友关系资料,请你帮忙分析一下某两个用户之间至少需要几个中间人才能建立联系? 7 | 8 | ##输入描述: 9 |   输入第一行是一个整数t,表示紧接着有t组数据。
10 |   每组数据包含两部分:第一部分是好友关系资料;第二部分是待分析的用户数据。
11 |   好友资料部分第一行包含一个整数n (5≤n≤50),表示有n个用户,用户id用1->n表示。
12 |   紧接着是一个只包含0和1的n×n矩阵,其中第y行第x列的值表示id是y的用户是否是id为x的用户的好友(1代表是,0代表不是)。假设好友关系是相互的,即A是B的好友意味着B也是A的好友。
13 |   待分析的用户数据第一行包含一个整数m,紧接着有m行用户组数据。
14 |   每组有两个用户ID,A和B (1≤A, B≤n; A != B)。
15 | 16 | ##输出描述: 17 |   对于每组待分析的用户,输出用户A至少需要通过几个中间人才能认识用户B。
18 |   如果A无论如何也无法认识B,输出“Sorry”。 19 | 20 | ##输入例子: 21 | ``` 22 | 2 23 | 5 24 | 1 0 1 0 1 25 | 0 1 1 1 0 26 | 1 1 1 0 0 27 | 0 1 0 1 0 28 | 1 0 0 0 1 29 | 3 30 | 1 2 31 | 2 4 32 | 3 5 33 | 6 34 | 1 1 0 0 1 0 35 | 1 1 0 1 0 1 36 | 0 0 1 0 0 1 37 | 0 1 0 1 0 1 38 | 1 0 0 0 1 0 39 | 0 1 1 1 0 1 40 | 4 41 | 2 3 42 | 3 6 43 | 5 1 44 | 4 2 45 | ``` 46 | 47 | ##输出例子: 48 | ``` 49 | 1 50 | 0 51 | 1 52 | 1 53 | 0 54 | 0 55 | 0 56 | ``` -------------------------------------------------------------------------------- /020-小世界现象/src/data.txt: -------------------------------------------------------------------------------- 1 | 2 2 | 5 3 | 1 0 1 0 1 4 | 0 1 1 1 0 5 | 1 1 1 0 0 6 | 0 1 0 1 0 7 | 1 0 0 0 1 8 | 3 9 | 1 2 10 | 2 4 11 | 3 5 12 | 6 13 | 1 1 0 0 1 0 14 | 1 1 0 1 0 1 15 | 0 0 1 0 0 1 16 | 0 1 0 1 0 1 17 | 1 0 0 0 1 0 18 | 0 1 1 1 0 1 19 | 4 20 | 2 3 21 | 3 6 22 | 5 1 23 | 4 2 -------------------------------------------------------------------------------- /020-小世界现象/src/data2.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 6 3 | 1 1 0 0 1 0 4 | 1 1 0 1 0 1 5 | 0 0 1 0 0 1 6 | 0 1 0 1 0 1 7 | 1 0 0 0 1 0 8 | 0 1 1 1 0 1 9 | 4 10 | 2 3 11 | 3 6 12 | 5 1 13 | 4 2 -------------------------------------------------------------------------------- /020-小世界现象/src/data3.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 5 3 | 1 0 0 0 1 4 | 0 1 0 1 0 5 | 0 0 1 0 0 6 | 0 1 0 1 0 7 | 1 0 0 0 1 8 | 20 9 | 1 2 10 | 1 3 11 | 1 4 12 | 1 5 13 | 2 1 14 | 2 3 15 | 2 4 16 | 2 5 17 | 3 1 18 | 3 2 19 | 3 4 20 | 3 5 21 | 4 1 22 | 4 2 23 | 4 3 24 | 4 5 25 | 5 1 26 | 5 2 27 | 5 3 28 | 5 4 -------------------------------------------------------------------------------- /020-小世界现象/src/readme.md: -------------------------------------------------------------------------------- 1 | #小世界现象 2 | 3 | ##题目描述 4 |   小世界现象(又称小世界效应),也称六度分隔理论(英文:Six Degrees of Separation)。
5 |   假设世界上所有互不相识的人只需要很少中间人就能建立起联系。后来1967年哈佛大学的心理学教授斯坦利·米尔格拉姆根据这概念做过一次连锁信实验,尝试证明平均只需要5个中间人就可以联系任何两个互不相识的美国人。
6 |   NowCoder最近获得了社交网站Footbook的好友关系资料,请你帮忙分析一下某两个用户之间至少需要几个中间人才能建立联系? 7 | 8 | ##输入描述: 9 |   输入第一行是一个整数t,表示紧接着有t组数据。
10 |   每组数据包含两部分:第一部分是好友关系资料;第二部分是待分析的用户数据。
11 |   好友资料部分第一行包含一个整数n (5≤n≤50),表示有n个用户,用户id用1->n表示。
12 |   紧接着是一个只包含0和1的n×n矩阵,其中第y行第x列的值表示id是y的用户是否是id为x的用户的好友(1代表是,0代表不是)。假设好友关系是相互的,即A是B的好友意味着B也是A的好友。
13 |   待分析的用户数据第一行包含一个整数m,紧接着有m行用户组数据。
14 |   每组有两个用户ID,A和B (1≤A, B≤n; A != B)。
15 | 16 | ##输出描述: 17 |   对于每组待分析的用户,输出用户A至少需要通过几个中间人才能认识用户B。
18 |   如果A无论如何也无法认识B,输出“Sorry”。 19 | 20 | ##输入例子: 21 | ``` 22 | 2 23 | 5 24 | 1 0 1 0 1 25 | 0 1 1 1 0 26 | 1 1 1 0 0 27 | 0 1 0 1 0 28 | 1 0 0 0 1 29 | 3 30 | 1 2 31 | 2 4 32 | 3 5 33 | 6 34 | 1 1 0 0 1 0 35 | 1 1 0 1 0 1 36 | 0 0 1 0 0 1 37 | 0 1 0 1 0 1 38 | 1 0 0 0 1 0 39 | 0 1 1 1 0 1 40 | 4 41 | 2 3 42 | 3 6 43 | 5 1 44 | 4 2 45 | ``` 46 | 47 | ##输出例子: 48 | ``` 49 | 1 50 | 0 51 | 1 52 | 1 53 | 0 54 | 0 55 | 0 56 | ``` -------------------------------------------------------------------------------- /020-小世界现象/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/020-小世界现象/src/解题思路.docx -------------------------------------------------------------------------------- /020-小世界现象/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/020-小世界现象/src/解题思路.pdf -------------------------------------------------------------------------------- /021-数据库连接池/021-数据库连接池.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /021-数据库连接池/readme.md: -------------------------------------------------------------------------------- 1 | #数据库连接池 2 | 3 | ##题目描述 4 | 5 | Web系统通常会频繁地访问数据库,如果每次访问都创建新连接,性能会很差。为了提高性能,架构师决定复用已经创建的连接。 6 | 当收到请求,并且连接池中没有剩余可用的连接时,系统会创建一个新连接,当请求处理完成时该连接会被放入连接池中,供后 7 | 续请求使用。 现在提供你处理请求的日志,请你分析一下连接池最多需要创建多少个连接。 8 | 9 | ##输入描述: 10 | 输入包含多组数据,每组数据第一行包含一个正整数n(1≤n≤1000),表示请求的数量。 11 | 紧接着n行,每行包含一个请求编号id(A、B、C……、Z)和操作(connect或disconnect)。 12 | 13 | ##输出描述: 14 | 对应每一组数据,输出连接池最多需要创建多少个连接。 15 | 16 | ##输入例子: 17 | 6 18 | A connect 19 | A disconnect 20 | B connect 21 | C connect 22 | B disconnect 23 | C disconnect 24 | 25 | ##输出例子: 26 | 2 -------------------------------------------------------------------------------- /021-数据库连接池/src/data.txt: -------------------------------------------------------------------------------- 1 | 6 2 | A connect 3 | A disconnect 4 | B connect 5 | C connect 6 | B disconnect 7 | C disconnect -------------------------------------------------------------------------------- /021-数据库连接池/src/readme.md: -------------------------------------------------------------------------------- 1 | #数据库连接池 2 | 3 | ##题目描述 4 | 5 | Web系统通常会频繁地访问数据库,如果每次访问都创建新连接,性能会很差。为了提高性能,架构师决定复用已经创建的连接。 6 | 当收到请求,并且连接池中没有剩余可用的连接时,系统会创建一个新连接,当请求处理完成时该连接会被放入连接池中,供后 7 | 续请求使用。 现在提供你处理请求的日志,请你分析一下连接池最多需要创建多少个连接。 8 | 9 | ##输入描述: 10 | 输入包含多组数据,每组数据第一行包含一个正整数n(1≤n≤1000),表示请求的数量。 11 | 紧接着n行,每行包含一个请求编号id(A、B、C……、Z)和操作(connect或disconnect)。 12 | 13 | ##输出描述: 14 | 对应每一组数据,输出连接池最多需要创建多少个连接。 15 | 16 | ##输入例子: 17 | 6 18 | A connect 19 | A disconnect 20 | B connect 21 | C connect 22 | B disconnect 23 | C disconnect 24 | 25 | ##输出例子: 26 | 2 -------------------------------------------------------------------------------- /021-数据库连接池/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/021-数据库连接池/src/解题思路.docx -------------------------------------------------------------------------------- /021-数据库连接池/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/021-数据库连接池/src/解题思路.pdf -------------------------------------------------------------------------------- /022-网页浏览历史/022-网页浏览历史.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /022-网页浏览历史/src/data.txt: -------------------------------------------------------------------------------- 1 | 13 2 | VISIT http://www.acm.org/ 3 | VISIT http://acm.ashland.edu/ 4 | VISIT http://acm.baylor.edu/acmicpc/ 5 | BACK 6 | BACK 7 | BACK 8 | FORWARD 9 | VISIT http://www.ibm.com/ 10 | BACK 11 | BACK 12 | FORWARD 13 | FORWARD 14 | FORWARD -------------------------------------------------------------------------------- /022-网页浏览历史/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/022-网页浏览历史/src/解题思路.docx -------------------------------------------------------------------------------- /022-网页浏览历史/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/022-网页浏览历史/src/解题思路.pdf -------------------------------------------------------------------------------- /023-换零钱/023-换零钱.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /023-换零钱/readme.md: -------------------------------------------------------------------------------- 1 | #换零钱 2 | 3 | ##题目描述 4 |   考虑仅用1分、5分、10分、25分和50分这5种硬币支付某一个给定的金额。
5 |   例如需要支付11分钱,有一个1分和一个10分、一个1分和一个5分、六个1分和一个5分、十一个1分这4种方式。
6 |   请写一个程序,计算一个给定的金额有几种支付方式。
7 |   注:假定支付0元有1种方式。 8 | 9 | ##输入描述: 10 |   输入包含多组数据。
11 |   每组数据包含一个正整数n(1≤n≤10000),即需要支付的金额。 12 | 13 | ##输出描述: 14 |   对应每一组数据,输出一个正整数,表示替换方式的种数。 15 | 16 | ##输入例子: 17 | ``` 18 | 11 19 | 26 20 | ``` 21 | 22 | ##输出例子: 23 | ``` 24 | 4 25 | 13 26 | ``` -------------------------------------------------------------------------------- /023-换零钱/src/data.txt: -------------------------------------------------------------------------------- 1 | 11 2 | 26 3 | 9001 -------------------------------------------------------------------------------- /023-换零钱/src/readme.md: -------------------------------------------------------------------------------- 1 | #换零钱 2 | 3 | ##题目描述 4 |   考虑仅用1分、5分、10分、25分和50分这5种硬币支付某一个给定的金额。
5 |   例如需要支付11分钱,有一个1分和一个10分、一个1分和一个5分、六个1分和一个5分、十一个1分这4种方式。
6 |   请写一个程序,计算一个给定的金额有几种支付方式。
7 |   注:假定支付0元有1种方式。 8 | 9 | ##输入描述: 10 |   输入包含多组数据。
11 |   每组数据包含一个正整数n(1≤n≤10000),即需要支付的金额。 12 | 13 | ##输出描述: 14 |   对应每一组数据,输出一个正整数,表示替换方式的种数。 15 | 16 | ##输入例子: 17 | ``` 18 | 11 19 | 26 20 | ``` 21 | 22 | ##输出例子: 23 | ``` 24 | 4 25 | 13 26 | ``` -------------------------------------------------------------------------------- /023-换零钱/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/023-换零钱/src/解题思路.docx -------------------------------------------------------------------------------- /023-换零钱/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/023-换零钱/src/解题思路.pdf -------------------------------------------------------------------------------- /024-放苹果/024-放苹果.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /024-放苹果/readme.md: -------------------------------------------------------------------------------- 1 | #放苹果 2 | 3 | ##题目描述 4 |   把 M 个同样的苹果放在 N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?
5 |   注意:5、1、1 和 1、5、1 是同一种分法,即顺序无关。 6 | 7 | ##输入描述: 8 |   输入包含多组数据。
9 |   每组数据包含两个正整数 m和n(1≤m, n≤20)。 10 | 11 | 12 | ##输出描述: 13 |   对应每组数据,输出一个整数k,表示有k种不同的分法。 14 | 15 | ##输入例子: 16 | ``` 17 | 7 3 18 | ``` 19 | 20 | ##输出例子: 21 | ``` 22 | 8 23 | ``` -------------------------------------------------------------------------------- /024-放苹果/src/data.txt: -------------------------------------------------------------------------------- 1 | 7 3 -------------------------------------------------------------------------------- /024-放苹果/src/readme.md: -------------------------------------------------------------------------------- 1 | #放苹果 2 | 3 | ##题目描述 4 |   把 M 个同样的苹果放在 N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?
5 |   注意:5、1、1 和 1、5、1 是同一种分法,即顺序无关。 6 | 7 | ##输入描述: 8 |   输入包含多组数据。
9 |   每组数据包含两个正整数 m和n(1≤m, n≤20)。 10 | 11 | 12 | ##输出描述: 13 |   对应每组数据,输出一个整数k,表示有k种不同的分法。 14 | 15 | ##输入例子: 16 | ``` 17 | 7 3 18 | ``` 19 | 20 | ##输出例子: 21 | ``` 22 | 8 23 | ``` -------------------------------------------------------------------------------- /024-放苹果/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/024-放苹果/src/解题思路.docx -------------------------------------------------------------------------------- /024-放苹果/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/024-放苹果/src/解题思路.pdf -------------------------------------------------------------------------------- /025-数字三角形/025-数字三角形.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /025-数字三角形/readme.md: -------------------------------------------------------------------------------- 1 | #数字三角形 2 | 3 | ##题目描述 4 | 7 5 | 3 8 6 | 8 1 0 7 | 2 7 4 4 8 | 4 5 2 6 5 9 | 如上图所示,从一个数字三角形的顶部走到底部有很多条不同的路径,规则是只能从当前节点走到下一层相邻的节点, 10 | 即下一层的左边或右边。例如第三行第二个数字“1”只能走到第四行的第二个数字“7”与第三个数字“4”。 11 | 请寻找最佳一条路径,使得这条路径上节点的数字总和最大。 12 | 13 | ##输入描述: 14 | 输入包含多组。每组数据的第一行包含一个正整数n(1≤n≤100),代表三角形的层数。 15 | 紧接着有n行数字,第i(1≤i≤n)行包含i个自然数。 16 | 17 | 18 | ##输出描述: 19 | 对应每组数据,输出最大的和。 20 | 21 | ##输入例子: 22 | 5 23 | 7 24 | 3 8 25 | 8 1 0 26 | 2 7 4 4 27 | 4 5 2 6 5 28 | 29 | ##输出例子: 30 | 30 -------------------------------------------------------------------------------- /025-数字三角形/src/data.txt: -------------------------------------------------------------------------------- 1 | 5 2 | 7 3 | 3 8 4 | 8 1 0 5 | 2 7 4 4 6 | 4 5 2 6 5 -------------------------------------------------------------------------------- /025-数字三角形/src/readme.md: -------------------------------------------------------------------------------- 1 | #数字三角形 2 | 3 | ##题目描述 4 | ``` 5 | 7 6 | 3 8 7 | 8 1 0 8 | 2 7 4 4 9 | 4 5 2 6 5 10 | ``` 11 |   如上图所示,从一个数字三角形的顶部走到底部有很多条不同的路径,规则是只能从当前节点走到下一层相邻的节点,即下一层的左边或右边。例如第三行第二个数字“1”只能走到第四行的第二个数字“7”与第三个数字“4”。 12 |   请寻找最佳一条路径,使得这条路径上节点的数字总和最大。
13 | 14 | ##输入描述: 15 |   输入包含多组。每组数据的第一行包含一个正整数n(1≤n≤100),代表三角形的层数。
16 |   紧接着有n行数字,第i(1≤i≤n)行包含i个自然数。 17 | 18 | 19 | ##输出描述: 20 |   对应每组数据,输出最大的和。 21 | 22 | ##输入例子: 23 | ``` 24 | 5 25 | 7 26 | 3 8 27 | 8 1 0 28 | 2 7 4 4 29 | 4 5 2 6 5 30 | ``` 31 | 32 | ##输出例子: 33 | ``` 34 | 30 35 | ``` -------------------------------------------------------------------------------- /025-数字三角形/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/025-数字三角形/src/解题思路.docx -------------------------------------------------------------------------------- /025-数字三角形/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/025-数字三角形/src/解题思路.pdf -------------------------------------------------------------------------------- /026-是男人就下100层/026-是男人就下100层.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /026-是男人就下100层/readme.md: -------------------------------------------------------------------------------- 1 | #是男人就下100层 2 | 3 | ##题目描述 4 |   相信大家都听说过“是男人就下100层”系列游戏,游戏中包括多个长度和高度各不相同的平台,地面是最低的平台,高度为零,长度无限。
5 |   一个男人在开始的时候从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当他落到某个平台上时,游戏者选择让他向左或向右跑,跑动的速度也是1米/秒。当他跑到平台的边缘时会继续下落。要求每次下落的高度不能超过MAX米,不然就会摔死,游戏也会结束。
6 |   请帮忙设计一个程序,计算最快到达地面所用的时间。
7 | 8 | ##输入描述: 9 |   输入包含多组数据。
10 |   每组测试数据的第一行是四个整数N、X、Y、MAX,用空格分隔。N是平台的数目(不包括地面),X和Y是游戏开始时男人所在位置的坐标,MAX是一次下落的最大高度。
11 |   紧接着有N行,每行描述一个平台的信息,包括三个整数,X1[i],X2[i]和H[i]。H[i]表示平台的高度,X1[i]和X2[i]表示平台左右端点的横坐标。
12 |   1 ≤ N ≤ 1000;-20000 ≤ X, X1[i], X2[i] ≤ 20000;1 ≤ H[i] < Y ≤ 20000(1≤i≤N)。所有坐标的单位都是米。
13 |   平台的厚度忽略不计,如果恰好落在某个平台的边缘,被视为落在平台上。所有的平台均不重叠或相连。测试数据保证问题一定有解。
14 | 15 | ##输出描述: 16 |   对应每一组输入,输出一个整数,为到达地面最早的时间。 17 | 18 | ##输入例子: 19 | ``` 20 | 3 8 17 20 21 | 0 10 8 22 | 0 10 13 23 | 4 14 3 24 | ``` 25 | 26 | ##输出例子: 27 | ``` 28 | 23 29 | ``` 30 | -------------------------------------------------------------------------------- /026-是男人就下100层/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 8 17 20 2 | 0 10 8 3 | 0 10 13 4 | 4 14 3 5 | 9 0 10 1 6 | 0 1 1 7 | 0 1 2 8 | 0 1 3 9 | 0 1 4 10 | 0 1 5 11 | 0 1 6 12 | 0 1 7 13 | 0 1 8 14 | 0 1 9 -------------------------------------------------------------------------------- /026-是男人就下100层/src/data2.txt: -------------------------------------------------------------------------------- 1 | 9 0 10 1 2 | 0 1 1 3 | 0 1 2 4 | 0 1 3 5 | 0 1 4 6 | 0 1 5 7 | 0 1 6 8 | 0 1 7 9 | 0 1 8 10 | 0 1 9 -------------------------------------------------------------------------------- /026-是男人就下100层/src/data3.txt: -------------------------------------------------------------------------------- 1 | 9 0 10 1 2 | -1 1 9 3 | 0 2 8 4 | 1 3 7 5 | 2 4 6 6 | 3 5 5 7 | 4 6 4 8 | 5 7 3 9 | 6 8 2 10 | 7 9 1 -------------------------------------------------------------------------------- /026-是男人就下100层/src/readme.md: -------------------------------------------------------------------------------- 1 | #是男人就下100层 2 | 3 | ##题目描述 4 |   相信大家都听说过“是男人就下100层”系列游戏,游戏中包括多个长度和高度各不相同的平台,地面是最低的平台,高度为零,长度无限。
5 |   一个男人在开始的时候从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当他落到某个平台上时,游戏者选择让他向左或向右跑,跑动的速度也是1米/秒。当他跑到平台的边缘时会继续下落。要求每次下落的高度不能超过MAX米,不然就会摔死,游戏也会结束。
6 |   请帮忙设计一个程序,计算最快到达地面所用的时间。
7 | 8 | ##输入描述: 9 |   输入包含多组数据。
10 |   每组测试数据的第一行是四个整数N、X、Y、MAX,用空格分隔。N是平台的数目(不包括地面),X和Y是游戏开始时男人所在位置的坐标,MAX是一次下落的最大高度。
11 |   紧接着有N行,每行描述一个平台的信息,包括三个整数,X1[i],X2[i]和H[i]。H[i]表示平台的高度,X1[i]和X2[i]表示平台左右端点的横坐标。
12 |   1 ≤ N ≤ 1000;-20000 ≤ X, X1[i], X2[i] ≤ 20000;1 ≤ H[i] < Y ≤ 20000(1≤i≤N)。所有坐标的单位都是米。
13 |   平台的厚度忽略不计,如果恰好落在某个平台的边缘,被视为落在平台上。所有的平台均不重叠或相连。测试数据保证问题一定有解。
14 | 15 | ##输出描述: 16 |   对应每一组输入,输出一个整数,为到达地面最早的时间。 17 | 18 | ##输入例子: 19 | ``` 20 | 3 8 17 20 21 | 0 10 8 22 | 0 10 13 23 | 4 14 3 24 | ``` 25 | 26 | ##输出例子: 27 | ``` 28 | 23 29 | ``` 30 | -------------------------------------------------------------------------------- /026-是男人就下100层/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/026-是男人就下100层/src/解题思路.docx -------------------------------------------------------------------------------- /027-最短编辑距离/027-最短编辑距离.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /027-最短编辑距离/readme.md: -------------------------------------------------------------------------------- 1 | #最短编辑距离 2 | 3 | ##题目描述 4 | UNIX系统下有一个行编辑器ed,它每次只对一行文本做删除一个字符、插入一个字符或替换一个字符三种操作。 5 | 例如某一行的内容是“ABC”,经过把第二个字符替换成“D”、删除第一个字符、末尾插入一个字符“B”,这三步 6 | 操作后,内容就变成了“DCB”。即“ABC”变成“DCB”需要经过3步操作,我们称它们的编辑距离为3。 7 | 8 | 现在给你两个任意字符串(不包含空格),请帮忙计算它们的最短编辑距离。 9 | 10 | ##输入描述: 11 | 输入包含多组数据。 12 | 13 | ##每组数据包含两个字符串m和n,它们仅包含字母,并且长度不超过1024。 14 | 15 | 16 | ##输出描述: 17 | 对应每组输入,输出最短编辑距离。 18 | 19 | ##输入例子: 20 | ABC CBCD 21 | ABC DCB 22 | 23 | #输出例子: 24 | 2 25 | 3 -------------------------------------------------------------------------------- /027-最短编辑距离/src/data.txt: -------------------------------------------------------------------------------- 1 | ABC CBCD 2 | ABC DCB -------------------------------------------------------------------------------- /027-最短编辑距离/src/readme.md: -------------------------------------------------------------------------------- 1 | #最短编辑距离 2 | 3 | ##题目描述 4 | UNIX系统下有一个行编辑器ed,它每次只对一行文本做删除一个字符、插入一个字符或替换一个字符三种操作。 5 | 例如某一行的内容是“ABC”,经过把第二个字符替换成“D”、删除第一个字符、末尾插入一个字符“B”,这三步 6 | 操作后,内容就变成了“DCB”。即“ABC”变成“DCB”需要经过3步操作,我们称它们的编辑距离为3。 7 | 8 | 现在给你两个任意字符串(不包含空格),请帮忙计算它们的最短编辑距离。 9 | 10 | ##输入描述: 11 | 输入包含多组数据。 12 | 13 | ##每组数据包含两个字符串m和n,它们仅包含字母,并且长度不超过1024。 14 | 15 | 16 | ##输出描述: 17 | 对应每组输入,输出最短编辑距离。 18 | 19 | ##输入例子: 20 | ABC CBCD 21 | ABC DCB 22 | 23 | #输出例子: 24 | 2 25 | 3 -------------------------------------------------------------------------------- /027-最短编辑距离/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/027-最短编辑距离/src/解题思路.docx -------------------------------------------------------------------------------- /027-最短编辑距离/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/027-最短编辑距离/src/解题思路.pdf -------------------------------------------------------------------------------- /028-最长上升子序列/028-最长上升子序列.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /028-最长上升子序列/readme.md: -------------------------------------------------------------------------------- 1 | #最长上升子序列 2 | 3 | ##题目描述 4 |   广场上站着一支队伍,她们是来自全国各地的扭秧歌代表队,现在有她们的身高数据,请你帮忙找出身高依次递增的子序列。 例如队伍的身高数据是(1、7、3、5、9、4、8),其中依次递增的子序列有(1、7),(1、3、5、9),(1、3、4、8)等,其中最长的长度为4。
5 | 6 | ##输入描述: 7 |   输入包含多组数据,每组数据第一行包含一个正整数n(1≤n≤1000)。
8 |   紧接着第二行包含n个正整数m(1≤n≤10000),代表队伍中每位队员的身高。 9 | 10 | ##输出描述: 11 |   对应每一组数据,输出最长递增子序列的长度。 12 | 13 | ##输入例子: 14 | ``` 15 | 7 16 | 1 7 3 5 9 4 8 17 | 6 18 | 1 3 5 2 4 6 19 | ``` 20 | 21 | ##输出例子: 22 | ``` 23 | 4 24 | 4 25 | ``` -------------------------------------------------------------------------------- /028-最长上升子序列/src/data.txt: -------------------------------------------------------------------------------- 1 | 7 2 | 1 7 3 5 9 4 8 3 | 6 4 | 1 3 5 2 4 6 5 | 9 6 | 1 2 3 4 5 6 7 8 9 7 | 9 8 | 9 8 7 6 5 4 3 2 1 -------------------------------------------------------------------------------- /028-最长上升子序列/src/readme.md: -------------------------------------------------------------------------------- 1 | #最长上升子序列 2 | 3 | ##题目描述 4 |   广场上站着一支队伍,她们是来自全国各地的扭秧歌代表队,现在有她们的身高数据,请你帮忙找出身高依次递增的子序列。 例如队伍的身高数据是(1、7、3、5、9、4、8),其中依次递增的子序列有(1、7),(1、3、5、9),(1、3、4、8)等,其中最长的长度为4。
5 | 6 | ##输入描述: 7 |   输入包含多组数据,每组数据第一行包含一个正整数n(1≤n≤1000)。
8 |   紧接着第二行包含n个正整数m(1≤n≤10000),代表队伍中每位队员的身高。 9 | 10 | ##输出描述: 11 |   对应每一组数据,输出最长递增子序列的长度。 12 | 13 | ##输入例子: 14 | ``` 15 | 7 16 | 1 7 3 5 9 4 8 17 | 6 18 | 1 3 5 2 4 6 19 | ``` 20 | 21 | ##输出例子: 22 | ``` 23 | 4 24 | 4 25 | ``` -------------------------------------------------------------------------------- /028-最长上升子序列/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/028-最长上升子序列/src/解题思路.docx -------------------------------------------------------------------------------- /028-最长上升子序列/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/028-最长上升子序列/src/解题思路.pdf -------------------------------------------------------------------------------- /029-最长公共子序列/029-最长公共子序列.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /029-最长公共子序列/readme.md: -------------------------------------------------------------------------------- 1 | #最长公共子序列 2 | 3 | ##题目描述 4 | 我们有两个字符串m和n,如果它们的子串a和b内容相同,则称a和b是m和n的公共子序列。子串中的字符不一定在原字符串中连续。 5 | 例如字符串“abcfbc”和“abfcab”,其中“abc”同时出现在两个字符串中,因此“abc”是它们的公共子序列。此外,“ab”、“af”等都是它们的字串。 6 | 现在给你两个任意字符串(不包含空格),请帮忙计算它们的最长公共子序列的长度。 7 | 8 | ##输入描述: 9 | 输入包含多组数据。 10 | 11 | 每组数据包含两个字符串m和n,它们仅包含字母,并且长度不超过1024。 12 | 13 | 14 | ##输出描述: 15 | 对应每组输入,输出最长公共子序列的长度。 16 | 17 | ##输入例子: 18 | abcfbc abfcab 19 | programming contest 20 | abcd mnp 21 | 22 | #输出例子: 23 | 4 24 | 2 25 | 0 -------------------------------------------------------------------------------- /029-最长公共子序列/src/data.txt: -------------------------------------------------------------------------------- 1 | abcfbc abfcab 2 | programming contest 3 | abcd mnp -------------------------------------------------------------------------------- /029-最长公共子序列/src/readme.md: -------------------------------------------------------------------------------- 1 | #最长公共子序列 2 | 3 | ##题目描述 4 | 我们有两个字符串m和n,如果它们的子串a和b内容相同,则称a和b是m和n的公共子序列。子串中的字符不一定在原字符串中连续。 5 | 例如字符串“abcfbc”和“abfcab”,其中“abc”同时出现在两个字符串中,因此“abc”是它们的公共子序列。此外,“ab”、“af”等都是它们的字串。 6 | 现在给你两个任意字符串(不包含空格),请帮忙计算它们的最长公共子序列的长度。 7 | 8 | ##输入描述: 9 | 输入包含多组数据。 10 | 11 | 每组数据包含两个字符串m和n,它们仅包含字母,并且长度不超过1024。 12 | 13 | 14 | ##输出描述: 15 | 对应每组输入,输出最长公共子序列的长度。 16 | 17 | ##输入例子: 18 | abcfbc abfcab 19 | programming contest 20 | abcd mnp 21 | 22 | #输出例子: 23 | 4 24 | 2 25 | 0 -------------------------------------------------------------------------------- /029-最长公共子序列/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/029-最长公共子序列/src/解题思路.docx -------------------------------------------------------------------------------- /030-滑雪/030-滑雪.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /030-滑雪/readme.md: -------------------------------------------------------------------------------- 1 | #滑雪 2 | 3 | ##题目描述 4 | 5 | NowCoder喜欢滑雪,因为滑雪的确很刺激。为了获得速度,必须从高处往低处滑。现在知道某片区域的海拔,如下所示 6 | 1 2 3 4 5 7 | 16 17 18 19 6 8 | 15 24 25 20 7 9 | 14 23 22 21 8 10 | 13 12 11 10 9 11 | 可以从某个点滑向上下左右四个方向中海拔比当前位置低的点。例如上图中一条可行的滑坡为24-17-16-1。 12 | 当然25-24-23-...-3-2-1是最长的一条。 13 | 现在给出区域的海拔,你能帮忙计算最长的滑道有多长吗? 14 | 15 | ##输入描述: 16 | 输入包含多组数据。 17 | 18 | 每组数据的第一行包含两个正整数m和n (1≤m, n≤100),紧接着是m*n的海拔矩阵,包含各个点的高度h (1≤h≤10000)。 19 | 20 | 21 | ##输出描述: 22 | 对应每一组数据,输出该区域最长的滑道长度。 23 | 24 | #输入例子: 25 | 5 5 26 | 1 2 3 4 5 27 | 16 17 18 19 6 28 | 15 24 25 20 7 29 | 14 23 22 21 8 30 | 13 12 11 10 9 31 | 2 2 32 | 1 1 33 | 1 1 34 | 35 | ##输出例子: 36 | 25 37 | 1 -------------------------------------------------------------------------------- /030-滑雪/src/data.txt: -------------------------------------------------------------------------------- 1 | 5 5 2 | 1 2 3 4 5 3 | 16 17 18 19 6 4 | 15 24 25 20 7 5 | 14 23 22 21 8 6 | 13 12 11 10 9 7 | 2 2 8 | 1 1 9 | 1 1 10 | 2 3 11 | 1 2 3 12 | 6 5 4 13 | 3 2 14 | 1 2 15 | 6 3 16 | 5 4 17 | -------------------------------------------------------------------------------- /030-滑雪/src/data2.txt: -------------------------------------------------------------------------------- 1 | 3 3 2 | 1 2 2 3 | 2 2 2 4 | 2 2 3 -------------------------------------------------------------------------------- /030-滑雪/src/readme.md: -------------------------------------------------------------------------------- 1 | #滑雪 2 | 3 | ##题目描述 4 | 5 | NowCoder喜欢滑雪,因为滑雪的确很刺激。为了获得速度,必须从高处往低处滑。现在知道某片区域的海拔,如下所示 6 | 1 2 3 4 5 7 | 16 17 18 19 6 8 | 15 24 25 20 7 9 | 14 23 22 21 8 10 | 13 12 11 10 9 11 | 可以从某个点滑向上下左右四个方向中海拔比当前位置低的点。例如上图中一条可行的滑坡为24-17-16-1。 12 | 当然25-24-23-...-3-2-1是最长的一条。 13 | 现在给出区域的海拔,你能帮忙计算最长的滑道有多长吗? 14 | 15 | ##输入描述: 16 | 输入包含多组数据。 17 | 18 | 每组数据的第一行包含两个正整数m和n (1≤m, n≤100),紧接着是m*n的海拔矩阵,包含各个点的高度h (1≤h≤10000)。 19 | 20 | 21 | ##输出描述: 22 | 对应每一组数据,输出该区域最长的滑道长度。 23 | 24 | #输入例子: 25 | 5 5 26 | 1 2 3 4 5 27 | 16 17 18 19 6 28 | 15 24 25 20 7 29 | 14 23 22 21 8 30 | 13 12 11 10 9 31 | 2 2 32 | 1 1 33 | 1 1 34 | 35 | ##输出例子: 36 | 25 37 | 1 -------------------------------------------------------------------------------- /030-滑雪/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/030-滑雪/src/解题思路.docx -------------------------------------------------------------------------------- /030-滑雪/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/030-滑雪/src/解题思路.pdf -------------------------------------------------------------------------------- /031-NowCoder的密码/031-NowCoder的密码.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /031-NowCoder的密码/readme.md: -------------------------------------------------------------------------------- 1 | #NowCoder的密码 2 | 3 | ##题目描述 4 |   nowcoder是个数学迷,他最喜欢研究“哥德巴赫猜想”,因此他的计算机密码也都采用素数。 但一直用同一个密码是不安全的,所以他要经常更换他的密码。但他只允许自己的密码中出现某些数字,且密码的每一位都不相同。比如1 2 4,则有6种情况124 142 214 241 412 421。其中241 和 421为素数。为了获得他的密码(他的机器上存放了第4届舜禹杯大学生程序设计竞赛的题目!),需要生成一个字典来帮助我们破解。 请你来编写一个程序帮助我们(因为众所周知的原因我们迫切需要获得这些题目)。 5 | 6 | ##输入描述: 7 |   Line 1: 密码的位数n (1 ≤ n ≤ 9)。
8 |   Line 2: 1->n个不重复的整数序列 (1 ≤ x[i] ≤ 9).
9 |   输入0结束。 10 | 11 | ##输出描述: 12 |   按从小到大顺序输出所有的结果。如果一个结果也没有,输出“NONE”。每组数据后面跟随一个空行。 13 | 14 | ##输入例子: 15 | ``` 16 | 3 17 | 1 2 4 18 | 0 19 | ``` 20 | 21 | ##输出例子: 22 | ``` 23 | 241 24 | 421 25 | ``` -------------------------------------------------------------------------------- /031-NowCoder的密码/src/data.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 1 3 | 1 4 | 2 5 | 1 6 | 3 7 | 1 8 | 4 9 | 1 10 | 5 11 | 1 12 | 6 13 | 1 14 | 7 15 | 1 16 | 8 17 | 1 18 | 9 19 | 0 -------------------------------------------------------------------------------- /031-NowCoder的密码/src/data2.txt: -------------------------------------------------------------------------------- 1 | 2 2 | 1 3 3 | 0 -------------------------------------------------------------------------------- /031-NowCoder的密码/src/data3.txt: -------------------------------------------------------------------------------- 1 | 3 2 | 1 2 4 3 | 0 -------------------------------------------------------------------------------- /031-NowCoder的密码/src/data4.txt: -------------------------------------------------------------------------------- 1 | 4 2 | 1 2 3 4 -------------------------------------------------------------------------------- /031-NowCoder的密码/src/data5.txt: -------------------------------------------------------------------------------- 1 | 2 2 | 2 3 -------------------------------------------------------------------------------- /031-NowCoder的密码/src/readme.md: -------------------------------------------------------------------------------- 1 | #NowCoder的密码 2 | 3 | ##题目描述 4 |   nowcoder是个数学迷,他最喜欢研究“哥德巴赫猜想”,因此他的计算机密码也都采用素数。 但一直用同一个密码是不安全的,所以他要经常更换他的密码。但他只允许自己的密码中出现某些数字,且密码的每一位都不相同。比如1 2 4,则有6种情况124 142 214 241 412 421。其中241 和 421为素数。为了获得他的密码(他的机器上存放了第4届舜禹杯大学生程序设计竞赛的题目!),需要生成一个字典来帮助我们破解。 请你来编写一个程序帮助我们(因为众所周知的原因我们迫切需要获得这些题目)。 5 | 6 | ##输入描述: 7 |   Line 1: 密码的位数n (1 ≤ n ≤ 9)。
8 |   Line 2: 1->n个不重复的整数序列 (1 ≤ x[i] ≤ 9).
9 |   输入0结束。 10 | 11 | ##输出描述: 12 |   按从小到大顺序输出所有的结果。如果一个结果也没有,输出“NONE”。每组数据后面跟随一个空行。 13 | 14 | ##输入例子: 15 | ``` 16 | 3 17 | 1 2 4 18 | 0 19 | ``` 20 | 21 | ##输出例子: 22 | ``` 23 | 241 24 | 421 25 | ``` -------------------------------------------------------------------------------- /032-二叉树/032-二叉树.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /032-二叉树/readme.md: -------------------------------------------------------------------------------- 1 | #二叉树 2 | 3 | ##题目描述 4 | 5 | 1 6 | / \ 7 | 2 3 8 | / \ / \ 9 | 4 5 6 7 10 | /\ /\ /\ /\ 11 | 12 | 如上图所示,由正整数 1, 2, 3, ...组成了一棵无限大的二叉树。从某一个结点到根结点(编号是1的结点)都有一条唯一的路径, 13 | 比如从5到根结点的路径是(5, 2, 1),从4到根结点的路径是(4, 2, 1),从根结点1到根结点的路径上只包含一个结点1, 14 | 因此路径就是(1)。对于两个结点x和y,假设他们到根结点的路径分别是(x1, x2, ... ,1)和(y1, y2,...,1),那么必然 15 | 存在两个正整数i和j,使得从xi 和yj 开始,有xi = yj,xi + 1 = yj + 1,xi + 2 = yj + 2,... 16 | 17 | 现在的问题就是,给定x和y,要求他们的公共父节点,即xi(也就是 yj)。 18 | 19 | ##输入描述: 20 | 输入包含多组数据,每组数据包含两个正整数x和y(1≤x, y≤2^31-1)。 21 | 22 | 23 | ##输出描述: 24 | 对应每一组数据,输出一个正整数xi,即它们的首个公共父节点。 25 | 26 | ##输入例子: 27 | 10 4 28 | 29 | ##输出例子: 30 | 2 -------------------------------------------------------------------------------- /032-二叉树/src/data.txt: -------------------------------------------------------------------------------- 1 | 10 4 -------------------------------------------------------------------------------- /032-二叉树/src/readme.md: -------------------------------------------------------------------------------- 1 | #二叉树 2 | 3 | ##题目描述 4 | 5 | 1 6 | / \ 7 | 2 3 8 | / \ / \ 9 | 4 5 6 7 10 | /\ /\ /\ /\ 11 | 12 | 如上图所示,由正整数 1, 2, 3, ...组成了一棵无限大的二叉树。从某一个结点到根结点(编号是1的结点)都有一条唯一的路径, 13 | 比如从5到根结点的路径是(5, 2, 1),从4到根结点的路径是(4, 2, 1),从根结点1到根结点的路径上只包含一个结点1, 14 | 因此路径就是(1)。对于两个结点x和y,假设他们到根结点的路径分别是(x1, x2, ... ,1)和(y1, y2,...,1),那么必然 15 | 存在两个正整数i和j,使得从xi 和yj 开始,有xi = yj,xi + 1 = yj + 1,xi + 2 = yj + 2,... 16 | 17 | 现在的问题就是,给定x和y,要求他们的公共父节点,即xi(也就是 yj)。 18 | 19 | ##输入描述: 20 | 输入包含多组数据,每组数据包含两个正整数x和y(1≤x, y≤2^31-1)。 21 | 22 | 23 | ##输出描述: 24 | 对应每一组数据,输出一个正整数xi,即它们的首个公共父节点。 25 | 26 | ##输入例子: 27 | 10 4 28 | 29 | ##输出例子: 30 | 2 -------------------------------------------------------------------------------- /032-二叉树/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/032-二叉树/src/解题思路.docx -------------------------------------------------------------------------------- /032-二叉树/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/032-二叉树/src/解题思路.pdf -------------------------------------------------------------------------------- /033-八皇后问题/033-八皇后问题.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /033-八皇后问题/readme.md: -------------------------------------------------------------------------------- 1 | #八皇后问题 2 | 3 | ##题目描述 4 | 会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将 8 个皇后放在棋盘上(有8×8个方格), 5 | 使它们谁也不能被吃掉!这就是著名的八皇后问题。 6 | 对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即 a=b1b2...b8, 其中bi(1≤bi≤8)为相应摆法中第 i 行 7 | 皇后所处的列数。已经知道8皇后问题一共有92组解(即92个不同的皇后串)。给出一个数n,要求输出第n个串。串的比较是这样 8 | 的:皇后串x置于皇后串y之前,当且仅当将x视为整数时比y小。 9 | 10 | ##输入描述: 11 | 输入包含多组数据。 12 | 每组数据包含一个正整数n(1≤n≤92)。 13 | 14 | 15 | ##输出描述: 16 | 对应每一组输入,输出第n个皇后串。 17 | 18 | ##输入例子: 19 | 1 20 | 92 21 | 22 | ##输出例子: 23 | 15863724 24 | 84136275 -------------------------------------------------------------------------------- /033-八皇后问题/src/data.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 92 -------------------------------------------------------------------------------- /033-八皇后问题/src/readme.md: -------------------------------------------------------------------------------- 1 | #八皇后问题 2 | 3 | ##题目描述 4 | 会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将 8 个皇后放在棋盘上(有8×8个方格), 5 | 使它们谁也不能被吃掉!这就是著名的八皇后问题。 6 | 对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即 a=b1b2...b8, 其中bi(1≤bi≤8)为相应摆法中第 i 行 7 | 皇后所处的列数。已经知道8皇后问题一共有92组解(即92个不同的皇后串)。给出一个数n,要求输出第n个串。串的比较是这样 8 | 的:皇后串x置于皇后串y之前,当且仅当将x视为整数时比y小。 9 | 10 | ##输入描述: 11 | 输入包含多组数据。 12 | 每组数据包含一个正整数n(1≤n≤92)。 13 | 14 | 15 | ##输出描述: 16 | 对应每一组输入,输出第n个皇后串。 17 | 18 | ##输入例子: 19 | 1 20 | 92 21 | 22 | ##输出例子: 23 | 15863724 24 | 84136275 -------------------------------------------------------------------------------- /033-八皇后问题/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/033-八皇后问题/src/解题思路.docx -------------------------------------------------------------------------------- /033-八皇后问题/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/033-八皇后问题/src/解题思路.pdf -------------------------------------------------------------------------------- /034-强势糖果/034-强势糖果.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /034-强势糖果/readme.md: -------------------------------------------------------------------------------- 1 | #强势糖果 2 | 3 | ##题目描述 4 | NowCoder是一个好胜心特别强的人。小时候他和他弟弟分糖果时,他要求自己糖果的总数量必须比弟弟多, 5 | 也不允许弟弟独自拥有某种类型的糖果。现在请你帮忙判断一下妈妈分好的两堆糖果能否让他满意。 6 | 7 | ##输入描述: 8 | 输入有多组数据。 9 | 每组数据包含两个字符串A、B,代表NowCoder与弟弟分到的糖果,每种糖果用一个大写字母表示,即相同 10 | 类型的糖果为相同的大写字母。 11 | 字符串长度不大于10000。 12 | 13 | ##输出描述: 14 | 每一组输入对应一行输出:如果NowCoder拥有的糖果数量比弟弟多,并且弟弟拥有的糖果类型NowCoder同 15 | 样都有,则输出“Yes”;否则输出“No”。 16 | 17 | ##输入例子: 18 | ABCDFYE CDE 19 | ABCDGEAS CDECDE 20 | ABC AAAA 21 | 22 | ##输出例子: 23 | Yes 24 | Yes 25 | No -------------------------------------------------------------------------------- /034-强势糖果/src/data.txt: -------------------------------------------------------------------------------- 1 | ABCDFYE CDE 2 | ABCDGEAS CDECDE 3 | ABC AAAA -------------------------------------------------------------------------------- /034-强势糖果/src/readme.md: -------------------------------------------------------------------------------- 1 | #强势糖果 2 | 3 | ##题目描述 4 | NowCoder是一个好胜心特别强的人。小时候他和他弟弟分糖果时,他要求自己糖果的总数量必须比弟弟多, 5 | 也不允许弟弟独自拥有某种类型的糖果。现在请你帮忙判断一下妈妈分好的两堆糖果能否让他满意。 6 | 7 | ##输入描述: 8 | 输入有多组数据。 9 | 每组数据包含两个字符串A、B,代表NowCoder与弟弟分到的糖果,每种糖果用一个大写字母表示,即相同 10 | 类型的糖果为相同的大写字母。 11 | 字符串长度不大于10000。 12 | 13 | ##输出描述: 14 | 每一组输入对应一行输出:如果NowCoder拥有的糖果数量比弟弟多,并且弟弟拥有的糖果类型NowCoder同 15 | 样都有,则输出“Yes”;否则输出“No”。 16 | 17 | ##输入例子: 18 | ABCDFYE CDE 19 | ABCDGEAS CDECDE 20 | ABC AAAA 21 | 22 | ##输出例子: 23 | Yes 24 | Yes 25 | No -------------------------------------------------------------------------------- /034-强势糖果/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/034-强势糖果/src/解题思路.docx -------------------------------------------------------------------------------- /034-强势糖果/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/034-强势糖果/src/解题思路.pdf -------------------------------------------------------------------------------- /035-NowCoder赛马/035-NowCoder赛马.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /035-NowCoder赛马/src/data.txt: -------------------------------------------------------------------------------- 1 | 5 2 | 2 3 3 4 5 3 | 1 2 3 4 5 4 | 4 5 | 2 2 1 2 6 | 2 2 3 1 7 | 0 -------------------------------------------------------------------------------- /035-NowCoder赛马/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/035-NowCoder赛马/src/解题思路.docx -------------------------------------------------------------------------------- /035-NowCoder赛马/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/035-NowCoder赛马/src/解题思路.pdf -------------------------------------------------------------------------------- /036-中美代表/036-中美代表.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /036-中美代表/readme.md: -------------------------------------------------------------------------------- 1 | #中美代表 2 | 3 | ##题目描述 4 | 5 | 中美两国要在环境治理上进行一次合作,双方分别派出一支由m人和n人组成的代表队。为了召开记者发布会, 6 | 双方需要在代表队里选出两位身高最接近的人做形象大使。例如中国代表队的身高为4、5、6,美国代表队 7 | 为1、2、3,其中“4”和“3”最接近,因此最小的身高距离是“1”。 8 | 9 | 你能帮他们计算出两支队伍最小的身高距离吗? 10 | 11 | ##输入描述: 12 | 输入包含多组数据。 13 | 14 | 每组数据第一行包含两个正整数m和n (1≤m, n≤1000),分别是中国代表队和美国代表队的人数。 15 | 16 | 紧接着第二行有m个正整数,为每位中国代表队队员的身高;第三行n个正整数为美国代表队队员的身高。 17 | 18 | ##输出描述: 19 | 对应每一组数据,输出一个自然数,即两支代表队中身高最接近的两位队员的身高之差。 20 | 21 | ##输入例子: 22 | 5 5 23 | 10 8 7 9 6 24 | 1 5 4 3 2 25 | 3 3 26 | 3 2 1 27 | 1 3 2 28 | 29 | ##输出例子: 30 | 1 31 | 0 -------------------------------------------------------------------------------- /036-中美代表/src/data.txt: -------------------------------------------------------------------------------- 1 | 5 5 2 | 10 8 7 9 6 3 | 1 5 4 3 2 4 | 3 3 5 | 3 2 1 6 | 1 3 2 -------------------------------------------------------------------------------- /036-中美代表/src/readme.md: -------------------------------------------------------------------------------- 1 | #中美代表 2 | 3 | ##题目描述 4 | 5 | 中美两国要在环境治理上进行一次合作,双方分别派出一支由m人和n人组成的代表队。为了召开记者发布会, 6 | 双方需要在代表队里选出两位身高最接近的人做形象大使。例如中国代表队的身高为4、5、6,美国代表队 7 | 为1、2、3,其中“4”和“3”最接近,因此最小的身高距离是“1”。 8 | 9 | 你能帮他们计算出两支队伍最小的身高距离吗? 10 | 11 | ##输入描述: 12 | 输入包含多组数据。 13 | 14 | 每组数据第一行包含两个正整数m和n (1≤m, n≤1000),分别是中国代表队和美国代表队的人数。 15 | 16 | 紧接着第二行有m个正整数,为每位中国代表队队员的身高;第三行n个正整数为美国代表队队员的身高。 17 | 18 | ##输出描述: 19 | 对应每一组数据,输出一个自然数,即两支代表队中身高最接近的两位队员的身高之差。 20 | 21 | ##输入例子: 22 | 5 5 23 | 10 8 7 9 6 24 | 1 5 4 3 2 25 | 3 3 26 | 3 2 1 27 | 1 3 2 28 | 29 | ##输出例子: 30 | 1 31 | 0 -------------------------------------------------------------------------------- /036-中美代表/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/036-中美代表/src/解题思路.docx -------------------------------------------------------------------------------- /036-中美代表/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/036-中美代表/src/解题思路.pdf -------------------------------------------------------------------------------- /037-价格浮动/037-价格浮动.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /037-价格浮动/readme.md: -------------------------------------------------------------------------------- 1 | #价格浮动 2 | 3 | ##题目描述 4 | 5 | 股市有风险,投资需谨慎!为了更好地把握股票市场,证券公司决定研究股票涨跌幅度与时间段的关系。 6 | 他们能为你提供一天中每小时整点时刻的股票涨跌幅度,它们都是整数,正数表示上涨,负数表示下跌。 7 | 请你按照幅度变化的大小倒续输出时间。 8 | 9 | ##输入描述: 10 | 输入包含多组数据。 11 | 每一组数据一行,包含24个整数,分别代表00:00、01:00、……、23:00,这24个时间点的股票变化幅度。 12 | 每个整数之间用一个空格隔开。 13 | 14 | ##输出描述: 15 | 对应每一组数据,按问题描述的规则以一定顺序输出一行0、1、……、23,这24个时间。整数之间用空格隔开。 16 | 如果有两个时刻涨跌幅度相同,则按照时间先后顺序输出。 17 | 18 | ##输入例子: 19 | -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 20 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 21 | 22 | ##输出例子: 23 | 23 0 22 1 21 2 20 3 19 4 18 5 17 6 16 7 15 8 14 9 13 10 12 11 24 | 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 -------------------------------------------------------------------------------- /037-价格浮动/src/data.txt: -------------------------------------------------------------------------------- 1 | -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 -------------------------------------------------------------------------------- /037-价格浮动/src/readme.md: -------------------------------------------------------------------------------- 1 | #价格浮动 2 | 3 | ##题目描述 4 | 5 | 股市有风险,投资需谨慎!为了更好地把握股票市场,证券公司决定研究股票涨跌幅度与时间段的关系。 6 | 他们能为你提供一天中每小时整点时刻的股票涨跌幅度,它们都是整数,正数表示上涨,负数表示下跌。 7 | 请你按照幅度变化的大小倒续输出时间。 8 | 9 | ##输入描述: 10 | 输入包含多组数据。 11 | 每一组数据一行,包含24个整数,分别代表00:00、01:00、……、23:00,这24个时间点的股票变化幅度。 12 | 每个整数之间用一个空格隔开。 13 | 14 | ##输出描述: 15 | 对应每一组数据,按问题描述的规则以一定顺序输出一行0、1、……、23,这24个时间。整数之间用空格隔开。 16 | 如果有两个时刻涨跌幅度相同,则按照时间先后顺序输出。 17 | 18 | ##输入例子: 19 | -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 20 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 21 | 22 | ##输出例子: 23 | 23 0 22 1 21 2 20 3 19 4 18 5 17 6 16 7 15 8 14 9 13 10 12 11 24 | 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 -------------------------------------------------------------------------------- /038-冲突的电话号码/038-冲突的电话号码.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /038-冲突的电话号码/readme.md: -------------------------------------------------------------------------------- 1 | #冲突的电话号码 2 | 3 | ##题目描述 4 | 移动推出的校内网短号和亲情网短号非常方便,但在某款新手机里却出现了尴尬的bug。例如,当通讯录中包含 5 | 如下号码时: 6 | 1.小王:600 7 | 2.小李:467654 8 | 3.小张:600010 9 | 输入600时,手机会直接自动打给了小王,因此永远没法打给小张。现在有很多部手机都有这种问题,NowCoder 10 | 想要找到一个办法来判断每个号码簿里的号码是不是有这种冲突。 11 | 12 | ##输入描述: 13 | 输入有多组数据。 14 | 15 | 每组数据第一行是一个整数n,(1≤n≤10000)。 16 | 17 | 紧接着有n行电话号码,号码只有数字组成,长度不超过11位。 18 | 19 | ##输出描述: 20 | 对应每组输入,有一行输出:如果电话簿中存在冲突的号码,就输出“Yes”;否则输出“No”。 21 | 22 | ##输入例子: 23 | 3 24 | 911 25 | 97625999 26 | 91125426 27 | 5 28 | 113 29 | 12340 30 | 123440 31 | 12345 32 | 98346 33 | 34 | ##输出例子: 35 | Yes 36 | No -------------------------------------------------------------------------------- /038-冲突的电话号码/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 2 | 911 3 | 97625999 4 | 91125426 5 | 5 6 | 113 7 | 12340 8 | 123440 9 | 12345 10 | 98346 11 | 3 12 | 123456789 13 | 12345678 14 | 1234567 -------------------------------------------------------------------------------- /038-冲突的电话号码/src/data2.txt: -------------------------------------------------------------------------------- 1 | 3 2 | 911 3 | 97625999 4 | 91125426 -------------------------------------------------------------------------------- /038-冲突的电话号码/src/data3.txt: -------------------------------------------------------------------------------- 1 | 3 2 | 123456789 3 | 12345678 4 | 1234567 -------------------------------------------------------------------------------- /038-冲突的电话号码/src/readme.md: -------------------------------------------------------------------------------- 1 | #冲突的电话号码 2 | 3 | ##题目描述 4 | 移动推出的校内网短号和亲情网短号非常方便,但在某款新手机里却出现了尴尬的bug。例如,当通讯录中包含 5 | 如下号码时: 6 | 1.小王:600 7 | 2.小李:467654 8 | 3.小张:600010 9 | 输入600时,手机会直接自动打给了小王,因此永远没法打给小张。现在有很多部手机都有这种问题,NowCoder 10 | 想要找到一个办法来判断每个号码簿里的号码是不是有这种冲突。 11 | 12 | ##输入描述: 13 | 输入有多组数据。 14 | 15 | 每组数据第一行是一个整数n,(1≤n≤10000)。 16 | 17 | 紧接着有n行电话号码,号码只有数字组成,长度不超过11位。 18 | 19 | ##输出描述: 20 | 对应每组输入,有一行输出:如果电话簿中存在冲突的号码,就输出“Yes”;否则输出“No”。 21 | 22 | ##输入例子: 23 | 3 24 | 911 25 | 97625999 26 | 91125426 27 | 5 28 | 113 29 | 12340 30 | 123440 31 | 12345 32 | 98346 33 | 34 | ##输出例子: 35 | Yes 36 | No -------------------------------------------------------------------------------- /039-寻找舞伴/039-寻找舞伴.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /039-寻找舞伴/readme.md: -------------------------------------------------------------------------------- 1 | #寻找舞伴 2 | 3 | ##题目描述 4 | 舞蹈队要参加央视春节晚会了,这可是天大的好消息。节目要求男女生组成一对一的舞伴,并且舞伴的身高要相同。 5 | 例如男生的身高为2、3、4,女生为1、2、3,其中身高为“2”和“3”的同学能找到合适的舞伴,即最多有两对舞伴。 6 | 7 | 你能帮他们计算出最多有多少对舞伴吗? 8 | 9 | ##输入描述: 10 | 输入包含多组数据。 11 | 每组数据第一行包含两个正整数m和n (1≤m, n≤1000),分别是男生和女生的人数。 12 | 紧接着第二行有m个正整数,为每位男生的身高;第三行n个正整数为女生的身高。 13 | 14 | 15 | ##输出描述: 16 | 对应每一组数据,输出一个自然数,即最多能组成多少对舞伴。 17 | 18 | ##输入例子: 19 | 5 5 20 | 1 3 2 2 2 21 | 3 3 1 2 2 22 | 3 3 23 | 3 2 1 24 | 1 3 2 25 | 26 | ##输出例子: 27 | 4 28 | 3 -------------------------------------------------------------------------------- /039-寻找舞伴/src/data.txt: -------------------------------------------------------------------------------- 1 | 5 5 2 | 1 3 2 2 2 3 | 3 3 1 2 2 4 | 3 3 5 | 3 2 1 6 | 1 3 2 -------------------------------------------------------------------------------- /039-寻找舞伴/src/readme.md: -------------------------------------------------------------------------------- 1 | #寻找舞伴 2 | 3 | ##题目描述 4 | 舞蹈队要参加央视春节晚会了,这可是天大的好消息。节目要求男女生组成一对一的舞伴,并且舞伴的身高要相同。 5 | 例如男生的身高为2、3、4,女生为1、2、3,其中身高为“2”和“3”的同学能找到合适的舞伴,即最多有两对舞伴。 6 | 7 | 你能帮他们计算出最多有多少对舞伴吗? 8 | 9 | ##输入描述: 10 | 输入包含多组数据。 11 | 每组数据第一行包含两个正整数m和n (1≤m, n≤1000),分别是男生和女生的人数。 12 | 紧接着第二行有m个正整数,为每位男生的身高;第三行n个正整数为女生的身高。 13 | 14 | 15 | ##输出描述: 16 | 对应每一组数据,输出一个自然数,即最多能组成多少对舞伴。 17 | 18 | ##输入例子: 19 | 5 5 20 | 1 3 2 2 2 21 | 3 3 1 2 2 22 | 3 3 23 | 3 2 1 24 | 1 3 2 25 | 26 | ##输出例子: 27 | 4 28 | 3 -------------------------------------------------------------------------------- /040-整理图书/040-整理图书.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /040-整理图书/readme.md: -------------------------------------------------------------------------------- 1 | #整理图书 2 | 3 | ##题目描述 4 | 图书馆最近新进了一批书,管理员们需要把这些书按照所属类别以及书名分别放置在不同的书架上。 5 | 但由于书太多了,这可忙坏了管理员们,你能帮他们整理一下这些新书吗? 6 | 7 | ##输入描述: 8 | 输入包含多组数据。 9 | 每组数据第一行包含一个正整数n (1≤n≤1000)。 10 | 11 | 紧接着n行,每行包含一个书名和这本书的所属类别。书名和类别名都只有字母构成,并且长度均不超过32个字符。 12 | 13 | 14 | ##输出描述: 15 | 对应每一组数据,按照要求先按照类别排序(大小写无关),再按照书名排序(大小写无关),最后输出排好序的书名, 16 | 每一个书名占一行。 17 | 18 | 每一组数据之后输出一个空行做分隔符。 19 | 20 | ##输入例子: 21 | 3 22 | JavaScriptInAction Programming 23 | OnLisp Lisp 24 | LetOverLambda Lisp 25 | 3 26 | abc ZZZ 27 | XXX AAA 28 | DEF AAA 29 | 30 | ##输出例子: 31 | LetOverLambda 32 | OnLisp 33 | JavaScriptInAction 34 | 35 | DEF 36 | XXX 37 | abc -------------------------------------------------------------------------------- /040-整理图书/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 2 | JavaScriptInAction Programming 3 | OnLisp Lisp 4 | LetOverLambda Lisp 5 | 3 6 | abc ZZZ 7 | XXX AAA 8 | DEF AAA 9 | 2 10 | ZYX same 11 | abc same -------------------------------------------------------------------------------- /040-整理图书/src/data2.txt: -------------------------------------------------------------------------------- 1 | 2 2 | ZYX same 3 | abc same -------------------------------------------------------------------------------- /040-整理图书/src/readme.md: -------------------------------------------------------------------------------- 1 | #整理图书 2 | 3 | ##题目描述 4 | 图书馆最近新进了一批书,管理员们需要把这些书按照所属类别以及书名分别放置在不同的书架上。 5 | 但由于书太多了,这可忙坏了管理员们,你能帮他们整理一下这些新书吗? 6 | 7 | ##输入描述: 8 | 输入包含多组数据。 9 | 每组数据第一行包含一个正整数n (1≤n≤1000)。 10 | 11 | 紧接着n行,每行包含一个书名和这本书的所属类别。书名和类别名都只有字母构成,并且长度均不超过32个字符。 12 | 13 | 14 | ##输出描述: 15 | 对应每一组数据,按照要求先按照类别排序(大小写无关),再按照书名排序(大小写无关),最后输出排好序的书名, 16 | 每一个书名占一行。 17 | 18 | 每一组数据之后输出一个空行做分隔符。 19 | 20 | ##输入例子: 21 | 3 22 | JavaScriptInAction Programming 23 | OnLisp Lisp 24 | LetOverLambda Lisp 25 | 3 26 | abc ZZZ 27 | XXX AAA 28 | DEF AAA 29 | 30 | ##输出例子: 31 | LetOverLambda 32 | OnLisp 33 | JavaScriptInAction 34 | 35 | DEF 36 | XXX 37 | abc -------------------------------------------------------------------------------- /041-最短前缀/041-最短前缀.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /041-最短前缀/readme.md: -------------------------------------------------------------------------------- 1 | #最短前缀 2 | 3 | ##题目描述 4 | 一个字符串的前缀是从该字符串的第一个字符起始的一个子串。例如“carbon”的前缀是有“c”,“ca”,“car”, 5 | “carb”,“carbo”,和“carbon”。空串不是前缀,但是每个非空串是它自身的子串。 6 | 我们希望能用前缀来缩略地表示单词。例如“carbohydrate”通常用“carb”来表示。在下面的例子中, 7 | “carbohydrate”能被缩写成“carboh”,但是不能被缩写成“carbo”(或其余更短的前缀),因为已经有一个单词 8 | 用“carbo”开始。 9 | carbohydrate 10 | cart 11 | carbonic 12 | caribou 13 | carriage 14 | car 15 | 一个完全匹配会覆盖一个前缀匹配,例如“car”完全匹配单词“car”。因此“car”是“car”的缩略语是没有二义 16 | 性的,“car”不会被当成“carriage”或者任何在列表中以“car”开始的单词。 17 | 现在给你一组单词,要求找到所有单词唯一标识的最短前缀。 18 | 19 | ##输入描述: 20 | 输入包含多组数据,每组数据第一行包含一个正整数n(2≤n≤1000)。 21 | 22 | 紧接着n行单词,单词只有小写字母组成,长度不超过20个字符。 23 | 24 | ##输出描述: 25 | 对应每一组数据,按照输入顺序依次输出每个单词的最短前缀。 26 | 27 | 每组数据之后输出一个空格作为分隔。 28 | 29 | ##输入例子: 30 | 3 31 | ab 32 | a 33 | acb 34 | 6 35 | carbohydrate 36 | cart 37 | carbonic 38 | caribou 39 | carriage 40 | car 41 | 42 | ##输出例子: 43 | ab 44 | a 45 | ac 46 | 47 | carboh 48 | cart 49 | carbon 50 | cari 51 | carr 52 | car -------------------------------------------------------------------------------- /041-最短前缀/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 2 | ab 3 | a 4 | acb 5 | 6 6 | carbohydrate 7 | cart 8 | carbonic 9 | caribou 10 | carriage 11 | car -------------------------------------------------------------------------------- /041-最短前缀/src/data2.txt: -------------------------------------------------------------------------------- 1 | 3 2 | ab 3 | a 4 | acb -------------------------------------------------------------------------------- /041-最短前缀/src/readme.md: -------------------------------------------------------------------------------- 1 | #最短前缀 2 | 3 | ##题目描述 4 | 一个字符串的前缀是从该字符串的第一个字符起始的一个子串。例如“carbon”的前缀是有“c”,“ca”,“car”, 5 | “carb”,“carbo”,和“carbon”。空串不是前缀,但是每个非空串是它自身的子串。 6 | 我们希望能用前缀来缩略地表示单词。例如“carbohydrate”通常用“carb”来表示。在下面的例子中, 7 | “carbohydrate”能被缩写成“carboh”,但是不能被缩写成“carbo”(或其余更短的前缀),因为已经有一个单词 8 | 用“carbo”开始。 9 | carbohydrate 10 | cart 11 | carbonic 12 | caribou 13 | carriage 14 | car 15 | 一个完全匹配会覆盖一个前缀匹配,例如“car”完全匹配单词“car”。因此“car”是“car”的缩略语是没有二义 16 | 性的,“car”不会被当成“carriage”或者任何在列表中以“car”开始的单词。 17 | 现在给你一组单词,要求找到所有单词唯一标识的最短前缀。 18 | 19 | ##输入描述: 20 | 输入包含多组数据,每组数据第一行包含一个正整数n(2≤n≤1000)。 21 | 22 | 紧接着n行单词,单词只有小写字母组成,长度不超过20个字符。 23 | 24 | ##输出描述: 25 | 对应每一组数据,按照输入顺序依次输出每个单词的最短前缀。 26 | 27 | 每组数据之后输出一个空格作为分隔。 28 | 29 | ##输入例子: 30 | 3 31 | ab 32 | a 33 | acb 34 | 6 35 | carbohydrate 36 | cart 37 | carbonic 38 | caribou 39 | carriage 40 | car 41 | 42 | ##输出例子: 43 | ab 44 | a 45 | ac 46 | 47 | carboh 48 | cart 49 | carbon 50 | cari 51 | carr 52 | car -------------------------------------------------------------------------------- /042-狐狸和绳子/042-狐狸和绳子.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /042-狐狸和绳子/readme.md: -------------------------------------------------------------------------------- 1 | #狐狸和绳子 2 | 3 | ##题目描述事 4 | 当年狐狸智斗绳子,换来了生命的重生,心里美滋滋的,尾巴翘的更高了。猎人可谓是机智、勇敢, 5 | 而这件情让他颜面扫尽,因此猎人决定夺回面子,再次和狡猾的狐狸一分高下。 大家都知道当年猎人输 6 | 就输在绳子上面,因此猎人所要做的第一件事情就是从绳子上做文章。 假设一根绳子所能承受的最大的 7 | 重量为k,若一个物体的重量超过了k,明显这根绳子就会断掉。若将n根绳子扭在一起来吊起一个重量为 8 | w的物体,那每根绳子所承受的重量为w/n。 例如:有三根绳子所能承受的最大的重量分别为1N、2N、 9 | 4N(其中N表示重量的单位牛顿),那当物体的重量大于3N时第一根绳子就会断掉。计算这三根绳子所能承 10 | 受的最大的重量就是计算这三根绳子所有的组合中所能承受的最大的重量,这些组合分别为{1}、{2}、 11 | {4}、{1、2}、{1、4}、{2、4}、{1,2,4},当你挑选出其中的一种组合来吊起一个物体时要保证这 12 | 个组合中的每根绳子都不可断,如{1、4}所能承受的最大的重量为2N,很明显这三根绳子所能承受的最 13 | 大的重量为4N。 现在的问题是猎人交给你n根绳子,请你帮他计算下这n根绳子所能承受的最大的重量。 14 | 15 | ##输入描述: 16 | 输入包含多组数据。 17 | 每组数据第一行为一个整数n (1≤n≤1000),即有n条绳子。第二行包含n个整数,分别代表每根绳子 18 | 所能承受的最大的重量,每个整数之间以空格隔开,且每个整数在1到10000之间。 19 | 20 | ##输出描述: 21 | 对应每一组数据,输出这n根绳子所能承受的最大重量。 22 | 23 | ##输入例子: 24 | 3 25 | 2 1 4 26 | 3 27 | 15 2 10 28 | 29 | ##输出例子: 30 | 4 31 | 20 -------------------------------------------------------------------------------- /042-狐狸和绳子/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 2 | 2 1 4 3 | 3 4 | 15 2 10 -------------------------------------------------------------------------------- /042-狐狸和绳子/src/readme.md: -------------------------------------------------------------------------------- 1 | #狐狸和绳子 2 | 3 | ##题目描述事 4 | 当年狐狸智斗绳子,换来了生命的重生,心里美滋滋的,尾巴翘的更高了。猎人可谓是机智、勇敢, 5 | 而这件情让他颜面扫尽,因此猎人决定夺回面子,再次和狡猾的狐狸一分高下。 大家都知道当年猎人输 6 | 就输在绳子上面,因此猎人所要做的第一件事情就是从绳子上做文章。 假设一根绳子所能承受的最大的 7 | 重量为k,若一个物体的重量超过了k,明显这根绳子就会断掉。若将n根绳子扭在一起来吊起一个重量为 8 | w的物体,那每根绳子所承受的重量为w/n。 例如:有三根绳子所能承受的最大的重量分别为1N、2N、 9 | 4N(其中N表示重量的单位牛顿),那当物体的重量大于3N时第一根绳子就会断掉。计算这三根绳子所能承 10 | 受的最大的重量就是计算这三根绳子所有的组合中所能承受的最大的重量,这些组合分别为{1}、{2}、 11 | {4}、{1、2}、{1、4}、{2、4}、{1,2,4},当你挑选出其中的一种组合来吊起一个物体时要保证这 12 | 个组合中的每根绳子都不可断,如{1、4}所能承受的最大的重量为2N,很明显这三根绳子所能承受的最 13 | 大的重量为4N。 现在的问题是猎人交给你n根绳子,请你帮他计算下这n根绳子所能承受的最大的重量。 14 | 15 | ##输入描述: 16 | 输入包含多组数据。 17 | 每组数据第一行为一个整数n (1≤n≤1000),即有n条绳子。第二行包含n个整数,分别代表每根绳子 18 | 所能承受的最大的重量,每个整数之间以空格隔开,且每个整数在1到10000之间。 19 | 20 | ##输出描述: 21 | 对应每一组数据,输出这n根绳子所能承受的最大重量。 22 | 23 | ##输入例子: 24 | 3 25 | 2 1 4 26 | 3 27 | 15 2 10 28 | 29 | ##输出例子: 30 | 4 31 | 20 -------------------------------------------------------------------------------- /043-英文金曲大赛/043-英文金曲大赛.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /043-英文金曲大赛/readme.md: -------------------------------------------------------------------------------- 1 | #英文金曲大赛 2 | 3 | ##题目描述 4 | nowcoder在大一的时候参加过工商学院的“英语聚乐部”。告诉你个秘密,这个俱乐部是个好地方,不但活动精彩而且有MM。 5 | 这不,英语俱乐部举办了一个叫做“英文金曲大赛”的节目。这个节目有好多人参加,这不,成绩出来了,nowcoder当是很勇敢, 6 | 自告奋勇接下了算出大家的总得分的任务。 当时有7个评委,每个评委都要给选手打分,现在要求去掉一个最高分和去掉一个最 7 | 低分,再算出平均分。结果精确到小数点后两位。 8 | 9 | ##输入描述: 10 | 测试数据包括多个实例。 每组数据包括7个实数,代表评委们对该选手的评分。紧接着是选手的名字,名字的长度不超过 11 | 30个字符。 输入直到文件结束。 12 | 13 | ##输出描述: 14 | 算出每位选手名字和最终得分,结果保留两位有效数字(四舍五入)。 15 | 16 | ##输入例子: 17 | 10 10 10 10 10 10 9 redraiment 18 | 0 0 0 0 0 0 0 beast 19 | 20 | ##输出例子: 21 | redraiment 10.00 22 | beast 0.00 -------------------------------------------------------------------------------- /043-英文金曲大赛/src/data.txt: -------------------------------------------------------------------------------- 1 | 10 10 10 10 10 10 9 redraiment 2 | 0 0 0 0 0 0 0 beast -------------------------------------------------------------------------------- /043-英文金曲大赛/src/readme.md: -------------------------------------------------------------------------------- 1 | #英文金曲大赛 2 | 3 | ##题目描述 4 | nowcoder在大一的时候参加过工商学院的“英语聚乐部”。告诉你个秘密,这个俱乐部是个好地方,不但活动精彩而且有MM。 5 | 这不,英语俱乐部举办了一个叫做“英文金曲大赛”的节目。这个节目有好多人参加,这不,成绩出来了,nowcoder当是很勇敢, 6 | 自告奋勇接下了算出大家的总得分的任务。 当时有7个评委,每个评委都要给选手打分,现在要求去掉一个最高分和去掉一个最 7 | 低分,再算出平均分。结果精确到小数点后两位。 8 | 9 | ##输入描述: 10 | 测试数据包括多个实例。 每组数据包括7个实数,代表评委们对该选手的评分。紧接着是选手的名字,名字的长度不超过 11 | 30个字符。 输入直到文件结束。 12 | 13 | ##输出描述: 14 | 算出每位选手名字和最终得分,结果保留两位有效数字(四舍五入)。 15 | 16 | ##输入例子: 17 | 10 10 10 10 10 10 9 redraiment 18 | 0 0 0 0 0 0 0 beast 19 | 20 | ##输出例子: 21 | redraiment 10.00 22 | beast 0.00 -------------------------------------------------------------------------------- /044-鹊桥相会/044-鹊桥相会.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /044-鹊桥相会/src/data.txt: -------------------------------------------------------------------------------- 1 | 1 1 2 | 0 1 -------------------------------------------------------------------------------- /044-鹊桥相会/src/readme.md: -------------------------------------------------------------------------------- 1 | #鹊桥相会 2 | 3 | ##题目描述 4 |   一年一度的七夕又要到了,可歌可泣的牛郎织女又可以在鹊桥相会了。不知道大家有没有雅兴陪nowcoder坐在葡萄藤下倾听他们的 对话。
5 |   我们知道,牛郎要与织女相见,必须要有喜鹊搭桥。所以,牛郎必须在天河岸上等待,直到有喜鹊经过,于是牛郎可以搭乘这只喜鹊 往河对岸走。 当然,牛郎急着去见织女,所有在途中,如果有速度更快的喜鹊赶上了他,他就会换乘那只速度更快的喜鹊。
6 |   我们可以假定喜鹊的速度是恒定不变的,并且喜鹊一直是沿直线飞行的(不转弯,更不回头),牛郎坐上喜鹊所花的时间忽略不计。
7 |   现给出天河的宽度、每只喜鹊的初始位置(我们设牛郎所在位置为0,天河方向为正方向)以及它们的速度(有可能是负数,代表喜鹊往反 方向飞行),这些数据都是整数。请你来帮忙计算一下牛郎到达对岸与织女相会最少需要多少时间,让他们早些有情人终成眷属。^_^
8 |   当然,如果没有喜鹊来搭载牛郎,我们可怜的牛郎就到不了对岸与织女相会了,那我们只好很遗憾的跟牛郎说:“Can't Solve”,我们 祈祷不要发生这样的事情。 9 | 10 | ##输入描述: 11 |   第一行有两个数据w、n,分别代表天河的宽度(单位:km)和喜鹊的只数(1≤w≤1000, 1≤n≤10000)。
12 |   接下来从第二行到第n+1行每行都有两个数据t、v,分别代表1只喜鹊的初始位置(单位:m)和它的飞行速度(单位:m/s)(-1000≤t≤1000, -100≤v≤100)。
13 |   所有的数据范围都不会超过32位整数的表示范围(用int型数据不会溢出)。 14 | 15 | 16 | ##输出描述: 17 |   如果牛郎能到达对岸输出他到达对岸所花的总时间(结果精确到秒即可,小数部分舍去);否则输出“Can't Solve”。 18 | 19 | ##输入例子: 20 | ``` 21 | 1 1 22 | 0 1 23 | ``` 24 | 25 | ##输出例子: 26 | ``` 27 | 1000 28 | ``` -------------------------------------------------------------------------------- /044-鹊桥相会/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/044-鹊桥相会/src/解题思路.docx -------------------------------------------------------------------------------- /045-Homework/045-Homework.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /045-Homework/readme.md: -------------------------------------------------------------------------------- 1 | #Homework 2 | 3 | ##题目描述 4 |   临近开学了,大家都忙着收拾行李准备返校,但nowcoder却不为此担心!
5 |   因为他的心思全在暑假作业上:目前为止还未开动(-_-!!还以为他有多冷静呢)。
6 |   暑假作业是很多张试卷,我们这些从试卷里爬出来的人都知道,卷子上的题目有选择题、填空题、简答题、证明题等。
7 |   而做选择题的好处就在于工作量很少,但又因为选择题题目都普遍很长。
8 |   如果有5张试卷,其中4张是选择题,最后一张是填空题,很明显做最后一张所花的时间要比前4张长很多。
9 |   但如果你只做了选择题,虽然工作量很少,但表明上看起来也已经做了4/5的作业了。 nowcoder决定就用这样的方法来蒙混过关。
10 |   他统计出了做完每一张试卷所需的时间以及它做完后能得到的价值(按上面的原理,选择题越多价值当然就越高咯)。
11 |   现在就请你帮他安排一下,用他仅剩的一点时间来做最有价值的作业。 12 | 13 | ##输入描述: 14 |   测试数据包括多组。
15 |   每组测试数据以两个整数M,N(1≤M≤20, 1≤N≤10000)开头,分别表示试卷的数目和redraiment剩下的时间。
16 |   接下来有M行,每行包括两个整数T,V(1≤T≤N,0输入以0 0结束。 17 | 18 | 19 | ##输出描述: 20 |   对应每组测试数据输出redraiment能获得的最大价值。
21 |   保留小数点2位 22 | 23 | ##输入例子: 24 | ``` 25 | 4 20 26 | 4 10 27 | 5 22 28 | 10 3 29 | 1 2 30 | 0 0 31 | ``` 32 | 33 | ##输出例子: 34 | ``` 35 | 37.00 36 | ``` -------------------------------------------------------------------------------- /045-Homework/src/data.txt: -------------------------------------------------------------------------------- 1 | 4 20 2 | 4 10 3 | 5 22 4 | 10 3 5 | 1 2 6 | 0 0 -------------------------------------------------------------------------------- /045-Homework/src/data2.txt: -------------------------------------------------------------------------------- 1 | 4 10 2 | 4 10 3 | 5 22 4 | 10 3 5 | 1 2 6 | 0 0 -------------------------------------------------------------------------------- /045-Homework/src/readme.md: -------------------------------------------------------------------------------- 1 | #Homework 2 | 3 | ##题目描述 4 |   临近开学了,大家都忙着收拾行李准备返校,但nowcoder却不为此担心!
5 |   因为他的心思全在暑假作业上:目前为止还未开动(-_-!!还以为他有多冷静呢)。
6 |   暑假作业是很多张试卷,我们这些从试卷里爬出来的人都知道,卷子上的题目有选择题、填空题、简答题、证明题等。
7 |   而做选择题的好处就在于工作量很少,但又因为选择题题目都普遍很长。
8 |   如果有5张试卷,其中4张是选择题,最后一张是填空题,很明显做最后一张所花的时间要比前4张长很多。
9 |   但如果你只做了选择题,虽然工作量很少,但表明上看起来也已经做了4/5的作业了。 nowcoder决定就用这样的方法来蒙混过关。
10 |   他统计出了做完每一张试卷所需的时间以及它做完后能得到的价值(按上面的原理,选择题越多价值当然就越高咯)。
11 |   现在就请你帮他安排一下,用他仅剩的一点时间来做最有价值的作业。 12 | 13 | ##输入描述: 14 |   测试数据包括多组。
15 |   每组测试数据以两个整数M,N(1≤M≤20, 1≤N≤10000)开头,分别表示试卷的数目和redraiment剩下的时间。
16 |   接下来有M行,每行包括两个整数T,V(1≤T≤N,0输入以0 0结束。 17 | 18 | 19 | ##输出描述: 20 |   对应每组测试数据输出redraiment能获得的最大价值。
21 |   保留小数点2位 22 | 23 | ##输入例子: 24 | ``` 25 | 4 20 26 | 4 10 27 | 5 22 28 | 10 3 29 | 1 2 30 | 0 0 31 | ``` 32 | 33 | ##输出例子: 34 | ``` 35 | 37.00 36 | ``` -------------------------------------------------------------------------------- /046-压缩数据/046-压缩数据.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /046-压缩数据/readme.md: -------------------------------------------------------------------------------- 1 | #压缩数据 2 | 3 | ##题目描述 4 |   霍夫曼编码是一种被广泛应用而且非常有效的数据压缩技术,它使用一张字符出现频度表,根据它来构造一种将每个字符表示成二进制串的最优方式,一般可压缩掉20%~90%。
5 | ``` 6 |     |---------+-----+-----+-----+-----+------+------| 7 |     | letter | a | b | c | d | e | f | 8 |     |---------+-----+-----+-----+-----+------+------| 9 |     | count | 45 | 13 | 12 | 16 | 9 | 5 | 10 |     | code | 000 | 001 | 010 | 011 | 100 | 101 | 11 |     | huffman | 0 | 101 | 100 | 111 | 1101 | 1100 | 12 |     |---------+-----+-----+-----+-----+------+------| 13 | ``` 14 |   如上表所示,假设一篇文章包含45个字母a、13个字母b……,如果用长度相同的编码000、001等去存储这些信息,则需要(45+13+12+16+9+5)×3=300位空间。
15 |   但如果换成可变长编码,即编码长度不固定的霍夫曼编码,则仅需要45×1+13×3+12×3+16×3+9×4+5×4=224位空间。
16 |   现在给你这些原始数据,请你计算改用霍夫曼编码之后需要多少位空间。 17 | 18 | ##输入描述: 19 |   输入包含多组数据,每组数据第一行包含一个正整数n(2≤n≤50),表示字符的数量。
20 |   第二行包含n个正整数,分别表示这n个字符出现的次数,每个字符出现次数不超过10000。 21 | 22 | ##输出描述: 23 |   对应每一组数据,输出使用霍夫曼编码需要多少位空间存储这些信息。 24 | 25 | ##输入例子: 26 | ``` 27 | 6 28 | 45 13 12 16 9 5 29 | ``` 30 | 31 | ##输出例子: 32 | ``` 33 | 224 34 | ``` -------------------------------------------------------------------------------- /046-压缩数据/src/data.txt: -------------------------------------------------------------------------------- 1 | 6 2 | 45 13 12 16 9 5 -------------------------------------------------------------------------------- /046-压缩数据/src/data2.txt: -------------------------------------------------------------------------------- 1 | 33 2 | 8628 6917 4229 9979 2379 1248 5675 3711 8628 7470 6003 89 5825 9613 8782 4851 229 4299 1244 3617 7957 3178 694 7731 2347 1772 8975 2142 9840 1736 6422 8716 6201 -------------------------------------------------------------------------------- /046-压缩数据/src/data3.txt: -------------------------------------------------------------------------------- 1 | 10 2 | 1 2 3 4 5 6 7 8 9 10 -------------------------------------------------------------------------------- /046-压缩数据/src/readme.md: -------------------------------------------------------------------------------- 1 | #压缩数据 2 | 3 | ##题目描述 4 |   霍夫曼编码是一种被广泛应用而且非常有效的数据压缩技术,它使用一张字符出现频度表,根据它来构造一种将每个字符表示成二进制串的最优方式,一般可压缩掉20%~90%。
5 | ``` 6 |     |---------+-----+-----+-----+-----+------+------| 7 |     | letter | a | b | c | d | e | f | 8 |     |---------+-----+-----+-----+-----+------+------| 9 |     | count | 45 | 13 | 12 | 16 | 9 | 5 | 10 |     | code | 000 | 001 | 010 | 011 | 100 | 101 | 11 |     | huffman | 0 | 101 | 100 | 111 | 1101 | 1100 | 12 |     |---------+-----+-----+-----+-----+------+------| 13 | ``` 14 |   如上表所示,假设一篇文章包含45个字母a、13个字母b……,如果用长度相同的编码000、001等去存储这些信息,则需要(45+13+12+16+9+5)×3=300位空间。
15 |   但如果换成可变长编码,即编码长度不固定的霍夫曼编码,则仅需要45×1+13×3+12×3+16×3+9×4+5×4=224位空间。
16 |   现在给你这些原始数据,请你计算改用霍夫曼编码之后需要多少位空间。 17 | 18 | ##输入描述: 19 |   输入包含多组数据,每组数据第一行包含一个正整数n(2≤n≤50),表示字符的数量。
20 |   第二行包含n个正整数,分别表示这n个字符出现的次数,每个字符出现次数不超过10000。 21 | 22 | ##输出描述: 23 |   对应每一组数据,输出使用霍夫曼编码需要多少位空间存储这些信息。 24 | 25 | ##输入例子: 26 | ``` 27 | 6 28 | 45 13 12 16 9 5 29 | ``` 30 | 31 | ##输出例子: 32 | ``` 33 | 224 34 | ``` -------------------------------------------------------------------------------- /046-压缩数据/src/绘图1.eddx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/046-压缩数据/src/绘图1.eddx -------------------------------------------------------------------------------- /047-发工资/047-发工资.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /047-发工资/readme.md: -------------------------------------------------------------------------------- 1 | #发工资 2 | 3 | ##题目描述 4 | 对于财务处的工作人员来说,发工资那天是最忙碌的。财务处的NowCoder最近在考虑一个问题:如果每个员工的工资额都知道,最少需要准备多少张人民币,才能在给每位同事发工资的时候都不用找零呢? 5 | 6 | 这里假设员工的工资都是正整数,单位元,人民币一共有100元、50元、20元、10元、5元、2元和1元七种。 7 | 8 | ##输入描述: 9 | 输入数据包含多个测试实例,每个测试实例的第一行是一个整数n (n≤100),表示人数,然后是n个员工的工资。 10 | 11 | ##输出描述: 12 | 对于每个测试实例输出一个整数x,表示至少需要准备的人民币张数。每个输出占一行。 13 | 14 | ##输入例子: 15 | ``` 16 | 3 17 | 1 2 3 18 | 3 19 | 100 200 300 20 | ``` 21 | ##输出例子: 22 | ``` 23 | 4 24 | 6 25 | ``` -------------------------------------------------------------------------------- /047-发工资/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 2 | 1 2 3 3 | 3 4 | 100 200 300 -------------------------------------------------------------------------------- /047-发工资/src/readme.md: -------------------------------------------------------------------------------- 1 | #发工资 2 | 3 | ##题目描述 4 | 对于财务处的工作人员来说,发工资那天是最忙碌的。财务处的NowCoder最近在考虑一个问题:如果每个员工的工资额都知道,最少需要准备多少张人民币,才能在给每位同事发工资的时候都不用找零呢? 5 | 6 | 这里假设员工的工资都是正整数,单位元,人民币一共有100元、50元、20元、10元、5元、2元和1元七种。 7 | 8 | ##输入描述: 9 | 输入数据包含多个测试实例,每个测试实例的第一行是一个整数n (n≤100),表示人数,然后是n个员工的工资。 10 | 11 | ##输出描述: 12 | 对于每个测试实例输出一个整数x,表示至少需要准备的人民币张数。每个输出占一行。 13 | 14 | ##输入例子: 15 | ``` 16 | 3 17 | 1 2 3 18 | 3 19 | 100 200 300 20 | ``` 21 | ##输出例子: 22 | ``` 23 | 4 24 | 6 25 | ``` -------------------------------------------------------------------------------- /048-发放贷款/048-发放贷款.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /048-发放贷款/readme.md: -------------------------------------------------------------------------------- 1 | #发放贷款 2 | 3 | ##题目描述 4 |   迫于房价的压力,很多人选择了向银行贷款。假设银行有n万元资金可供贷款,他会根据申请的顺序,依次初次符合要求的申请。
5 |   例如,银行有10万元,A、B、C三个人分别贷款5万、8万和3万。
6 |   1. 按照顺序,先批准A的申请;
7 |   2. 此时银行剩余5万,达不到B的申请要求,因此这一批不处理B的申请;
8 |   3. C的申请能被满足,因此批准C。
9 |   等A和C偿还了贷款后,银行会发放第二批的贷款,此时B的申请就能被批准。因此,整个处理过程是A、C、B。
10 |   现在给你所需的信息,请输出银行批准贷款的顺序。 11 | 12 | ##输入描述: 13 |   输入包含多组数据,每组数据第一行包含两个正整数m(1≤m≤50)和n(1≤n≤100),代表有m个人申请贷款,以及银行的资金有n万元。
14 |   紧接着m行,每行包含一个字符串name(仅由字母组成,长度不超过16个字符)和整数金额amount(1≤amount≤n),代表申请人的姓名和申请贷款的金额。 15 | 16 | ##输出描述: 17 |   对应每一组数据,按照申请被处理的顺序依次输出申请人的姓名。
18 |   每组数据之后输出一个空行作为分隔。 19 | 20 | ##输入例子: 21 | ``` 22 | 3 10 23 | A 5 24 | B 8 25 | C 3 26 | ``` 27 | 28 | ##输出例子: 29 | ``` 30 | A 31 | C 32 | B 33 | ``` -------------------------------------------------------------------------------- /048-发放贷款/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 10 2 | A 5 3 | B 8 4 | C 3 -------------------------------------------------------------------------------- /048-发放贷款/src/readme.md: -------------------------------------------------------------------------------- 1 | #发放贷款 2 | 3 | ##题目描述 4 |   迫于房价的压力,很多人选择了向银行贷款。假设银行有n万元资金可供贷款,他会根据申请的顺序,依次初次符合要求的申请。
5 |   例如,银行有10万元,A、B、C三个人分别贷款5万、8万和3万。
6 |   1. 按照顺序,先批准A的申请;
7 |   2. 此时银行剩余5万,达不到B的申请要求,因此这一批不处理B的申请;
8 |   3. C的申请能被满足,因此批准C。
9 |   等A和C偿还了贷款后,银行会发放第二批的贷款,此时B的申请就能被批准。因此,整个处理过程是A、C、B。
10 |   现在给你所需的信息,请输出银行批准贷款的顺序。 11 | 12 | ##输入描述: 13 |   输入包含多组数据,每组数据第一行包含两个正整数m(1≤m≤50)和n(1≤n≤100),代表有m个人申请贷款,以及银行的资金有n万元。
14 |   紧接着m行,每行包含一个字符串name(仅由字母组成,长度不超过16个字符)和整数金额amount(1≤amount≤n),代表申请人的姓名和申请贷款的金额。 15 | 16 | ##输出描述: 17 |   对应每一组数据,按照申请被处理的顺序依次输出申请人的姓名。
18 |   每组数据之后输出一个空行作为分隔。 19 | 20 | ##输入例子: 21 | ``` 22 | 3 10 23 | A 5 24 | B 8 25 | C 3 26 | ``` 27 | 28 | ##输出例子: 29 | ``` 30 | A 31 | C 32 | B 33 | ``` -------------------------------------------------------------------------------- /049-最佳投资/049-最佳投资.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /049-最佳投资/readme.md: -------------------------------------------------------------------------------- 1 | #最佳投资 2 | 3 | ##题目描述 4 |   NowCoder最近在把玩股票,但因为他工作很慢,一天只能做一次“买”和“卖”。 5 | 6 |   现在告诉你每天从早上9:00到下午17:00,每个整点时刻的股票价格,请你帮他算出当天最多只做一次买卖操作(即当天要么什么都不做,要么买一次并且卖一次),每只股票最大的收益能有多少? 7 | 8 | ##输入描述: 9 |   输入有多组数据。 10 | 11 |   每组数据包含9个实数,分别代表9:00、10:00、...、17:00的股票价格。 12 | 13 | ##输出描述: 14 |   对应每一组数据,输出当天只做一次买卖操作的前提下最大收益有多少。 15 | 16 |   结果保留两位小数(四舍五入)。 17 | 18 | ##输入例子: 19 | ``` 20 | 9.3 10.1 8.3 7.7 9.2 9.4 10.5 9.9 9.8 21 | 100.3 99.2 102.1 101.8 101.3 101.1 100.9 102.3 99.9 22 | ``` 23 | ##输出例子: 24 | ``` 25 | 2.80 26 | 3.10 27 | ``` -------------------------------------------------------------------------------- /049-最佳投资/src/data.txt: -------------------------------------------------------------------------------- 1 | 9.3 10.1 8.3 7.7 9.2 9.4 10.5 9.9 9.8 2 | 100.3 99.2 102.1 101.8 101.3 101.1 100.9 102.3 99.9 3 | 90 80 70 60 50 40 30 20 10 4 | 68.62 45.33 67.89 78.5 80.15 56.76 64.47 30.98 63.38 -------------------------------------------------------------------------------- /049-最佳投资/src/data2.txt: -------------------------------------------------------------------------------- 1 | 68.62 45.33 67.89 78.5 80.15 56.76 64.47 30.98 63.38 -------------------------------------------------------------------------------- /049-最佳投资/src/readme.md: -------------------------------------------------------------------------------- 1 | #最佳投资 2 | 3 | ##题目描述 4 |   NowCoder最近在把玩股票,但因为他工作很慢,一天只能做一次“买”和“卖”。 5 | 6 |   现在告诉你每天从早上9:00到下午17:00,每个整点时刻的股票价格,请你帮他算出当天最多只做一次买卖操作(即当天要么什么都不做,要么买一次并且卖一次),每只股票最大的收益能有多少? 7 | 8 | ##输入描述: 9 |   输入有多组数据。 10 | 11 |   每组数据包含9个实数,分别代表9:00、10:00、...、17:00的股票价格。 12 | 13 | ##输出描述: 14 |   对应每一组数据,输出当天只做一次买卖操作的前提下最大收益有多少。 15 | 16 |   结果保留两位小数(四舍五入)。 17 | 18 | ##输入例子: 19 | ``` 20 | 9.3 10.1 8.3 7.7 9.2 9.4 10.5 9.9 9.8 21 | 100.3 99.2 102.1 101.8 101.3 101.1 100.9 102.3 99.9 22 | ``` 23 | ##输出例子: 24 | ``` 25 | 2.80 26 | 3.10 27 | ``` -------------------------------------------------------------------------------- /050-最大收益/050-最大收益.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /050-最大收益/readme.md: -------------------------------------------------------------------------------- 1 | # 最大收益 2 | 3 | ##题目描述 4 |   NowCoder最近专注于股票,他准备投资10000元,现在告诉你某一段时间内股票价格的历史数据,在不考虑税收等费用的前提下,请你帮忙计算10000元最多能变成多少元? 5 | 6 |   注:交易的时间和次数没有限制。 7 | 8 | ##输入描述: 9 |   输入有多组数据。每组数据第一行是一个整数n (2≤n≤10),紧接着有n个正整数代表股票价格(假设股票价格都为整数)。 10 | 11 | 12 | ##输出描述: 13 |   对应每一组数据,输出最初的10000元最多能变成多少元。 14 | 15 |   结果保留两位小数(四舍五入)。 16 | 17 | ##输入例子: 18 | ``` 19 | 5 1 2 3 4 5 20 | 5 3 1 2 5 4 21 | 4 4 3 2 1 22 | ``` 23 | 24 | ##输出例子: 25 | ``` 26 | 50000.00 27 | 50000.00 28 | 10000.00 29 | ``` -------------------------------------------------------------------------------- /050-最大收益/src/data.txt: -------------------------------------------------------------------------------- 1 | 5 1 2 3 4 5 2 | 5 3 1 2 5 4 3 | 4 4 3 2 1 4 | 5 1 2 4 3 5 5 | 5 1 4 3 5 2 6 | 5 2 3 5 1 4 7 | 10 47 35 36 34 48 31 49 57 31 45 -------------------------------------------------------------------------------- /050-最大收益/src/data2.txt: -------------------------------------------------------------------------------- 1 | 5 1 2 4 3 5 -------------------------------------------------------------------------------- /050-最大收益/src/data3.txt: -------------------------------------------------------------------------------- 1 | 5 1 4 3 5 2 -------------------------------------------------------------------------------- /050-最大收益/src/data4.txt: -------------------------------------------------------------------------------- 1 | 5 2 3 5 1 4 -------------------------------------------------------------------------------- /050-最大收益/src/data5.txt: -------------------------------------------------------------------------------- 1 | 10 47 35 36 34 48 31 49 57 31 45 -------------------------------------------------------------------------------- /050-最大收益/src/readme.md: -------------------------------------------------------------------------------- 1 | # 最大收益 2 | 3 | ##题目描述 4 |   NowCoder最近专注于股票,他准备投资10000元,现在告诉你某一段时间内股票价格的历史数据,在不考虑税收等费用的前提下,请你帮忙计算10000元最多能变成多少元? 5 | 6 |   注:交易的时间和次数没有限制。 7 | 8 | ##输入描述: 9 |   输入有多组数据。每组数据第一行是一个整数n (2≤n≤10),紧接着有n个正整数代表股票价格(假设股票价格都为整数)。 10 | 11 | 12 | ##输出描述: 13 |   对应每一组数据,输出最初的10000元最多能变成多少元。 14 | 15 |   结果保留两位小数(四舍五入)。 16 | 17 | ##输入例子: 18 | ``` 19 | 5 1 2 3 4 5 20 | 5 3 1 2 5 4 21 | 4 4 3 2 1 22 | ``` 23 | 24 | ##输出例子: 25 | ``` 26 | 50000.00 27 | 50000.00 28 | 10000.00 29 | ``` -------------------------------------------------------------------------------- /051-砌墙/051-砌墙.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /051-砌墙/readme.md: -------------------------------------------------------------------------------- 1 | #砌墙 2 | 3 | ##题目描述 4 |   NowCoder喜欢玩他的方盒子。他把那些盒子叠成不同高度的柱子,他对姐姐说:“看,我砌成了一堵墙!” “你只有把所有的柱子调整成相同的高度,那样才算是一堵真正的墙。”她回应道。经过短暂的思考,NowCoder觉得她是对的。为了使栈能一样高,他只好一个一个地搬盒子。但是他很懒,想搬最小的次数来达到目的。你能帮助他吗? 5 | 输入描述: 6 | 输入包含多组数据,每组数据第一行包含一个正整数n(1≤n≤50),代表柱子的个数。 7 | 8 |   第二行包含n个正整数h,表示每根柱子的高度。 9 | 10 | 11 | ##输出描述: 12 |   对应每组数据,输出一个整数,表示需要搬的最小次数。 13 | 14 | ##输入例子: 15 | ``` 16 | 6 17 | 5 2 4 1 7 5 18 | ``` 19 | 20 | ##输出例子: 21 | ``` 22 | 5 23 | ``` -------------------------------------------------------------------------------- /051-砌墙/src/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | /** 4 | * Author: 王俊超 5 | * Time: 2016-05-16 16:26 6 | * CSDN: http://blog.csdn.net/derrantcm 7 | * Github: https://github.com/Wang-Jun-Chao 8 | * Declaration: All Rights Reserved !!! 9 | */ 10 | public class Main { 11 | public static void main(String[] args) { 12 | Scanner scanner = new Scanner(System.in); 13 | // Scanner scanner = new Scanner(Main.class.getClassLoader().getResourceAsStream("data.txt")); 14 | while (scanner.hasNext()) { 15 | int n = scanner.nextInt(); 16 | 17 | int avg = 0; 18 | int[] pillar = new int[n]; 19 | 20 | for (int i = 0; i < n; i++) { 21 | pillar[i] = scanner.nextInt(); 22 | avg += pillar[i]; 23 | } 24 | 25 | avg /= n; 26 | int move = 0; 27 | for (int i : pillar) { 28 | if (i > avg) { 29 | move += i - avg; 30 | } 31 | } 32 | 33 | System.out.println(move); 34 | } 35 | 36 | scanner.close(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /051-砌墙/src/data.txt: -------------------------------------------------------------------------------- 1 | 6 2 | 5 2 4 1 7 5 -------------------------------------------------------------------------------- /051-砌墙/src/readme.md: -------------------------------------------------------------------------------- 1 | #砌墙 2 | 3 | ##题目描述 4 |   NowCoder喜欢玩他的方盒子。他把那些盒子叠成不同高度的柱子,他对姐姐说:“看,我砌成了一堵墙!” “你只有把所有的柱子调整成相同的高度,那样才算是一堵真正的墙。”她回应道。经过短暂的思考,NowCoder觉得她是对的。为了使栈能一样高,他只好一个一个地搬盒子。但是他很懒,想搬最小的次数来达到目的。你能帮助他吗? 5 | 输入描述: 6 | 输入包含多组数据,每组数据第一行包含一个正整数n(1≤n≤50),代表柱子的个数。 7 | 8 |   第二行包含n个正整数h,表示每根柱子的高度。 9 | 10 | 11 | ##输出描述: 12 |   对应每组数据,输出一个整数,表示需要搬的最小次数。 13 | 14 | ##输入例子: 15 | ``` 16 | 6 17 | 5 2 4 1 7 5 18 | ``` 19 | 20 | ##输出例子: 21 | ``` 22 | 5 23 | ``` -------------------------------------------------------------------------------- /052-All-in-All/052-All-in-All.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /052-All-in-All/readme.md: -------------------------------------------------------------------------------- 1 | #All-in-All 2 | 3 | ##题目描述 4 |   有两个字符串s 和t,如果即从s 中删除一些字符,将剩余的字符连接起来,即可获得t。则称t是s 的子序列。 5 |   请你开发一个程序,判断t是否是s的子序列。 6 | 7 | ##输入描述: 8 |   输入包含多组数据,每组数据包含两个字符串s和t。 9 | 10 |   它们都由数字和字母组成,且长度小于100000。 11 | 12 | ##输出描述: 13 |   对应每一组输入,如果t是s的子序列,则输出“Yes”;否则输出“No”。 14 | 15 | ##输入例子: 16 | ``` 17 | ABC ABC 18 | ABC AB 19 | ABC DE 20 | ``` 21 | 22 | ##输出例子: 23 | ``` 24 | Yes 25 | Yes 26 | No 27 | ``` -------------------------------------------------------------------------------- /052-All-in-All/src/data.txt: -------------------------------------------------------------------------------- 1 | ABC ABC 2 | ABC AB 3 | ABC DE -------------------------------------------------------------------------------- /052-All-in-All/src/readme.md: -------------------------------------------------------------------------------- 1 | #All-in-All 2 | 3 | ##题目描述 4 |   有两个字符串s 和t,如果即从s 中删除一些字符,将剩余的字符连接起来,即可获得t。则称t是s 的子序列。 5 |   请你开发一个程序,判断t是否是s的子序列。 6 | 7 | ##输入描述: 8 |   输入包含多组数据,每组数据包含两个字符串s和t。 9 | 10 |   它们都由数字和字母组成,且长度小于100000。 11 | 12 | ##输出描述: 13 |   对应每一组输入,如果t是s的子序列,则输出“Yes”;否则输出“No”。 14 | 15 | ##输入例子: 16 | ``` 17 | ABC ABC 18 | ABC AB 19 | ABC DE 20 | ``` 21 | 22 | ##输出例子: 23 | ``` 24 | Yes 25 | Yes 26 | No 27 | ``` -------------------------------------------------------------------------------- /053-Base64/053-Base64.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /053-Base64/readme.md: -------------------------------------------------------------------------------- 1 | #Base64 2 | 3 | ##题目描述 4 |   Base64是一种基于64个可打印字符来表示二进制数据的表示方法,它Base64规定每76个字符后需要加上一个回车换行。例如: 5 | `TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNp` 6 | 需要输出成 7 | ``` 8 | TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz 9 | IHNp 10 | ``` 11 |   现在给你一串加密后的字符串,请你在每76个字符后面加上一个换行符。 12 | 13 | ##输入描述: 14 |   输入有多组数据。 15 | 16 |   每组数据占一行,由字母、数字等非空白符号组成的字符串,长度不超过50000。 17 | 18 | 19 | ##输出描述: 20 |   对应每一组输入,输出相应的转换后的文本。 21 | 22 |   每一组数据之后输出一个空行作为间隔。 23 | 24 | ##输入例子: 25 | ``` 26 | TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHN 27 | IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGh 28 | ``` 29 | 30 | ##输出例子: 31 | ``` 32 | TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGl 33 | zIHN 34 | 35 | IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Y 36 | gdGh 37 | ``` -------------------------------------------------------------------------------- /053-Base64/src/data.txt: -------------------------------------------------------------------------------- 1 | TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHN 2 | IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGh 3 | TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzTWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz -------------------------------------------------------------------------------- /053-Base64/src/readme.md: -------------------------------------------------------------------------------- 1 | #Base64 2 | 3 | ##题目描述 4 |   Base64是一种基于64个可打印字符来表示二进制数据的表示方法,它Base64规定每76个字符后需要加上一个回车换行。例如: 5 | `TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNp` 6 | 需要输出成 7 | ``` 8 | TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz 9 | IHNp 10 | ``` 11 |   现在给你一串加密后的字符串,请你在每76个字符后面加上一个换行符。 12 | 13 | ##输入描述: 14 |   输入有多组数据。 15 | 16 |   每组数据占一行,由字母、数字等非空白符号组成的字符串,长度不超过50000。 17 | 18 | 19 | ##输出描述: 20 |   对应每一组输入,输出相应的转换后的文本。 21 | 22 |   每一组数据之后输出一个空行作为间隔。 23 | 24 | ##输入例子: 25 | ``` 26 | TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHN 27 | IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGh 28 | ``` 29 | 30 | ##输出例子: 31 | ``` 32 | TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGl 33 | zIHN 34 | 35 | IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Y 36 | gdGh 37 | ``` -------------------------------------------------------------------------------- /054-mkdir/054-mkdir.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /054-mkdir/readme.md: -------------------------------------------------------------------------------- 1 | #mkdir 2 | 3 | ##题目描述 4 |   工作中,每当要部署一台新机器的时候,就意味着有一堆目录需要创建。例如要创建目录“/usr/local/bin”,就需要此次创建“/usr”、“/usr/local”以及“/usr/local/bin”。好在,Linux下mkdir提供了强大的“-p”选项,只要一条命令“mkdir -p /usr/local/bin”就能自动创建需要的上级目录。 5 | 6 |   现在给你一些需要创建的文件夹目录,请你帮忙生成相应的“mkdir -p”命令。 7 | 8 | ##输入描述: 9 |   输入包含多组数据。 10 | 11 |   每组数据第一行为一个正整数n(1≤n≤1024)。 12 | 13 |   紧接着n行,每行包含一个待创建的目录名,目录名仅由数字和字母组成,长度不超过200个字符。 14 | 15 | 16 | ##输出描述: 17 |   对应每一组数据,输出相应的、按照字典顺序排序的“mkdir -p”命令。 18 | 19 |   每组数据之后输出一个空行作为分隔。 20 | 21 | ##输入例子: 22 | ``` 23 | 3 24 | /a 25 | /a/b 26 | /a/b/c 27 | 3 28 | /usr/local/bin 29 | /usr/bin 30 | /usr/local/share/bin 31 | ``` 32 | 33 | ##输出例子: 34 | ``` 35 | mkdir -p /a/b/c 36 | 37 | mkdir -p /usr/bin 38 | mkdir -p /usr/local/bin 39 | mkdir -p /usr/local/share/bin 40 | ``` -------------------------------------------------------------------------------- /054-mkdir/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 2 | /a 3 | /a/b 4 | /a/b/c 5 | 3 6 | /usr/local/bin 7 | /usr/bin 8 | /usr/local/share/bin -------------------------------------------------------------------------------- /054-mkdir/src/data2.txt: -------------------------------------------------------------------------------- 1 | 3 2 | /usr/local/bin 3 | /usr/bin 4 | /usr/local/share/bin -------------------------------------------------------------------------------- /054-mkdir/src/data3.txt: -------------------------------------------------------------------------------- 1 | 4 2 | /a 3 | /ab/b 4 | /ab/bc/c 5 | /a/b -------------------------------------------------------------------------------- /054-mkdir/src/readme.md: -------------------------------------------------------------------------------- 1 | #mkdir 2 | 3 | ##题目描述 4 |   工作中,每当要部署一台新机器的时候,就意味着有一堆目录需要创建。例如要创建目录“/usr/local/bin”,就需要此次创建“/usr”、“/usr/local”以及“/usr/local/bin”。好在,Linux下mkdir提供了强大的“-p”选项,只要一条命令“mkdir -p /usr/local/bin”就能自动创建需要的上级目录。 5 | 6 |   现在给你一些需要创建的文件夹目录,请你帮忙生成相应的“mkdir -p”命令。 7 | 8 | ##输入描述: 9 |   输入包含多组数据。 10 | 11 |   每组数据第一行为一个正整数n(1≤n≤1024)。 12 | 13 |   紧接着n行,每行包含一个待创建的目录名,目录名仅由数字和字母组成,长度不超过200个字符。 14 | 15 | 16 | ##输出描述: 17 |   对应每一组数据,输出相应的、按照字典顺序排序的“mkdir -p”命令。 18 | 19 |   每组数据之后输出一个空行作为分隔。 20 | 21 | ##输入例子: 22 | ``` 23 | 3 24 | /a 25 | /a/b 26 | /a/b/c 27 | 3 28 | /usr/local/bin 29 | /usr/bin 30 | /usr/local/share/bin 31 | ``` 32 | 33 | ##输出例子: 34 | ``` 35 | mkdir -p /a/b/c 36 | 37 | mkdir -p /usr/bin 38 | mkdir -p /usr/local/bin 39 | mkdir -p /usr/local/share/bin 40 | ``` -------------------------------------------------------------------------------- /055-University/055-University.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /055-University/readme.md: -------------------------------------------------------------------------------- 1 | #University 2 | 3 | ##题目描述 4 |   在大学里,很多单词都是一词多义,偶尔在文章里还要用引申义。这困扰NowCoder很长的时间。 5 | 6 |   他开始搜集那些单词的所有意义。他发现了一些规律,例如 7 | 8 |   “a”能用“e”来代替, “c”能用“f”来代替…… 9 | 10 |   现在他给出了字母的替换规则,如下所示,A被E替换,B被C替换,依次类推。 11 | ``` 12 | A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 13 | E C F A J K L B D G H I V W Z Y M N O P Q R S T U X 14 | a b c d e f g h i j k l m n o p q r s t u v w x y z 15 | e r w q t y g h b n u i o p s j k d l f a z x c v m 16 | ``` 17 | 18 | ##输入描述: 19 |   本题包括多组测试数据。 每组测试数据为一行:为仅由字母和空格组成的字符串(空格不变)。 20 | 21 |   输入以单行“#”结束。 22 | 23 | 24 | ##输出描述: 25 |   对应每组测试数据,替换后输出它的引申义。 26 | 27 | ##输入例子: 28 | ``` 29 | Ilttabaje zaujljg 30 | ``` 31 | 32 | ##输出例子: 33 | ``` 34 | Different meaning 35 | ``` -------------------------------------------------------------------------------- /055-University/src/data.txt: -------------------------------------------------------------------------------- 1 | Ilttabaje zaujljg -------------------------------------------------------------------------------- /055-University/src/readme.md: -------------------------------------------------------------------------------- 1 | #University 2 | 3 | ##题目描述 4 |   在大学里,很多单词都是一词多义,偶尔在文章里还要用引申义。这困扰NowCoder很长的时间。 5 | 6 |   他开始搜集那些单词的所有意义。他发现了一些规律,例如 7 | 8 |   “a”能用“e”来代替, “c”能用“f”来代替…… 9 | 10 |   现在他给出了字母的替换规则,如下所示,A被E替换,B被C替换,依次类推。 11 | ``` 12 | A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 13 | E C F A J K L B D G H I V W Z Y M N O P Q R S T U X 14 | a b c d e f g h i j k l m n o p q r s t u v w x y z 15 | e r w q t y g h b n u i o p s j k d l f a z x c v m 16 | ``` 17 | 18 | ##输入描述: 19 |   本题包括多组测试数据。 每组测试数据为一行:为仅由字母和空格组成的字符串(空格不变)。 20 | 21 |   输入以单行“#”结束。 22 | 23 | 24 | ##输出描述: 25 |   对应每组测试数据,替换后输出它的引申义。 26 | 27 | ##输入例子: 28 | ``` 29 | Ilttabaje zaujljg 30 | ``` 31 | 32 | ##输出例子: 33 | ``` 34 | Different meaning 35 | ``` -------------------------------------------------------------------------------- /056-剪花布条/056-剪花布条.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /056-剪花布条/readme.md: -------------------------------------------------------------------------------- 1 | #剪花布条 2 | 3 | ##题目描述 4 | 5 |   一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? 6 | 7 |   输入描述:
8 |     输入包含多组数据。
9 |     每组数据包含两个字符串s,t,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。 10 | 11 | 12 | ##输出描述: 13 |   对应每组输入,输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就输出0,每个结果占一行。 14 | 15 | ##输入例子: 16 | ``` 17 | abcde a3 18 | aaaaaa aa 19 | ``` 20 | 21 | ##输出例子: 22 | ``` 23 | 0 24 | 3 25 | ``` -------------------------------------------------------------------------------- /056-剪花布条/src/data.txt: -------------------------------------------------------------------------------- 1 | abcde a3 2 | aaaaaa aa 3 | aaaaaa aaa 4 | aaaaaa aaaa 5 | aaaaaa aaaaa 6 | aaaaaa aaaaaa 7 | aaaaaa aaaaaaa -------------------------------------------------------------------------------- /056-剪花布条/src/readme.md: -------------------------------------------------------------------------------- 1 | #剪花布条 2 | 3 | ##题目描述 4 | 5 |   一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? 6 | 7 |   输入描述:
8 |     输入包含多组数据。
9 |     每组数据包含两个字符串s,t,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。 10 | 11 | 12 | ##输出描述: 13 |   对应每组输入,输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就输出0,每个结果占一行。 14 | 15 | ##输入例子: 16 | ``` 17 | abcde a3 18 | aaaaaa aa 19 | ``` 20 | 21 | ##输出例子: 22 | ``` 23 | 0 24 | 3 25 | ``` -------------------------------------------------------------------------------- /057-叠筐/057-叠筐.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /057-叠筐/readme.md: -------------------------------------------------------------------------------- 1 | #叠筐 2 | 3 | ##题目描述 4 |   需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。
5 |   输入描述:
6 |   输入是一个个的三元组,分别是,外筐尺寸n(n为满足1≤n≤79的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符; 7 | 8 | ##输出描述: 9 |   输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。 10 | 11 | ##输入例子: 12 | ``` 13 | 11 * + 14 | 5 @ W 15 | ``` 16 | 17 | ##输出例子: 18 | ``` 19 | +++++++++ 20 | +*********+ 21 | +*+++++++*+ 22 | +*+*****+*+ 23 | +*+*+++*+*+ 24 | +*+*+*+*+*+ 25 | +*+*+++*+*+ 26 | +*+*****+*+ 27 | +*+++++++*+ 28 | +*********+ 29 | +++++++++ 30 | 31 | @@@ 32 | @WWW@ 33 | @W@W@ 34 | @WWW@ 35 | @@@ 36 | ``` -------------------------------------------------------------------------------- /057-叠筐/src/data.txt: -------------------------------------------------------------------------------- 1 | 11 * + 2 | 9 * + 3 | 7 * + 4 | 5 * + 5 | 3 * + 6 | 1 * + 7 | -------------------------------------------------------------------------------- /057-叠筐/src/readme.md: -------------------------------------------------------------------------------- 1 | #叠筐 2 | 3 | ##题目描述 4 |   需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。
5 |   输入描述:
6 |   输入是一个个的三元组,分别是,外筐尺寸n(n为满足1≤n≤79的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符; 7 | 8 | ##输出描述: 9 |   输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。 10 | 11 | ##输入例子: 12 | ``` 13 | 11 * + 14 | 5 @ W 15 | ``` 16 | 17 | ##输出例子: 18 | ``` 19 | +++++++++ 20 | +*********+ 21 | +*+++++++*+ 22 | +*+*****+*+ 23 | +*+*+++*+*+ 24 | +*+*+*+*+*+ 25 | +*+*+++*+*+ 26 | +*+*****+*+ 27 | +*+++++++*+ 28 | +*********+ 29 | +++++++++ 30 | 31 | @@@ 32 | @WWW@ 33 | @W@W@ 34 | @WWW@ 35 | @@@ 36 | ``` -------------------------------------------------------------------------------- /058-寄居蟹与海葵/058-寄居蟹与海葵.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /058-寄居蟹与海葵/readme.md: -------------------------------------------------------------------------------- 1 | #寄居蟹与海葵 2 | 3 | ##题目描述 4 |   寄居蟹与海葵是一对合作互助的共栖伙伴。海葵是寄居蟹最称职的门卫。它用有毒的触角去蜇那些敢来靠近它们的所有动物,保护寄居蟹。 而寄居蟹则背着行动困难的海葵,四出觅食,有福同享。
5 |   但并不是所有寄居蟹和海葵都可以做搭档的。那就要看海葵的身体是不是符合寄居蟹的螺壳。
6 |   海葵的身体是有褶皱的,而寄居蟹的螺壳同样凹凸不平,我们可以用一个大写字母组成的字符串来表示它们的高低程度, 其中A代表0,B代表1,依次类推。我们称两者相加等于25的就算是吻合,比如A和Z相吻合,B与Y吻合,依次类推。
7 |   只要海葵身体的部分序列与寄居蟹外壳的序列相吻合,就称他们可以一起生活。
8 |   比如:
9 |   1.海葵的褶皱是"ABCDEFG",寄居蟹是"ZYXWVUT"。这样,它们就可以完全吻合了。
10 |   2.海葵的褶皱是"AHBICJDKELFMGN",寄居蟹是"ZYXWVUT"。这样,寄居蟹可以和海葵的部分序列"ABCDEFG"相吻合 (注意:部分序列不改变字符原来的先后顺序,比如"ACB"就不是它的部分序列)。
11 |   3.海葵的褶皱是"ABCD",寄居蟹是"ZYXWVUT"。这样,虽然海葵可以和寄居蟹前面一段完全吻合,但它比寄居蟹要小, 不能完全保护寄居蟹的安全,所有它们是不适合的。
12 |   4.海葵的褶皱是"HIJKLMNOPQ",寄居蟹是"ZYXWVUT"。这样,它们就可以完全不吻合了。
13 |   现给你两段字符串S1、S2,分别代表海葵和寄居蟹的外壳,为了它们以后各都能快乐地生活,请你帮忙计算一下它们是不是吻合的。 14 | 15 | ##输入描述: 16 |   输入包括多组测试数据。
17 |   每组测试数据包括两个字符串H、J,分别代表海葵的外壳和寄居蟹的外壳。可以保证它们的长度都小于100000。
18 |   输入以0 0结束。 19 | 20 | 21 | ##输出描述: 22 |   如果寄居蟹和海葵的外壳能吻合,就输出"Yes",否则输出"No"。 23 | 24 | ##输入例子: 25 | ``` 26 | ABCDEFG ZYXWVUT 27 | AHBICJDKELFMGN ZYXWVUT 28 | ABCD ZYXWVUT 29 | HIJKLMNOPQ ZYXWVUT 30 | 0 0 31 | ``` 32 | 33 | ##输出例子: 34 | ``` 35 | Yes 36 | Yes 37 | No 38 | No 39 | ``` -------------------------------------------------------------------------------- /058-寄居蟹与海葵/src/data.txt: -------------------------------------------------------------------------------- 1 | ABCDEFG ZYXWVUT 2 | AHBICJDKELFMGN ZYXWVUT 3 | ABCD ZYXWVUT 4 | HIJKLMNOPQ ZYXWVUT 5 | 0 0 -------------------------------------------------------------------------------- /059-抄送列表/059-抄送列表.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /059-抄送列表/readme.md: -------------------------------------------------------------------------------- 1 | #抄送列表 2 | 3 | ##题目描述 4 |   NowCoder每天要处理许多邮件,但他并不是在收件人列表中,有时候只是被抄送。他认为这些抄送的邮件重要性比自己在收件人列表里的邮件低,因此他要过滤掉这些次要的邮件,优先处理重要的邮件。
5 |   现在给你一串抄送列表,请你判断目标用户是否在抄送列表中。 6 | 7 | ##输入描述: 8 |   输入有多组数据,每组数据有两行。 9 |   第一行抄送列表,姓名之间用一个逗号隔开。如果姓名中包含空格或逗号,则姓名包含在双引号里。总长度不超过512个字符。
10 |   第二行只包含一个姓名,是待查找的用户的名字(姓名要完全匹配)。长度不超过16个字符。 11 | 12 | ##输出描述: 13 |   如果第二行的名字出现在收件人列表中,则输出“Ignore”,表示这封邮件不重要;否则,输出“Important!”,表示这封邮件需要被优先处理。 14 | 15 | ##输入例子: 16 | ``` 17 | Joe,Kewell,Leon 18 | Joe 19 | "Letendre, Bruce",Joe,"Quan, William" 20 | William 21 | ``` 22 | 23 | ##输出例子: 24 | ``` 25 | Ignore 26 | Important! 27 | ``` -------------------------------------------------------------------------------- /059-抄送列表/src/data.txt: -------------------------------------------------------------------------------- 1 | Joe,Kewell,Leon 2 | Joe 3 | "Letendre, Bruce",Joe,"Quan, William" 4 | William 5 | "Zhang Joe","Zhang, Joe",Kewell 6 | Zhang Joe 7 | "Zhang Joe","Zhang, Joe",Kewell 8 | Zhang, Joe 9 | "Zhang Joe","Zhang, Joe",Kewell 10 | Kewel 11 | "Zhang Joe","Zhang, Joe",Kewell 12 | Kewell 13 | ",,,",",,"," " 14 | , -------------------------------------------------------------------------------- /059-抄送列表/src/data2.txt: -------------------------------------------------------------------------------- 1 | "Zhang Joe","Zhang, Joe",Kewell 2 | Zhang Joe -------------------------------------------------------------------------------- /059-抄送列表/src/data3.txt: -------------------------------------------------------------------------------- 1 | "Zhang Joe","Zhang, Joe",Kewell 2 | Zhang, Joe -------------------------------------------------------------------------------- /059-抄送列表/src/data4.txt: -------------------------------------------------------------------------------- 1 | "Zhang Joe","Zhang, Joe",Kewell 2 | Kewel -------------------------------------------------------------------------------- /059-抄送列表/src/data5.txt: -------------------------------------------------------------------------------- 1 | ",,,",",,"," " 2 | , -------------------------------------------------------------------------------- /059-抄送列表/src/readme.md: -------------------------------------------------------------------------------- 1 | #抄送列表 2 | 3 | ##题目描述 4 |   NowCoder每天要处理许多邮件,但他并不是在收件人列表中,有时候只是被抄送。他认为这些抄送的邮件重要性比自己在收件人列表里的邮件低,因此他要过滤掉这些次要的邮件,优先处理重要的邮件。
5 |   现在给你一串抄送列表,请你判断目标用户是否在抄送列表中。 6 | 7 | ##输入描述: 8 |   输入有多组数据,每组数据有两行。 9 |   第一行抄送列表,姓名之间用一个逗号隔开。如果姓名中包含空格或逗号,则姓名包含在双引号里。总长度不超过512个字符。
10 |   第二行只包含一个姓名,是待查找的用户的名字(姓名要完全匹配)。长度不超过16个字符。 11 | 12 | ##输出描述: 13 |   如果第二行的名字出现在收件人列表中,则输出“Ignore”,表示这封邮件不重要;否则,输出“Important!”,表示这封邮件需要被优先处理。 14 | 15 | ##输入例子: 16 | ``` 17 | Joe,Kewell,Leon 18 | Joe 19 | "Letendre, Bruce",Joe,"Quan, William" 20 | William 21 | ``` 22 | 23 | ##输出例子: 24 | ``` 25 | Ignore 26 | Important! 27 | ``` -------------------------------------------------------------------------------- /060-换座位/060-换座位.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /060-换座位/readme.md: -------------------------------------------------------------------------------- 1 | #换座位 2 | 3 | ##题目描述 4 |   还记得上学时每周要换座位吗?第四组换到第一组、第一组换到第二组……
5 |   现在用一个字母表示一个组,请你计算经历n周之后座位的情况。 6 | 7 | ##输入描述: 8 |   输入有多组数据,每组数据一行。
9 |   每行包括一个字符串s和整数n
10 | 11 |   1. s只有相互不同的字母构成。
12 |   2. 如果n是正整数,字符串向右移动;否则向左移动。 13 | 14 | 15 | ##输出描述: 16 |   对应每一组输入,输出调整之后的座位情况。 17 | 18 | ##输入例子: 19 | ``` 20 | ABCD 2 21 | ABCD -1 22 | ``` 23 | 24 | ##输出例子: 25 | ``` 26 | CDAB 27 | BCDA 28 | ``` -------------------------------------------------------------------------------- /060-换座位/src/data.txt: -------------------------------------------------------------------------------- 1 | ABCD 2 2 | ABCD -1 3 | ABCDE 1 4 | ABCDE 2 5 | ABCDE 3 6 | ABCDE 4 7 | ABCDE 5 8 | ABCDE -1 9 | -------------------------------------------------------------------------------- /060-换座位/src/readme.md: -------------------------------------------------------------------------------- 1 | #换座位 2 | 3 | ##题目描述 4 |   还记得上学时每周要换座位吗?第四组换到第一组、第一组换到第二组……
5 |   现在用一个字母表示一个组,请你计算经历n周之后座位的情况。 6 | 7 | ##输入描述: 8 |   输入有多组数据,每组数据一行。
9 |   每行包括一个字符串s和整数n
10 | 11 |   1. s只有相互不同的字母构成。
12 |   2. 如果n是正整数,字符串向右移动;否则向左移动。 13 | 14 | 15 | ##输出描述: 16 |   对应每一组输入,输出调整之后的座位情况。 17 | 18 | ##输入例子: 19 | ``` 20 | ABCD 2 21 | ABCD -1 22 | ``` 23 | 24 | ##输出例子: 25 | ``` 26 | CDAB 27 | BCDA 28 | ``` -------------------------------------------------------------------------------- /061-收件人列表/061-收件人列表.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /061-收件人列表/readme.md: -------------------------------------------------------------------------------- 1 | #收件人列表 2 | 3 | ##题目描述 4 |   NowCoder每天要给许多客户写电子邮件。正如你所知,如果一封邮件中包含多个收件人,收件人姓名之间会用一个逗号和空格隔开;如果收件人姓名也包含空格或逗号,则姓名需要用双引号包含。
5 |   现在给你一组收件人姓名,请你帮他生成相应的收件人列表。 6 | 7 | ##输入描述: 8 |   输入包含多组数据。
9 |   每组数据的第一行是一个整数n (1≤n≤128),表示后面有n个姓名。
10 |   紧接着n行,每一行包含一个收件人的姓名。姓名长度不超过16个字符。 11 | 12 | ##输出描述: 13 |   对应每一组输入,输出一行收件人列表。 14 | 15 | ##输入例子: 16 | ``` 17 | 3 18 | Joe 19 | Quan, William 20 | Letendre,Bruce 21 | 2 22 | Leon 23 | Kewell 24 | ``` 25 | 26 | ##输出例子: 27 | ``` 28 | Joe, "Quan, William", "Letendre,Bruce" 29 | Leon, Kewell 30 | ``` 31 | -------------------------------------------------------------------------------- /061-收件人列表/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 2 | Joe 3 | Quan, William 4 | Letendre,Bruce 5 | 2 6 | Leon 7 | Kewell -------------------------------------------------------------------------------- /061-收件人列表/src/readme.md: -------------------------------------------------------------------------------- 1 | #收件人列表 2 | 3 | ##题目描述 4 |   NowCoder每天要给许多客户写电子邮件。正如你所知,如果一封邮件中包含多个收件人,收件人姓名之间会用一个逗号和空格隔开;如果收件人姓名也包含空格或逗号,则姓名需要用双引号包含。
5 |   现在给你一组收件人姓名,请你帮他生成相应的收件人列表。 6 | 7 | ##输入描述: 8 |   输入包含多组数据。
9 |   每组数据的第一行是一个整数n (1≤n≤128),表示后面有n个姓名。
10 |   紧接着n行,每一行包含一个收件人的姓名。姓名长度不超过16个字符。 11 | 12 | ##输出描述: 13 |   对应每一组输入,输出一行收件人列表。 14 | 15 | ##输入例子: 16 | ``` 17 | 3 18 | Joe 19 | Quan, William 20 | Letendre,Bruce 21 | 2 22 | Leon 23 | Kewell 24 | ``` 25 | 26 | ##输出例子: 27 | ``` 28 | Joe, "Quan, William", "Letendre,Bruce" 29 | Leon, Kewell 30 | ``` 31 | -------------------------------------------------------------------------------- /062-最长回文/062-最长回文.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /062-最长回文/src/data.txt: -------------------------------------------------------------------------------- 1 | abcabccbadda 2 | abcabccbaddabcc -------------------------------------------------------------------------------- /062-最长回文/src/readme.md: -------------------------------------------------------------------------------- 1 | #最长回文 2 | 3 | ##题目描述 4 |   回文,亦称回环,是正读反读都能一样的字符串。例如“12321”、“abba”等。
5 |   现在给你一个字符串,请你找出其中长度最长的回文。 6 | 7 | ##输入描述: 8 |   输入有多组数据。
9 |   每组数据有一行,包含一个长度小于100个字符的字符串s,且仅由字母和数字构成。
10 |   如果有多个长度相等的回文,仅输出第一个。 11 | 12 | 13 | ##输出描述: 14 |   对应每一组输入,输出其中长度最长的回文字符串。 15 | 16 | ##输入例子: 17 | ``` 18 | abcabccbadda 19 | abcabccbaddabcc 20 | ``` 21 | 22 | ##输出例子: 23 | ``` 24 | abccba 25 | ccbaddabcc 26 | ``` -------------------------------------------------------------------------------- /063-电话号码/063-电话号码.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /063-电话号码/readme.md: -------------------------------------------------------------------------------- 1 | #电话号码 2 | 3 | #题目描述 4 | ``` 5 | 1 2 3 6 | ABC EFF 7 | 4 5 6 8 | GHI JKL MNO 9 | 7 8 9 10 | PQRS TUV WXYZ 11 | 0 12 | ``` 13 |   上图是一个电话的九宫格,如你所见一个数字对应一些字母,因此在国外企业喜欢把电话号码设计成与自己公司名字相对应。例如公司的Help Desk号码是4357,因为4对应H、3对应E、5对应L、7对应P,因此4357就是HELP。同理,TUT-GLOP就代表888-4567、310-GINO代表310-4466。
14 |   NowCoder刚进入外企,并不习惯这样的命名方式,现在给你一串电话号码列表,请你帮他转换成数字形式的号码,并去除重复的部分。 15 | 16 | ##输入描述: 17 |   输入包含多组数据。
18 |   每组数据第一行包含一个正整数n(1≤n≤1024)。
19 |   紧接着n行,每行包含一个电话号码,电话号码仅由连字符“-”、数字和大写字母组成。
20 |   没有连续出现的连字符,并且排除连字符后长度始终为7(美国电话号码只有7位)。 21 | 22 | 23 | ##输出描述: 24 |   对应每一组输入,按照字典顺序输出不重复的标准数字形式电话号码,即“xxx-xxxx”形式。
25 |   每个电话号码占一行,每组数据之后输出一个空行作为间隔符。 26 | 27 | ##输入例子: 28 | ``` 29 | 12 30 | 4873279 31 | ITS-EASY 32 | 888-4567 33 | 3-10-10-10 34 | 888-GLOP 35 | TUT-GLOP 36 | 967-11-11 37 | 310-GINO 38 | F101010 39 | 888-1200 40 | -4-8-7-3-2-7-9- 41 | 487-3279 42 | 4 43 | UTT-HELP 44 | TUT-GLOP 45 | 310-GINO 46 | 000-1213 47 | ``` 48 | 49 | ##输出例子: 50 | ``` 51 | 310-1010 52 | 310-4466 53 | 487-3279 54 | 888-1200 55 | 888-4567 56 | 967-1111 57 | 58 | 000-1213 59 | 310-4466 60 | 888-4357 61 | 888-4567 62 | ``` -------------------------------------------------------------------------------- /063-电话号码/src/data.txt: -------------------------------------------------------------------------------- 1 | 12 2 | 4873279 3 | ITS-EASY 4 | 888-4567 5 | 3-10-10-10 6 | 888-GLOP 7 | TUT-GLOP 8 | 967-11-11 9 | 310-GINO 10 | F101010 11 | 888-1200 12 | -4-8-7-3-2-7-9- 13 | 487-3279 14 | 4 15 | UTT-HELP 16 | TUT-GLOP 17 | 310-GINO 18 | 000-1213 -------------------------------------------------------------------------------- /064-解读密码/064-解读密码.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /064-解读密码/readme.md: -------------------------------------------------------------------------------- 1 | #解读密码 2 | 3 | ##题目描述 4 |   nowcoder要和朋友交流一些敏感的信息,例如他的电话号码等。因此他要对这些敏感信息进行混淆,比如在数字中间掺入一些额外的符号,让它看起来像一堆乱码。
5 |   现在请你帮忙开发一款程序,解析从nowcoder那儿接收到的信息,读取出中间有用的信息。 6 | 7 | ##输入描述: 8 |   输入有多行。
9 |   每一行有一段经过加密的信息(其中可能包含空格),并且原始信息长度不确定。 10 | 11 | ##输出描述: 12 | ``` 13 | 输出每段信息中数字信息。 14 | ``` 15 | 16 | ##输入例子: 17 | ``` 18 | $Ts!47&*s456 a23* +B9k 19 | ``` 20 | 21 | ##输出例子: 22 | ``` 23 | 47456239 24 | ``` -------------------------------------------------------------------------------- /064-解读密码/src/Main.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | /** 4 | * Author: 王俊超 5 | * Time: 2016-05-17 20:51 6 | * CSDN: http://blog.csdn.net/derrantcm 7 | * Github: https://github.com/Wang-Jun-Chao 8 | * Declaration: All Rights Reserved !!! 9 | */ 10 | public class Main { 11 | public static void main(String[] args) { 12 | Scanner scanner = new Scanner(System.in); 13 | // Scanner scanner = new Scanner(Main.class.getClassLoader().getResourceAsStream("data.txt")); 14 | while (scanner.hasNextLine()) { 15 | String line = scanner.nextLine(); 16 | System.out.println(decrypt(line)); 17 | } 18 | 19 | scanner.close(); 20 | } 21 | 22 | private static String decrypt(String s) { 23 | StringBuilder b = new StringBuilder(s.length()); 24 | 25 | for (int i = 0, j = s.length(); i < j; i++) { 26 | char c = s.charAt(i); 27 | if (c >= '0' && c <= '9') { 28 | b.append(c); 29 | } 30 | } 31 | 32 | return b.toString(); 33 | } 34 | 35 | 36 | } 37 | -------------------------------------------------------------------------------- /064-解读密码/src/data.txt: -------------------------------------------------------------------------------- 1 | $Ts!47&*s456 a23* +B9k -------------------------------------------------------------------------------- /064-解读密码/src/readme.md: -------------------------------------------------------------------------------- 1 | #解读密码 2 | 3 | ##题目描述 4 |   nowcoder要和朋友交流一些敏感的信息,例如他的电话号码等。因此他要对这些敏感信息进行混淆,比如在数字中间掺入一些额外的符号,让它看起来像一堆乱码。
5 |   现在请你帮忙开发一款程序,解析从nowcoder那儿接收到的信息,读取出中间有用的信息。 6 | 7 | ##输入描述: 8 |   输入有多行。
9 |   每一行有一段经过加密的信息(其中可能包含空格),并且原始信息长度不确定。 10 | 11 | ##输出描述: 12 | ``` 13 | 输出每段信息中数字信息。 14 | ``` 15 | 16 | ##输入例子: 17 | ``` 18 | $Ts!47&*s456 a23* +B9k 19 | ``` 20 | 21 | ##输出例子: 22 | ``` 23 | 47456239 24 | ``` -------------------------------------------------------------------------------- /065-骆驼命名法/065-骆驼命名法.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /065-骆驼命名法/readme.md: -------------------------------------------------------------------------------- 1 | #骆驼命名法 2 | 3 | ##题目描述 4 |   从C/C++转到Java的程序员,一开始最不习惯的就是变量命名方式的改变。C语言风格使用下划线分隔多个单词,例如“hello_world”;而Java则采用一种叫骆驼命名法的规则:除首个单词以外,所有单词的首字母大写,例如“helloWorld”。
5 |   请你帮可怜的程序员们自动转换变量名。 6 | 7 | ##输入描述: 8 |   输入包含多组数据。
9 |   每组数据一行,包含一个C语言风格的变量名。每个变量名长度不超过100。 10 | 11 | 12 | ##输出描述: 13 |   对应每一组数据,输出变量名相应的骆驼命名法。 14 | 15 | ##输入例子: 16 | ``` 17 | hello_world 18 | nice_to_meet_you 19 | ``` 20 | 21 | ##输出例子: 22 | ``` 23 | helloWorld 24 | niceToMeetYou 25 | ``` -------------------------------------------------------------------------------- /065-骆驼命名法/src/data.txt: -------------------------------------------------------------------------------- 1 | hello_world 2 | nice_to_meet_you -------------------------------------------------------------------------------- /065-骆驼命名法/src/readme.md: -------------------------------------------------------------------------------- 1 | #骆驼命名法 2 | 3 | ##题目描述 4 |   从C/C++转到Java的程序员,一开始最不习惯的就是变量命名方式的改变。C语言风格使用下划线分隔多个单词,例如“hello_world”;而Java则采用一种叫骆驼命名法的规则:除首个单词以外,所有单词的首字母大写,例如“helloWorld”。
5 |   请你帮可怜的程序员们自动转换变量名。 6 | 7 | ##输入描述: 8 |   输入包含多组数据。
9 |   每组数据一行,包含一个C语言风格的变量名。每个变量名长度不超过100。 10 | 11 | 12 | ##输出描述: 13 |   对应每一组数据,输出变量名相应的骆驼命名法。 14 | 15 | ##输入例子: 16 | ``` 17 | hello_world 18 | nice_to_meet_you 19 | ``` 20 | 21 | ##输出例子: 22 | ``` 23 | helloWorld 24 | niceToMeetYou 25 | ``` -------------------------------------------------------------------------------- /066-五子棋/066-五子棋.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /066-五子棋/src/data.txt: -------------------------------------------------------------------------------- 1 | .................... 2 | .................... 3 | .................... 4 | .................... 5 | ......*............. 6 | .......*............ 7 | ........*........... 8 | ....++++.*.......... 9 | ..........*......... 10 | .................... 11 | .................... 12 | .................... 13 | .................... 14 | .................... 15 | .................... 16 | .................... 17 | .................... 18 | .................... 19 | .................... 20 | .................... 21 | .................... 22 | .................... 23 | .................... 24 | .......*............ 25 | ......+*+++......... 26 | .......*............ 27 | .......*............ 28 | .................... 29 | .................... 30 | .................... 31 | .................... 32 | .................... 33 | .................... 34 | .................... 35 | .................... 36 | .................... 37 | .................... 38 | .................... 39 | .................... 40 | .................... -------------------------------------------------------------------------------- /067-单词迷阵/067-单词迷阵.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /067-单词迷阵/src/data.txt: -------------------------------------------------------------------------------- 1 | rmhlzxceuq 2 | bxmichelle 3 | mnnejluapv 4 | caellehcim 5 | xdydanagbz 6 | xinairbprr 7 | vctzevbkiz 8 | jgfavqwjan 9 | quotjenhna 10 | iumxddbxnd 11 | 7 12 | dan 13 | danz 14 | brian 15 | michelle 16 | jen 17 | jqi 18 | paul 19 | aaaaaaaaaa 20 | aaaaaaaaaa 21 | aaaaaaaaaa 22 | aaaaaaaaaa 23 | aaaaaaaaaa 24 | aaaaaaaaaa 25 | aaaaaaaaaa 26 | aaaaaaaaaa 27 | aaaaaaaaaa 28 | aaaaaaaaaa 29 | 2 30 | aaa 31 | bbb -------------------------------------------------------------------------------- /067-单词迷阵/src/data2.txt: -------------------------------------------------------------------------------- 1 | rmhlzxceuq 2 | bxmichelle 3 | mnnejluapv 4 | caellehcim 5 | xdydanagbz 6 | xinairbprr 7 | vctzevbkiz 8 | jgfavqwjan 9 | quotjenhna 10 | iumxddbxnd 11 | 1 12 | dan -------------------------------------------------------------------------------- /067-单词迷阵/src/data3.txt: -------------------------------------------------------------------------------- 1 | ababzzabab 2 | babazzbaba 3 | ababzzabab 4 | babazzbaba 5 | zzzzzzzzzz 6 | zzzzzzzzzz 7 | ababzzabab 8 | babazzbaba 9 | ababzzabab 10 | babazzbaba 11 | 5 12 | a 13 | ab 14 | aba 15 | abab 16 | ababa -------------------------------------------------------------------------------- /068-天仙配/068-天仙配.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /068-天仙配/readme.md: -------------------------------------------------------------------------------- 1 | #天仙配 2 | 3 | ##题目描述 4 |   今年的七夕异常的热闹,很多对新人都把结婚日子选在了那天。 于是,他们决定一起举办“天上地下姻缘一线牵”活动,在广场上举行集体婚礼。
5 |   为了活跃气氛,司仪想出了一个很有意思的游戏:会场有n(1≤n≤10000)对新人,司仪在地上画出一排(共2n个)格子, 每个格子里都写着一个随机的整数Ai(1≤Ai≤10000)。
6 |   游戏开始后,让新人们任意地站成一排。等他们都站好以后,司仪开始计算他们每个人自己的得分, 记分规则是:男方的分数等于把从自己所站的位置开始一直累加到开头,女方的分数等于从自己所站 位置开始一直累加到末尾。如果某一对新人的得分数是相同的,那你们就获胜。可以得到一份司仪精心准备的礼物。^_^
7 |   比如,有3对新人,地上的那一排数字为:3,6,2,4,5,2。
8 |   如果男方站在第三个位置(2),他的得分为:3+6+2=11;女方站在第4个位置(4),她的得分为4+5+2=11。两人得分相同,可以获胜。
9 |   或者男方站第6个位置(2),女方站第1个位置(3),他们的得分都等于22,也可以获胜。
10 |   这么高兴的日子不能太扫兴,所以我们发现,无论地上的数字填成什么样子,女方站在开头和男方站在末尾就一定可以获奖。 我们不得不感叹司仪的用心良苦。呵呵。
11 |   碰巧,nowcoder的姐姐和姐夫也在那天结婚,为了帮姐姐夺得奖品,nowcoder来请你帮忙,计算一下他姐姐获得奖品有多少种站法。 12 | 13 | ##输入描述: 14 |   输入包括多组测试数据。
15 |   每组测试数据包括两行。
16 |   第一行为一个数据n,即新人的对数。
17 |   第二行有2n个数据,代表地上的数字。
18 |   输入以0结束,这一行不做处理。 19 | 20 | 21 | ##输出描述: 22 |   每组输出占一行。
23 |   输出共有几种站法。 24 | 25 | ##输入例子: 26 | ``` 27 | 3 28 | 3 6 2 4 5 2 29 | 0 30 | ``` 31 | 32 | ##输出例子: 33 | ``` 34 | 2 35 | ``` -------------------------------------------------------------------------------- /068-天仙配/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 2 | 3 6 2 4 5 2 3 | 0 -------------------------------------------------------------------------------- /068-天仙配/src/readme.md: -------------------------------------------------------------------------------- 1 | #天仙配 2 | 3 | ##题目描述 4 |   今年的七夕异常的热闹,很多对新人都把结婚日子选在了那天。 于是,他们决定一起举办“天上地下姻缘一线牵”活动,在广场上举行集体婚礼。
5 |   为了活跃气氛,司仪想出了一个很有意思的游戏:会场有n(1≤n≤10000)对新人,司仪在地上画出一排(共2n个)格子, 每个格子里都写着一个随机的整数Ai(1≤Ai≤10000)。
6 |   游戏开始后,让新人们任意地站成一排。等他们都站好以后,司仪开始计算他们每个人自己的得分, 记分规则是:男方的分数等于把从自己所站的位置开始一直累加到开头,女方的分数等于从自己所站 位置开始一直累加到末尾。如果某一对新人的得分数是相同的,那你们就获胜。可以得到一份司仪精心准备的礼物。^_^
7 |   比如,有3对新人,地上的那一排数字为:3,6,2,4,5,2。
8 |   如果男方站在第三个位置(2),他的得分为:3+6+2=11;女方站在第4个位置(4),她的得分为4+5+2=11。两人得分相同,可以获胜。
9 |   或者男方站第6个位置(2),女方站第1个位置(3),他们的得分都等于22,也可以获胜。
10 |   这么高兴的日子不能太扫兴,所以我们发现,无论地上的数字填成什么样子,女方站在开头和男方站在末尾就一定可以获奖。 我们不得不感叹司仪的用心良苦。呵呵。
11 |   碰巧,nowcoder的姐姐和姐夫也在那天结婚,为了帮姐姐夺得奖品,nowcoder来请你帮忙,计算一下他姐姐获得奖品有多少种站法。 12 | 13 | ##输入描述: 14 |   输入包括多组测试数据。
15 |   每组测试数据包括两行。
16 |   第一行为一个数据n,即新人的对数。
17 |   第二行有2n个数据,代表地上的数字。
18 |   输入以0结束,这一行不做处理。 19 | 20 | 21 | ##输出描述: 22 |   每组输出占一行。
23 |   输出共有几种站法。 24 | 25 | ##输入例子: 26 | ``` 27 | 3 28 | 3 6 2 4 5 2 29 | 0 30 | ``` 31 | 32 | ##输出例子: 33 | ``` 34 | 2 35 | ``` -------------------------------------------------------------------------------- /069-广场舞/069-广场舞.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /069-广场舞/readme.md: -------------------------------------------------------------------------------- 1 | #广场舞 2 | 3 | ##题目描述 4 |   NowCoder每天下班都会经过万达广场,那里有很多大妈伴随着很high的音乐,在跳广场舞,脖子扭扭,屁股扭扭,乐哉,乐哉! 在广场上,大妈大婶排成 m 排,n列的队伍,其中有一个大妈所在的行中年龄最大,而在该列中年龄最小。我们管她叫“鞍点”,当然这个队伍中可能没有鞍点。 任意输入一个m*n的队伍,请你找出其中的鞍点。
5 |   输入描述:
6 |   输入有多组数据。
7 |   每组数据的第一行包含两个整数,m和n。紧接着是mxn(1≤m, n≤50)的矩阵,表示队伍里每位大妈的年龄。 8 | 9 | 10 | ##输出描述: 11 |   对应每组数据,按照从上到下、从左到右的顺序依次输出所有鞍点的坐标(从1开始)。
12 |   如果没有任何鞍点,输出“No Point”。
13 |   每组数据之后输出一个空行作为间隔。 14 | 15 | ##输入例子: 16 | ``` 17 | 3 4 18 | 55 68 54 82 19 | 52 66 43 66 20 | 48 77 83 70 21 | 2 3 22 | 1 2 3 23 | 4 5 6 24 | ``` 25 | 26 | ##输出例子: 27 | ``` 28 | 2 2 29 | 2 4 30 | 31 | 1 3 32 | ``` -------------------------------------------------------------------------------- /069-广场舞/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 4 2 | 55 68 54 82 3 | 52 66 43 66 4 | 48 77 83 70 5 | 2 3 6 | 1 2 3 7 | 4 5 6 -------------------------------------------------------------------------------- /069-广场舞/src/data2.txt: -------------------------------------------------------------------------------- 1 | 3 3 2 | 1 1 1 3 | 2 2 2 4 | 3 3 3 -------------------------------------------------------------------------------- /069-广场舞/src/readme.md: -------------------------------------------------------------------------------- 1 | #广场舞 2 | 3 | ##题目描述 4 |   NowCoder每天下班都会经过万达广场,那里有很多大妈伴随着很high的音乐,在跳广场舞,脖子扭扭,屁股扭扭,乐哉,乐哉! 在广场上,大妈大婶排成 m 排,n列的队伍,其中有一个大妈所在的行中年龄最大,而在该列中年龄最小。我们管她叫“鞍点”,当然这个队伍中可能没有鞍点。 任意输入一个m*n的队伍,请你找出其中的鞍点。
5 |   输入描述:
6 |   输入有多组数据。
7 |   每组数据的第一行包含两个整数,m和n。紧接着是mxn(1≤m, n≤50)的矩阵,表示队伍里每位大妈的年龄。 8 | 9 | 10 | ##输出描述: 11 |   对应每组数据,按照从上到下、从左到右的顺序依次输出所有鞍点的坐标(从1开始)。
12 |   如果没有任何鞍点,输出“No Point”。
13 |   每组数据之后输出一个空行作为间隔。 14 | 15 | ##输入例子: 16 | ``` 17 | 3 4 18 | 55 68 54 82 19 | 52 66 43 66 20 | 48 77 83 70 21 | 2 3 22 | 1 2 3 23 | 4 5 6 24 | ``` 25 | 26 | ##输出例子: 27 | ``` 28 | 2 2 29 | 2 4 30 | 31 | 1 3 32 | ``` -------------------------------------------------------------------------------- /070-求面积/070-求面积.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /070-求面积/readme.md: -------------------------------------------------------------------------------- 1 | #求面积 2 | 3 | ##题目描述 4 |   给你一张n*m的西湖地图二值图,其中西湖的轮廓用1表示,轮廓内核轮廓外均用0表示。
5 |   现在请你统计西湖的面积,即轮廓内0的个数。 6 | 7 | ##输入描述: 8 |   输入包含多组数据,每组数据第一行包含两个正整数n(3≤n≤10)和m(3≤m≤10)。
9 |   紧接着有n行,每行m个数字,代表地图,数字之间无空格。
10 |   数据保证只有一片连续的湖泊。 11 | 12 | 13 | ##输出描述: 14 |   对应每一组数据,输出西湖的面积。 15 | 16 | ##输入例子: 17 | ``` 18 | 10 10 19 | 0000000000 20 | 0001101000 21 | 0010010100 22 | 0010000010 23 | 0100000010 24 | 0100000100 25 | 0010001000 26 | 0010001000 27 | 0011010000 28 | 0000100000 29 | ``` 30 | 31 | ##输出例子: 32 | ``` 33 | 26 34 | ``` -------------------------------------------------------------------------------- /070-求面积/src/data.txt: -------------------------------------------------------------------------------- 1 | 10 10 2 | 0000000000 3 | 0001101000 4 | 0010010100 5 | 0010000010 6 | 0100000010 7 | 0100000100 8 | 0010001000 9 | 0010001000 10 | 0011010000 11 | 0000100000 -------------------------------------------------------------------------------- /070-求面积/src/readme.md: -------------------------------------------------------------------------------- 1 | #求面积 2 | 3 | ##题目描述 4 |   给你一张n*m的西湖地图二值图,其中西湖的轮廓用1表示,轮廓内核轮廓外均用0表示。
5 |   现在请你统计西湖的面积,即轮廓内0的个数。 6 | 7 | ##输入描述: 8 |   输入包含多组数据,每组数据第一行包含两个正整数n(3≤n≤10)和m(3≤m≤10)。
9 |   紧接着有n行,每行m个数字,代表地图,数字之间无空格。
10 |   数据保证只有一片连续的湖泊。 11 | 12 | 13 | ##输出描述: 14 |   对应每一组数据,输出西湖的面积。 15 | 16 | ##输入例子: 17 | ``` 18 | 10 10 19 | 0000000000 20 | 0001101000 21 | 0010010100 22 | 0010000010 23 | 0100000010 24 | 0100000100 25 | 0010001000 26 | 0010001000 27 | 0011010000 28 | 0000100000 29 | ``` 30 | 31 | ##输出例子: 32 | ``` 33 | 26 34 | ``` -------------------------------------------------------------------------------- /071-螺旋数/071-螺旋数.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /071-螺旋数/readme.md: -------------------------------------------------------------------------------- 1 | #螺旋数 2 | 3 | ##题目描述 4 |   下图是一个4阶的螺旋数阵:
5 | ``` 6 | 1 2 3 4 7 | 12 13 14 5 8 | 11 16 15 6 9 | 10 9 8 7 10 | ``` 11 |   数字从1开始,沿着顺时针方向依次填满整个矩阵。
12 |   现在给你矩阵的规模n,请你输出n阶螺旋数阵。 13 | 14 | ##输入描述: 15 |   输入包含多组数据,每组数据包含一个正整数n(1≤n≤20)。 16 | 17 | 18 | ##输出描述: 19 |   对应每组数据,输出相应的螺旋数阵。
20 |   每组数据之后输出一个空行作为分隔。 21 | 22 | ##输入例子: 23 | ``` 24 | 3 25 | 4 26 | ``` 27 | 28 | ##输出例子: 29 | ``` 30 | 1 2 3 31 | 8 9 4 32 | 7 6 5 33 | 34 | 1 2 3 4 35 | 12 13 14 5 36 | 11 16 15 6 37 | 10 9 8 7 38 | ``` -------------------------------------------------------------------------------- /071-螺旋数/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 2 | 4 3 | 7 -------------------------------------------------------------------------------- /071-螺旋数/src/data2.txt: -------------------------------------------------------------------------------- 1 | 7 -------------------------------------------------------------------------------- /071-螺旋数/src/readme.md: -------------------------------------------------------------------------------- 1 | #螺旋数 2 | 3 | ##题目描述 4 |   下图是一个4阶的螺旋数阵:
5 | ``` 6 | 1 2 3 4 7 | 12 13 14 5 8 | 11 16 15 6 9 | 10 9 8 7 10 | ``` 11 |   数字从1开始,沿着顺时针方向依次填满整个矩阵。
12 |   现在给你矩阵的规模n,请你输出n阶螺旋数阵。 13 | 14 | ##输入描述: 15 |   输入包含多组数据,每组数据包含一个正整数n(1≤n≤20)。 16 | 17 | 18 | ##输出描述: 19 |   对应每组数据,输出相应的螺旋数阵。
20 |   每组数据之后输出一个空行作为分隔。 21 | 22 | ##输入例子: 23 | ``` 24 | 3 25 | 4 26 | ``` 27 | 28 | ##输出例子: 29 | ``` 30 | 1 2 3 31 | 8 9 4 32 | 7 6 5 33 | 34 | 1 2 3 4 35 | 12 13 14 5 36 | 11 16 15 6 37 | 10 9 8 7 38 | ``` -------------------------------------------------------------------------------- /071-螺旋数/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/071-螺旋数/src/解题思路.docx -------------------------------------------------------------------------------- /072-黑白棋/072-黑白棋.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /072-黑白棋/src/data.txt: -------------------------------------------------------------------------------- 1 | ........ 2 | ........ 3 | ........ 4 | ...+*... 5 | ...*+... 6 | ........ 7 | ........ 8 | ........ 9 | 4 3 * 10 | ........ 11 | ........ 12 | ........ 13 | ..***... 14 | ...*+... 15 | ........ 16 | ........ 17 | ........ 18 | 3 3 + -------------------------------------------------------------------------------- /072-黑白棋/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/072-黑白棋/src/解题思路.docx -------------------------------------------------------------------------------- /073-NowCoder的遭遇/073-NowCoder的遭遇.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /073-NowCoder的遭遇/src/data.txt: -------------------------------------------------------------------------------- 1 | 8/31 2 | 0/0 -------------------------------------------------------------------------------- /073-NowCoder的遭遇/src/readme.md: -------------------------------------------------------------------------------- 1 | #NowCoder的遭遇 2 | 3 | ##题目描述 4 |   NowCoder的老家住在工业区,日耗电量非常大。是政府的眼中钉肉中刺,但又没办法,这里头住的可都是纳税大户呀。
5 |   今年7月,又传来了不幸的消息,政府要在7、8月对该区进行拉闸限电。但迫于压力,限电制度规则不会太抠门,政府决定从7月1日停电,然后隔一天到7月3日再停电,再隔两天到7月6日停电,一次下去,每次都比上一次晚一天。
6 |   NowCoder可是软件专业的学生,怎么离得开计算机。如果停电,就“英雄无用武之地”了。呵呵。
7 |   所以他开始盘算起自己回家的日子了,他想知道自己到家后到底要经历多少天倒霉的停电。你能帮他算一算吗? 8 | 9 | ##输入描述: 10 |   输入包括多组数据。
11 |   每组数据包括一行:redraiment到家的日期。
12 |   输入以0/0结束。 13 | 14 | ##输出描述: 15 |   对应每个输入包括一个输出。
16 |   为redraiment回家后停电的天数(包括到家那天)。 17 | 18 | ##输入例子: 19 | ``` 20 | 8/31 21 | 0/0 22 | ``` 23 | 24 | ##输出例子: 25 | ``` 26 | 0 27 | ``` -------------------------------------------------------------------------------- /074-下个月/074-下个月.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /074-下个月/readme.md: -------------------------------------------------------------------------------- 1 | #下个月 2 | 3 | ##题目描述 4 |   许多金融产品在处理持有时间时喜欢用月份做单位,即计算客户持有多少个月。
5 |   假设NowCoder从3月16日开始持有一只股票,则满一个月的时间是4月16日,到5月16日则满两个月;同理,从4月29日开始满一个月的时间是5月29日。但如果开始时间是月末,则结束日期也必须是月末,例如从4月30日开始持有,则必须到5月31日才算满1个月。
6 |   现在给你一个日期,请你帮忙计算持有n个月之后的日期。 7 | 8 | ##输入描述: 9 |   输入包括多组数据。
10 |   每组数据包含4个正整数 year(2000≤year≤2099)、month(1≤month≤12)、day(1≤day≤31)和n(1≤n≤100),分别代表开始持有的日期和持有时间。 11 | 12 | 13 | ##输出描述: 14 |   对应每一组输入,输出持有n个月之后的日期。
15 |   每组输出占一行,包含三个正整数,分别为年、月、日,中间用一个空格隔开。 16 | 17 | ##输入例子: 18 | ``` 19 | 2012 3 2 12 20 | 2013 4 29 3 21 | 2014 4 30 4 22 | ``` 23 | 24 | ##输出例子: 25 | ``` 26 | 2013 3 2 27 | 2013 7 29 28 | 2014 8 31 29 | ``` -------------------------------------------------------------------------------- /074-下个月/src/data.txt: -------------------------------------------------------------------------------- 1 | 2012 3 2 12 2 | 2013 4 29 3 3 | 2014 4 30 4 4 | 2015 1 31 1 5 | 2016 1 31 1 6 | 2011 2 28 12 7 | 2000 2 28 9 8 | 2012 2 29 12 -------------------------------------------------------------------------------- /074-下个月/src/data2.txt: -------------------------------------------------------------------------------- 1 | 2011 2 28 12 2 | 2000 2 28 9 3 | 2011 2 28 12 -------------------------------------------------------------------------------- /074-下个月/src/data3.txt: -------------------------------------------------------------------------------- 1 | 2011 2 28 12 2 | 2012 2 29 12 -------------------------------------------------------------------------------- /074-下个月/src/readme.md: -------------------------------------------------------------------------------- 1 | #下个月 2 | 3 | ##题目描述 4 |   许多金融产品在处理持有时间时喜欢用月份做单位,即计算客户持有多少个月。
5 |   假设NowCoder从3月16日开始持有一只股票,则满一个月的时间是4月16日,到5月16日则满两个月;同理,从4月29日开始满一个月的时间是5月29日。但如果开始时间是月末,则结束日期也必须是月末,例如从4月30日开始持有,则必须到5月31日才算满1个月。
6 |   现在给你一个日期,请你帮忙计算持有n个月之后的日期。 7 | 8 | ##输入描述: 9 |   输入包括多组数据。
10 |   每组数据包含4个正整数 year(2000≤year≤2099)、month(1≤month≤12)、day(1≤day≤31)和n(1≤n≤100),分别代表开始持有的日期和持有时间。 11 | 12 | 13 | ##输出描述: 14 |   对应每一组输入,输出持有n个月之后的日期。
15 |   每组输出占一行,包含三个正整数,分别为年、月、日,中间用一个空格隔开。 16 | 17 | ##输入例子: 18 | ``` 19 | 2012 3 2 12 20 | 2013 4 29 3 21 | 2014 4 30 4 22 | ``` 23 | 24 | ##输出例子: 25 | ``` 26 | 2013 3 2 27 | 2013 7 29 28 | 2014 8 31 29 | ``` -------------------------------------------------------------------------------- /075-出差/075-出差.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /075-出差/src/data.txt: -------------------------------------------------------------------------------- 1 | 17 30 14 5 8 -4 2 | 17 30 14 5 -4 8 3 | 4 0 14 0 8 -4 4 | 22 53 76 9 5 3 5 | 4 4 1 10 9 0 -------------------------------------------------------------------------------- /075-出差/src/readme.md: -------------------------------------------------------------------------------- 1 | #出差 2 | 3 | ##题目描述 4 |   NowCoder是个大忙人,经常要到国外出差。因为各个国家所在的时区不同,他要计算飞机到达目的地后当地的时间,这样才能预约来接机的司机。 你能帮帮他吗?现在给你出发时间、路程、当地时区以及目的地时区,请帮他计算到达目的地的时间。
5 | 6 | ##输入描述: 7 |   输入包含多组数据,每组数据一行。
8 |   每组数据包含六个整数a、b、c、d、e、f:
9 |   1. 其中a和b分别表示出发时间的小时和分钟(0 ≤ a ≤ 23, 0 ≤ b ≤ 59);
10 |   2. c和d表示从出发地到目的地所需时间的小时和分钟 (0 ≤ c ≤ 100, 0 ≤ d ≤ 59);
11 |   3. e表示出发地所在的时区(-12 ≤ e ≤ 12)
12 |   3. f表示目的地所在的时区(-12 ≤ f ≤ 12) 13 | 14 | 15 | ##输出描述: 16 |   对应每组输入,输出一行。
17 |   每组输出包含两个正整数,分别为到达目的地时当地时间的小时和分钟。 18 | 19 | ##输入例子: 20 | ``` 21 | 17 30 14 5 8 -4 22 | 17 30 14 5 -4 8 23 | ``` 24 | 25 | ##输出例子: 26 | ``` 27 | 19 35 28 | 19 35 29 | ``` -------------------------------------------------------------------------------- /076-淘宝网店/076-淘宝网店.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /076-淘宝网店/src/data.txt: -------------------------------------------------------------------------------- 1 | 2000 1 1 2000 1 31 2 | 2000 2 1 2000 2 29 3 | 2000 1 1 2000 2 29 4 | 2000 1 1 2000 12 31 5 | 2001 1 1 2001 12 31 6 | 2000 1 1 2001 12 31 -------------------------------------------------------------------------------- /076-淘宝网店/src/readme.md: -------------------------------------------------------------------------------- 1 | #淘宝网店 2 | 3 | ##题目描述 4 |   NowCoder在淘宝上开了一家网店。他发现在月份为素数的时候,当月每天能赚1元;否则每天能赚2元。
5 |   现在给你一段时间区间,请你帮他计算总收益有多少。 6 | 7 | ##输入描述: 8 |   输入包含多组数据。
9 |   每组数据包含两个日期from和to (2000-01-01 ≤ from ≤ to ≤ 2999-12-31)。
10 |   日期用三个正整数表示,用空格隔开:year month day。 11 | 12 | 13 | ##输出描述: 14 |   对应每一组数据,输出在给定的日期范围(包含开始和结束日期)内能赚多少钱。 15 | 16 | ##输入例子: 17 | ``` 18 | 2000 1 1 2000 1 31 19 | 2000 2 1 2000 2 29 20 | ``` 21 | 22 | ##输出例子: 23 | ``` 24 | 62 25 | 29 26 | ```` -------------------------------------------------------------------------------- /077-玛雅历/077-玛雅历.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /077-玛雅历/src/data.txt: -------------------------------------------------------------------------------- 1 | 10 zac 0 2 | 0 pop 0 3 | 10 zac 1995 4 | 2 pax 751 -------------------------------------------------------------------------------- /077-玛雅历/src/data2.txt: -------------------------------------------------------------------------------- 1 | 2 pax 751 -------------------------------------------------------------------------------- /077-玛雅历/src/data3.txt: -------------------------------------------------------------------------------- 1 | 4 pax 4583 -------------------------------------------------------------------------------- /078-程序员日/078-程序员日.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /078-程序员日/readme.md: -------------------------------------------------------------------------------- 1 | #程序员日 2 | 3 | ##题目描述 4 |   nowcoder是一个程序员,他决定把每年的第256天作为程序员的节日,所以他一直期待着这一天的到来。请实现一款软件,给定一个日期,输出这个日期是该年的第几天。 5 | 6 | ##输入描述: 7 |   输入数据有多组,每组占一行,数据格式为YYYY-MM-DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。 8 | 9 | ##输出描述: 10 |   对于每组输入数据,输出一行,表示该日期是该年的第几天。 11 | 12 | ##输入例子: 13 | ``` 14 | 2000-01-01 15 | ``` 16 | 17 | ##输出例子: 18 | ``` 19 | 1 20 | ``` -------------------------------------------------------------------------------- /078-程序员日/src/data.txt: -------------------------------------------------------------------------------- 1 | 2000-01-01 2 | 2001-03-01 -------------------------------------------------------------------------------- /078-程序员日/src/readme.md: -------------------------------------------------------------------------------- 1 | #程序员日 2 | 3 | ##题目描述 4 |   nowcoder是一个程序员,他决定把每年的第256天作为程序员的节日,所以他一直期待着这一天的到来。请实现一款软件,给定一个日期,输出这个日期是该年的第几天。 5 | 6 | ##输入描述: 7 |   输入数据有多组,每组占一行,数据格式为YYYY-MM-DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。 8 | 9 | ##输出描述: 10 |   对于每组输入数据,输出一行,表示该日期是该年的第几天。 11 | 12 | ##输入例子: 13 | ``` 14 | 2000-01-01 15 | ``` 16 | 17 | ##输出例子: 18 | ``` 19 | 1 20 | ``` -------------------------------------------------------------------------------- /079-美国节日/079-美国节日.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /079-美国节日/readme.md: -------------------------------------------------------------------------------- 1 | #美国节日 2 | 3 | ##题目描述 4 |   和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同。具体规则如下:
5 |   * 1月1日:元旦
6 |   * 1月的第三个星期一:马丁·路德·金纪念日
7 |   * 2月的第三个星期一:总统节
8 |   * 5月的最后一个星期一:阵亡将士纪念日
9 |   * 7月4日:美国国庆
10 |   * 9月的第一个星期一:劳动节
11 |   * 11月的第四个星期四:感恩节
12 |   * 12月25日:圣诞节
13 |   现在给出一个年份,请你帮忙生成当年节日的日期。 14 | 15 | ##输入描述: 16 |   输入包含多组数据,每组数据包含一个正整数year(2000≤year≤9999)。 17 | 18 | 19 | ##输出描述: 20 |   对应每一组数据,以“YYYY-MM-DD”格式输出当年所有的节日日期,每个日期占一行。
21 |   每组数据之后输出一个空行作为分隔。 22 | 23 | ##输入例子: 24 | ``` 25 | 2014 26 | 2013 27 | ``` 28 | 29 | ##输出例子: 30 | ``` 31 | 2014-01-01 32 | 2014-01-20 33 | 2014-02-17 34 | 2014-05-26 35 | 2014-07-04 36 | 2014-09-01 37 | 2014-11-27 38 | 2014-12-25 39 | 40 | 2013-01-01 41 | 2013-01-21 42 | 2013-02-18 43 | 2013-05-27 44 | 2013-07-04 45 | 2013-09-02 46 | 2013-11-28 47 | 2013-12-25 48 | ``` -------------------------------------------------------------------------------- /079-美国节日/src/data.txt: -------------------------------------------------------------------------------- 1 | 2014 2 | 2013 3 | 2000 -------------------------------------------------------------------------------- /079-美国节日/src/readme.md: -------------------------------------------------------------------------------- 1 | #美国节日 2 | 3 | ##题目描述 4 |   和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同。具体规则如下:
5 |   * 1月1日:元旦
6 |   * 1月的第三个星期一:马丁·路德·金纪念日
7 |   * 2月的第三个星期一:总统节
8 |   * 5月的最后一个星期一:阵亡将士纪念日
9 |   * 7月4日:美国国庆
10 |   * 9月的第一个星期一:劳动节
11 |   * 11月的第四个星期四:感恩节
12 |   * 12月25日:圣诞节
13 |   现在给出一个年份,请你帮忙生成当年节日的日期。 14 | 15 | ##输入描述: 16 |   输入包含多组数据,每组数据包含一个正整数year(2000≤year≤9999)。 17 | 18 | 19 | ##输出描述: 20 |   对应每一组数据,以“YYYY-MM-DD”格式输出当年所有的节日日期,每个日期占一行。
21 |   每组数据之后输出一个空行作为分隔。 22 | 23 | ##输入例子: 24 | ``` 25 | 2014 26 | 2013 27 | ``` 28 | 29 | ##输出例子: 30 | ``` 31 | 2014-01-01 32 | 2014-01-20 33 | 2014-02-17 34 | 2014-05-26 35 | 2014-07-04 36 | 2014-09-01 37 | 2014-11-27 38 | 2014-12-25 39 | 40 | 2013-01-01 41 | 2013-01-21 42 | 2013-02-18 43 | 2013-05-27 44 | 2013-07-04 45 | 2013-09-02 46 | 2013-11-28 47 | 2013-12-25 48 | ``` -------------------------------------------------------------------------------- /079-美国节日/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/079-美国节日/src/解题思路.docx -------------------------------------------------------------------------------- /079-美国节日/src/解题思路.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/079-美国节日/src/解题思路.pdf -------------------------------------------------------------------------------- /080-下一个排列/080-下一个排列.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /080-下一个排列/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 1 2 | 2 3 1 3 | 3 1 4 | 3 2 1 5 | 10 2 6 | 1 2 3 4 5 6 7 8 9 10 7 | 10 1 8 | 10 9 8 7 6 5 4 3 2 1 -------------------------------------------------------------------------------- /080-下一个排列/src/readme.md: -------------------------------------------------------------------------------- 1 | #下一个排列 2 | 3 | ##题目描述 4 |   大家知道,给出正整数n,从1到n 这n 个数可以构成n!种排列。例如n=3 时,有1 2 3、1 3 2、2 1 3、2 3 1、3 1 2、3 2 1六组排列。
5 |   现给出某个排列,求出这个排列的下k 个排列,如果遇到最后一个排列,则下1 排列为第1 个排列,即排列1 2 3…n。
6 |   例如序列为2 3 1,k = 2时,它的下1个排列为3 1 2,下2个排列为3 2 1,因此答案为3 2 1。 7 | 8 | ##输入描述: 9 |   输入包含多组数据。
10 |   每组数据第一行包含两个正整数n(1≤n≤1024)和k(1≤k≤64)。
11 |   紧接着第二行有n 个正整数,1到n。表示初始排列情况。 12 | 13 | 14 | ##输出描述: 15 |   对应每一组输入,输出第k 个排列。 16 | 17 | ##输入例子: 18 | ``` 19 | 3 1 20 | 2 3 1 21 | 3 1 22 | 3 2 1 23 | 10 2 24 | 1 2 3 4 5 6 7 8 9 10 25 | ``` 26 | 27 | ##输出例子: 28 | ``` 29 | 3 1 2 30 | 1 2 3 31 | 1 2 3 4 5 6 7 9 8 10 32 | ``` -------------------------------------------------------------------------------- /080-下一个排列/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/080-下一个排列/src/解题思路.docx -------------------------------------------------------------------------------- /081-显示器/081-显示器.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /081-显示器/src/data.txt: -------------------------------------------------------------------------------- 1 | 2 12345 2 | 3 67890 -------------------------------------------------------------------------------- /081-显示器/src/readme.md: -------------------------------------------------------------------------------- 1 | #显示器 2 | 3 | ##题目描述 4 |   你的一个朋友买了一台电脑。他以前只用过计算器,因为电脑的显示器上显示的数字的样子和计算器是不一样,所以当他使用电脑的时候会比较郁闷。为了帮助他,你决定写一个程序把在电脑上的数字显示得像计算器上一样。 5 | 6 | ##输入描述: 7 |   输入包含多组数据,每组数据包含两个整数s(1≤s≤10)和n(1≤n≤99999999)。
8 |   其中n 是要显示的数,s 是要显示的数的尺寸。 9 | 10 | 11 | ##输出描述: 12 |   显示的方式是:用 s 个“-”表示一个水平线段,用s 个“|”表示一个垂直线段。这种情况下,每一个数字需要占用s+2 列和2s+3 行。
13 |   另外,在两个数字之间要输出一个空白的列。每组数据之后输出一个空行作为分隔。
14 |   注意:输出中空白的地方都要用空格来填充。 15 | 16 | ##输入例子: 17 | ``` 18 | 2 12345 19 | 3 67890 20 | ``` 21 | 22 | ##输出例子: 23 | ``` 24 | -- -- -- 25 | | | | | | | 26 | | | | | | | 27 | -- -- -- -- 28 | | | | | | 29 | | | | | | 30 | -- -- -- 31 | 32 | --- --- --- --- --- 33 | | | | | | | | | 34 | | | | | | | | | 35 | | | | | | | | | 36 | --- --- --- 37 | | | | | | | | | 38 | | | | | | | | | 39 | | | | | | | | | 40 | --- --- --- --- 41 | ``` -------------------------------------------------------------------------------- /081-显示器/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/081-显示器/src/解题思路.docx -------------------------------------------------------------------------------- /082-棋盘上的距离/082-棋盘上的距离.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /082-棋盘上的距离/readme.md: -------------------------------------------------------------------------------- 1 | #棋盘上的距离 2 | 3 | ##题目描述 4 |   国际象棋的棋盘是黑白相间的8x8的方格,棋子放在格子中间。王、后、车、象的走子规则如下:
5 | 6 | >- 王:横、直、斜都可以走,但每步限走一格。 7 | >- 后:横、直、斜都可以走,每步格数不受限制。 8 | >- 车:横、竖均可以走,不能斜走,格数不限。 9 | >- 象:只能斜走,格数不限。 10 | 11 |   写一个程序,给定起始位置和目标位置,计算王、后、车、象从起始位置走到目标位置所需的最少步数。 12 | 13 | ##输入描述: 14 |   输入包含多组数据,每组数据包含棋盘上的两个位置,第一个是起始位置,第二个是目标位置。两个位置不相同。
15 |   位置用"字母+数字"的形式表示,字母从“a”到“h”代表列号,数字从“1”到“8”,代表行号。
16 |   例如“a1”就是第一行第一列、“f5”就是第五行第六行。 17 | 18 | 19 | ##输出描述: 20 |   对应每一组数据,输出王、后、车、象所需的最少步数,中间用一个空格隔开。
21 |   如果无法到达,就输出“Inf”。 22 | 23 | ##输入例子: 24 | ``` 25 | a1 c3 26 | f5 f8 27 | ``` 28 | 29 | ##输出例子: 30 | ``` 31 | 2 1 2 1 32 | 3 1 1 Inf 33 | ``` -------------------------------------------------------------------------------- /082-棋盘上的距离/src/data.txt: -------------------------------------------------------------------------------- 1 | a1 c3 2 | f5 f8 3 | h4 a1 -------------------------------------------------------------------------------- /082-棋盘上的距离/src/data2.txt: -------------------------------------------------------------------------------- 1 | h4 a1 -------------------------------------------------------------------------------- /082-棋盘上的距离/src/readme.md: -------------------------------------------------------------------------------- 1 | #棋盘上的距离 2 | 3 | ##题目描述 4 |   国际象棋的棋盘是黑白相间的8x8的方格,棋子放在格子中间。王、后、车、象的走子规则如下:
5 | 6 | >- 王:横、直、斜都可以走,但每步限走一格。 7 | >- 后:横、直、斜都可以走,每步格数不受限制。 8 | >- 车:横、竖均可以走,不能斜走,格数不限。 9 | >- 象:只能斜走,格数不限。 10 | 11 |   写一个程序,给定起始位置和目标位置,计算王、后、车、象从起始位置走到目标位置所需的最少步数。 12 | 13 | ##输入描述: 14 |   输入包含多组数据,每组数据包含棋盘上的两个位置,第一个是起始位置,第二个是目标位置。两个位置不相同。
15 |   位置用"字母+数字"的形式表示,字母从“a”到“h”代表列号,数字从“1”到“8”,代表行号。
16 |   例如“a1”就是第一行第一列、“f5”就是第五行第六行。 17 | 18 | 19 | ##输出描述: 20 |   对应每一组数据,输出王、后、车、象所需的最少步数,中间用一个空格隔开。
21 |   如果无法到达,就输出“Inf”。 22 | 23 | ##输入例子: 24 | ``` 25 | a1 c3 26 | f5 f8 27 | ``` 28 | 29 | ##输出例子: 30 | ``` 31 | 2 1 2 1 32 | 3 1 1 Inf 33 | ``` -------------------------------------------------------------------------------- /082-棋盘上的距离/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/082-棋盘上的距离/src/解题思路.docx -------------------------------------------------------------------------------- /083-目标柏林/083-目标柏林.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /083-目标柏林/readme.md: -------------------------------------------------------------------------------- 1 | #目标柏林 2 | 3 | ##题目描述 4 |   1945年初,苏军和英美联军已从东西两面攻入德国国境。 4月初,在苏军和英美联军的夹击下,德军只能龟缩在以柏林为中心的德国东部的狭长地带,成了瓮中之鳖。 但希特勒困兽犹斗,一方面发出摧毁一切设施,实行“焦土”政策的指令; 另一方面下令把德国分为南北两个行政区,各自作战,他自己则固守柏林。
5 |   在这一天,苏军结果一份传自柏林的加密电文。经初步破译,显示希特勒要调集100万兵力, 在柏林周围筑起了三层防卫圈,并集中3300架飞机,1500多辆坦克,1万门火炮和迫击炮,准备死守柏林。 形势很危机,我们需要马上破译所有密码。请你来遍个程序帮忙破译。
6 |   苏军知道德军用的加密方法是这样的:
7 |   1.获得一段文字后,求出它的长度(包括空格)len。
8 |   2.进入加密运算的第1步:把所有下标是1倍数的字符做顺时针旋转。
9 |   3.进入加密运算的第2步:把所有下标是2倍数的字符做逆时针旋转。
10 |   4.进入加密运算的第3步:把所有下标是1倍数的字符做顺时针旋转。
11 |   5.按上面的规则,第奇数步按顺时针旋转,偶数步按逆时针旋转,一直到第len步为止。
12 |   比如原文是:abcde
13 |   1.获得长度len = 5
14 |   2.1的倍数有1、2、3、4、5,所以把这5个字符按顺时针旋转,得到eabcd。
15 |   3.2的倍数有2、4,所以把这2个字符按逆时针旋转,得到ecbad。
16 |   4.3的倍数有3,所以把这1个字符按顺时针旋转,得到ecbad。
17 |   5.4的倍数有4,所以把这1个字符按逆时针旋转,得到ecbad。
18 |   6.5的倍数有5,所以把这1个字符按顺时针旋转,得到ecbad。
19 |   最后的结果是ecbad。
20 |   现在给你加密后的文章,让你还原成原来的文章。
21 | 22 | ##输入描述: 23 |   输入一篇加密后的文章,每行为一段。每段不超过1000个字符。
24 |   输入以文件结束(EOF)为止。 25 | 26 | ##输出描述: 27 |   输出解密后的文章。
28 |   每段一行。 29 | 30 | ##输入例子: 31 | ``` 32 | ecbad 33 | ``` 34 | 35 | ##输出例子: 36 | ``` 37 | abcde 38 | ``` -------------------------------------------------------------------------------- /083-目标柏林/src/data.txt: -------------------------------------------------------------------------------- 1 | ecbad 2 | 938142657 -------------------------------------------------------------------------------- /083-目标柏林/src/readme.md: -------------------------------------------------------------------------------- 1 | #目标柏林 2 | 3 | ##题目描述 4 |   1945年初,苏军和英美联军已从东西两面攻入德国国境。 4月初,在苏军和英美联军的夹击下,德军只能龟缩在以柏林为中心的德国东部的狭长地带,成了瓮中之鳖。 但希特勒困兽犹斗,一方面发出摧毁一切设施,实行“焦土”政策的指令; 另一方面下令把德国分为南北两个行政区,各自作战,他自己则固守柏林。
5 |   在这一天,苏军结果一份传自柏林的加密电文。经初步破译,显示希特勒要调集100万兵力, 在柏林周围筑起了三层防卫圈,并集中3300架飞机,1500多辆坦克,1万门火炮和迫击炮,准备死守柏林。 形势很危机,我们需要马上破译所有密码。请你来遍个程序帮忙破译。
6 |   苏军知道德军用的加密方法是这样的:
7 |   1.获得一段文字后,求出它的长度(包括空格)len。
8 |   2.进入加密运算的第1步:把所有下标是1倍数的字符做顺时针旋转。
9 |   3.进入加密运算的第2步:把所有下标是2倍数的字符做逆时针旋转。
10 |   4.进入加密运算的第3步:把所有下标是1倍数的字符做顺时针旋转。
11 |   5.按上面的规则,第奇数步按顺时针旋转,偶数步按逆时针旋转,一直到第len步为止。
12 |   比如原文是:abcde
13 |   1.获得长度len = 5
14 |   2.1的倍数有1、2、3、4、5,所以把这5个字符按顺时针旋转,得到eabcd。
15 |   3.2的倍数有2、4,所以把这2个字符按逆时针旋转,得到ecbad。
16 |   4.3的倍数有3,所以把这1个字符按顺时针旋转,得到ecbad。
17 |   5.4的倍数有4,所以把这1个字符按逆时针旋转,得到ecbad。
18 |   6.5的倍数有5,所以把这1个字符按顺时针旋转,得到ecbad。
19 |   最后的结果是ecbad。
20 |   现在给你加密后的文章,让你还原成原来的文章。
21 | 22 | ##输入描述: 23 |   输入一篇加密后的文章,每行为一段。每段不超过1000个字符。
24 |   输入以文件结束(EOF)为止。 25 | 26 | ##输出描述: 27 |   输出解密后的文章。
28 |   每段一行。 29 | 30 | ##输入例子: 31 | ``` 32 | ecbad 33 | ``` 34 | 35 | ##输出例子: 36 | ``` 37 | abcde 38 | ``` -------------------------------------------------------------------------------- /083-目标柏林/src/解题思路.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/083-目标柏林/src/解题思路.docx -------------------------------------------------------------------------------- /084-私钥/084-私钥.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /084-私钥/readme.md: -------------------------------------------------------------------------------- 1 | #私钥 2 | 3 | ##题目描述 4 |   我们公司开始使用一种基于一组私有钥匙的全新加密系统。首先选择n 个不同的数a1 ; . . .; an,它们都大于0 小于等于n。然后把待加密信息中的字符和密钥中的数字一一对应起来,信息中位于i 位置的字符将被写到加密信息的第ai 个位置。如此反复加密k次。
5 |   信息长度小于等于n。如果信息比 n 短,用空格填补直到信息长度为n。
6 |   请你帮助实现一个程序,实现自动加密过程。 7 | 8 | ##输入描述: 9 |   输入包含多组数据,每组数据的第一行包含两个正整数n(1≤n≤128)和k(1≤k≤10)。
10 |   紧接着第二行包含n个正整数,即加密系统的私钥。
11 |   第三行包含一个由字母和数字组成的待加密信息,长度不超过n。 12 | 13 | 14 | ##输出描述: 15 |   对应每一组数据,输出加密后的信息。 16 | 17 | ##输入例子: 18 | ``` 19 | 3 2 20 | 3 1 2 21 | ABC 22 | 3 1 23 | 1 3 2 24 | DEF 25 | ``` 26 | 27 | ##输出例子: 28 | ``` 29 | CAB 30 | DFE 31 | ``` -------------------------------------------------------------------------------- /084-私钥/src/data.txt: -------------------------------------------------------------------------------- 1 | 3 2 2 | 3 1 2 3 | ABC 4 | 3 1 5 | 1 3 2 6 | DEF -------------------------------------------------------------------------------- /084-私钥/src/readme.md: -------------------------------------------------------------------------------- 1 | #私钥 2 | 3 | ##题目描述 4 |   我们公司开始使用一种基于一组私有钥匙的全新加密系统。首先选择n 个不同的数a1 ; . . .; an,它们都大于0 小于等于n。然后把待加密信息中的字符和密钥中的数字一一对应起来,信息中位于i 位置的字符将被写到加密信息的第ai 个位置。如此反复加密k次。
5 |   信息长度小于等于n。如果信息比 n 短,用空格填补直到信息长度为n。
6 |   请你帮助实现一个程序,实现自动加密过程。 7 | 8 | ##输入描述: 9 |   输入包含多组数据,每组数据的第一行包含两个正整数n(1≤n≤128)和k(1≤k≤10)。
10 |   紧接着第二行包含n个正整数,即加密系统的私钥。
11 |   第三行包含一个由字母和数字组成的待加密信息,长度不超过n。 12 | 13 | 14 | ##输出描述: 15 |   对应每一组数据,输出加密后的信息。 16 | 17 | ##输入例子: 18 | ``` 19 | 3 2 20 | 3 1 2 21 | ABC 22 | 3 1 23 | 1 3 2 24 | DEF 25 | ``` 26 | 27 | ##输出例子: 28 | ``` 29 | CAB 30 | DFE 31 | ``` -------------------------------------------------------------------------------- /085-装箱/085-装箱.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /085-装箱/readme.md: -------------------------------------------------------------------------------- 1 | #装箱 2 | 3 | ##题目描述 4 |   一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1×1、2×2、3×3、4×4、5×5、6×6。这些产品通常使用一个 6×6×h 的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。 5 | 6 | ##输入描述: 7 |   输入包含多组数据。 8 |   每组数据一行,包含六个自然数,分别表示1×1至6×6这六种产品的数量。 9 | 10 | ##输出描述: 11 |   对应每组输入,输出最小的包裹数。 12 | 13 | ##输入例子: 14 | ``` 15 | 0 0 4 0 0 1 16 | 7 5 1 0 0 0 17 | ``` 18 | 19 | ##输出例子: 20 | ``` 21 | 2 22 | 1 23 | ``` -------------------------------------------------------------------------------- /085-装箱/src/data.txt: -------------------------------------------------------------------------------- 1 | 0 0 4 0 0 1 2 | 7 5 1 0 0 0 3 | 8 5 1 0 0 0 4 | 12 0 0 0 1 0 5 | 37 10 5 2 2 2 6 | 29 84 43 9 56 42 -------------------------------------------------------------------------------- /085-装箱/src/data2.txt: -------------------------------------------------------------------------------- 1 | 37 10 5 2 2 2 -------------------------------------------------------------------------------- /085-装箱/src/data3.txt: -------------------------------------------------------------------------------- 1 | 29 84 43 9 56 42 -------------------------------------------------------------------------------- /085-装箱/src/readme.md: -------------------------------------------------------------------------------- 1 | #装箱 2 | 3 | ##题目描述 4 |   一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1×1、2×2、3×3、4×4、5×5、6×6。这些产品通常使用一个 6×6×h 的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。 5 | 6 | ##输入描述: 7 |   输入包含多组数据。 8 |   每组数据一行,包含六个自然数,分别表示1×1至6×6这六种产品的数量。 9 | 10 | ##输出描述: 11 |   对应每组输入,输出最小的包裹数。 12 | 13 | ##输入例子: 14 | ``` 15 | 0 0 4 0 0 1 16 | 7 5 1 0 0 0 17 | ``` 18 | 19 | ##输出例子: 20 | ``` 21 | 2 22 | 1 23 | ``` -------------------------------------------------------------------------------- /ASCII.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Wang-Jun-Chao/ProgrammingMarathon/1cf4fa3dd14db7beedd5b4039c4696b47dc3454d/ASCII.jpg -------------------------------------------------------------------------------- /template.txt: -------------------------------------------------------------------------------- 1 | public static void main(String[] args) { 2 | // Scanner scanner = new Scanner(System.in); 3 | Scanner scanner = new Scanner(Main.class.getClassLoader().getResourceAsStream("data.txt")); 4 | while (scanner.hasNext()) { 5 | int line = scanner.nextInt(); 6 | } 7 | 8 | scanner.close(); 9 | } --------------------------------------------------------------------------------