看过题解后如果觉得还算有用,请帮忙加点我所在团队博客访问量
http://www.cnblogs.com/newbe/p/4069834.html
http://www.cnblogs.com/newbe/p/4072005.html
求赞求祝福啊!!!
http://www.cnblogs.com/newbe/p/4058097.html
软工老师太狠心,还请可怜一下同课不同命的我们吧~点一下文章末尾的推荐什么的呗,有个回复什么的就更好了!
1、序列的第n项
显然暴力会超时,这是一道类似贪心构造的题解
每次计算当前数字的k倍的各位数的和,模仿竖式乘法即可(但是不产生新数组,可能越界也没必要)
然后计算两种差值,如果为正的话,那么可以直接搞,从后向前每一位尽量贪心补成最大值,直到把差值补全,注意一些小细节
如果为负的话,还是贪心的构造,我们从个位起开始累加数位和,直至该值大于pre_sum(之前数位和)-sum(*k后的数位和),大于该值后,向数组的下一位进1,若进1之前下一位就已经为9,则继续不停向前进位,(注意过程中每个经过的数位都应该将其清0),那么该数中需要变化的最高位确定后,就可以类似差值(此时差值为当前记录的总数位和-1+之前负的差值)大于0时的操作
然后for循环贪心搞个n-1次即可
2、放置正方形
显然暴力会超时,这是一道水题
由于格子只可能是0或1,那么我们只要开个二维数组存1*1~x*y的矩形的各个点和即可,这时对于每个点,只要确定x,y到x+i,y+i的一个正方形中所有点和是否含有0即可,判断方法就是如果点和大于0的话就无法放置正方形(可以把读入的1和0取异或,即1表示有障碍)
1*1~x*y的矩形的各个点和很好求,画图即可,x,y到x+i,y+i的一个正方形中所有点和同理
3、Gray码
方法都告诉你了,直接模拟即可,真没什么好讲的
4、矩阵乘法B
这次的矩阵之间没有了空行,其实还是没啥可说的,先读入一行确定了k,那么m就是总行数-k
然后就像之前那样搞就好了..
无聊的题
5、单词连接
这题还有有一定的技术含量的,课件上也已经讲过了,
其实就是并查集+欧拉回路的性质,欧拉回路和欧拉通路的判定可以总结为如下:
1)所有的点联通
2)欧拉回路中所有点的入度和出度一样。
3)欧拉通路中起点的入度 - 出度 = 1,终点的 初度 - 入度 = 1, 其他的所有点入度 = 出度;
还是不知道怎么写的话可以看hdu上的同类型一道题:hdu 1116
hdu 1116的题解我就不贴了,大家自行百度