杭电oj100 P3

1.coin change
直接用暴力求解

2.fibbonacci number
直接都告诉你了递推公式

3.单词数
也就是判断一篇句子当中文章的数量,其实就是分类,首先是只有前一个是空格后一个是单词才能算是单词的起点,然后前一个是单词,后一个是空格才算是单词的终点

4.无限的路
使用暴力检索的方式,求两点之间的距离,这道题和之前的蜜蜂的路不一样,是因为之前两点是不一定过同一条直线的,而这里是两点都会过同一条路线,所以只需要将大的点到原点的距离减去小的点到原点的距离即可。所以就变成了,怎么求一个点到原点的距离:这道题的思路在于1.因为是斜线的,所以每条斜线都是x+y也就是这个是固定的,2.求边长,他里面有两类边长,一种是根号2 ,还有一种是底边第i,高是i+!的斜边,需要用勾股定理求出来 然后来他判断他在哪个位置即可
按照图中点的次序 ,是按照斜线来访问的,在每条斜线上都有(x+y)= 常量,那么就很容易计算出每个点到上一个点的距离了,接下来打表把所有点到(0,0)的距离计算出来就可以了。

5.叠筐
很奇怪的画图题,我没写

6.夹角有多大
也就是求表的时针和分针之间的角度,其实这是个数学问题:一个钟表是360度,有十二个小时,所以一个小时30度,一个小时有60分针,所以一分钟0.5度,继续,一分钟有六十秒,所以一秒钟有(0.5/60)
度,所以时时间换算好即可,

7.汉诺塔
和之前那道汉诺塔类似,只不过这个多了一些条件,所以需要再换算换算即可

8.复习时间
这道题之前看的解析,感觉是出题人有些误解,或者说没有出好题,直接就是100减去最小难度即可

9.选课时间
就是母函数问题:
我在这里专门写了一篇博客:https://blog.csdn.net/qq_41115379/article/details/105068349

10.夹角有多大
这里用到了反三角函数 acos和数学公式 |AB|=|A|*|B|cos角度

11.找单词
也就是母函数,有写过:https://blog.csdn.net/qq_41115379/article/details/104906584

12.简易版之最短距离
这道题还是在于思路吧,排序之后,找到最中间的那个点作为起点,然后左边的这个点减去那些点,右边的点减去这个点,然后依次输出

13.数塔
这是一个动态规划加上递归的题,找到规律即可
dp[i][j]+=max(dp[i+1][j],dp[i][j+1])

14.核反应堆
类似,也是递归和动态规划

15.A1=?
这是一道数学题, 我没写

16.剪花布条
这是一道好题,主要还是在于for循环的运用,核心代码是这样的

 int count2=0;
                for(j=0,k=i;j<le2,k<i+le2;j++,k++){//这个循环就是两个长度都为le2范围的数组进行对比
                    if(a1[k]==a2[j]){
                        count2++;
                    }
                }
                if(count2==le2){
                    count++;
                }

        }

17.不要62
一种思路就是暴力检索,因为数位dp 不会。所以他的方法就是 先写一个方法来判断他数字中是否含有4或者62,判断方法就是一直使用while循环然后从个位开始判断是不是4或者个位是4 十位是6,然后没有的话,x就除以10,去掉个位变成一个新的,继续判断。然后在主函数处,便是从n=2到一个很大的数,然后初始dp=1,然后判断,如果这个数是包含4或者62的,那么dp[i]=dp[i-1]也就是保持不变,如果不是的话,dp[i]=dp[i-1]+1这样下去。

18.空心三角形
也就是进行一种格式上的输出

19.整数解
关键在于 x==(int)x 这个函数

20.考试排名
也就是结构体数组的排序
如果前一项不同的话就怎么怎么样,然后排序出来

21.产生冠军
这道题可以用一个通俗的方法来解决:也就是判断总人数和失败的人数之间的差值

22.find your present
这道题在于,异或,又变成了一道数学题

发布了88 篇原创文章 · 获赞 5 · 访问量 3547

猜你喜欢

转载自blog.csdn.net/qq_41115379/article/details/105065652