青少年编程知识记录 codecoming

【题解】山区建小学

【题目描述】政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往。已知任意两个相邻的村庄之间的距离为di(为正整数),其中,0<i<m。为了提高山区的文化素质,政府又决定从m个村中选择n个村建小学(设0<n≤m<500。请根据给定的m、n以及所有相邻村庄的距离,选择在哪些村庄建小学,才使得所有村到最近小学的距离总和最小,计算最小值。【输入】第1行为m和n,其间用空格间隔第2行为m−1 个整数,依次表示从一
作者:亿万年的星光 分类:题解目录 浏览:

【题解】踩方格

【题目描述】有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:a、每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;b、走过的格子立即塌陷无法再走第二次;c、只能向北、东、西三个方向走;请问:如果允许在方格矩阵上走n步,共有多少种不同的方案。2种走法只要有一步不一样,即被认为是不同的方案。【输入】允许在方格上行走的步数n(n≤20)。【输出】计算出的方案数量。【输入样例】2【输出样例】7
作者:亿万年的星光 分类:题解目录 浏览:

【题解】移动路线

【题目描述】X桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。小明是个调皮的孩子,一天他捉来一只蚂蚁,不小心把蚂蚁的右脚弄伤了,于是蚂蚁只能向上或向右移动。小明把这只蚂蚁放在左下角的方格中,蚂蚁从   左下角的方格中移动到右上角的方格中,每步移动一个方格。蚂蚁始终在方格矩阵内移动,请计算出不同的移动路线的数目。   对于1行1列的方格矩阵,蚂
作者:亿万年的星光 分类:题解目录 浏览:

【题解】队列问题

4.队列问题(lru.cpp)

【题目描述】

有一个大小为n的页面缓存队列,初始为空,当计算机访问页面时,若缓存队列没有该页面,则加入到缓存队列中,若队列已满,则将删除访问时间最远的页面。

有Q次询问,每次询问输入一个整型x,表示访问页面x。若缓存队列中有则输出yes,否则输出no。

【输入描述】

第一行,2个空格隔开正整数n,Q

以下Q行:每行是一个整型x。

【输出描述】

Q行,每行可能为yes或者no

【样例输入】

3 10  1  2  1  3  5  6  1  5  2  6



【样例输出】

no  no  yes  no  no  no  no  yes  no  no



【样例解释】

【数据范围】

60%的数据:n<=1000,Q<=1000;

100%的数据:n<=100000,Q<=100000

作者:亿万年的星光 分类:题解目录 浏览:

【题解】计数2的N次方

【题目描述】



任意给定一个正整数N(N≤100),计算2的n次方的值。

【输入描述】



输入一个正整数N。

【输出描述】

输出2的N次方的值。

【样例输入】

5

【样例输出】

32
作者:亿万年的星光 分类:题解目录 浏览:

【题解】大整数减法

【题目描述】

求两个大的正整数相减的差。

【输入】

共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。

【输出】

一行,即所求的差。

【输入样例】

9999999999999999999999999999999999999

9999999999999

【输出样例】

9999999999999999999999990000000000000



作者:亿万年的星光 分类:题解目录 浏览:

【题解】大整数加法

【题目描述】

求两个不超过200位的非负整数的和。

【输入】

有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。

【输出】

一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。

【输入样例】

22222222222222222222

33333333333333333333

【输出样例】

55555555555555555555

作者:亿万年的星光 分类:题解目录 浏览:

【算法】高精度(2)

五、高精度处理进位与借位    其实也很简单,我们再来模拟一下,1439+887的时候,首先我们最低位相加,得到16,那么答案最低位就是6,再进个1,然后两数的十位相加,3+8=11,然后再加上进位的1,就是11+1=12,所以答案十位就是2,再进1,4+8+1=13,答案百位是3,进1,1+0+1=2,答案千位是2。所以结果就是6232!哦,不对反了,是2326,这里要注意一下,输出的时候是倒着输出的,千万不要忘了。总结一下,进位的步骤大致如下:1、将当前位置的数
作者:亿万年的星光 分类:算法 浏览:

【算法】高精度(1)

一、  什么是高精度高精度算法,属于处理大数字的数学计算方法。在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字。一般这类数字我们统称为高精度数,高精度算法是用计算机对于超大数据的一种模拟加,减,乘,除,乘方,阶乘,开方等运算。对于非常庞大的数字无法在计算机中正常存储,于是,我们可以将这个数字拆开,拆成一位一位的,或者是几位几位的存储到一个数组中, 用一个数组去表示一个数字,这样这个数字就被称为是高精度数。高精度算法就是能处理高精度数各种运算的算法,
作者:亿万年的星光 分类:算法 浏览:

【题解】区间数位个数

区间数位个数(digit.cpp)

【描述】

给定整数n和整数k,求出1~n中所有数的每一位数字中,出现数字k的次数。

【输入】

第一行是两个个整数n和k

【输出】

一个整数表示答案。

【样例输入输出】

light.in

light.out

123456 5

58993



【数据范围】

60%的数据:n<=1e6,1<=k<=9

80%的数据:n<=1e12,1<=k<=9

 

作者:亿万年的星光 分类:题解目录 浏览: