算法竞赛入门经典第四章习题

习题4-1:

题目大意就是:

一个象棋残局,红方有n(2<=n<=7) 个棋子,黑方只有一个将,红方除了帅,还可能有车,马,炮,并且要考虑“蹩马腿”,输入所有棋子的位置,保证局面合法并且红方已经将军,判断红方是否已经将黑方将死,


解题思路:

用一个棋盘保存红方可以打到的地方,看黑方将是否有其余的地方去,在竖直方向只要判断将能去的大方就可以,也就可以将帅和车一起判断,

题解连接:习题4-1,UVA 1589

习题4-2:

题目大意:

有n行n列(2<=n<=9) 的小圆点,还有m条线段连接其中的一些黑点,统计这些线段连接成多少正方形的个数(每种边长分别统计);

解题思路:

模拟,用两个数组模拟行和列,统计时枚举定点扫描

题解连接: 习题4-2,UVA 201

习题4-4:

题目大意:

给两个正6面体,问二者是否等价,每个面都用6个字母表示;

解题思路:

固定一个面旋转,有四种可能,一共固定6个面;

题解连接: 习题4-4,UVA 253

习题4-5:

题目大意:

给你几个IP求给出ip范围内的最小的ip,(ip范围,可以用一个网络地址和一个子网掩码描述一个ip,其中子网掩码包含32个二进制,前32-n位为1,后n位为0,网络地址的前32-n位任意,后n位为0,所有前32-n位和网络地址相同的ip都属于此网络)

题目连接here

解题思路:

ip的四个部分分别处理,每一部分找出最大值的最小值,然后判断是其二进制最后几位不同,得出子网掩码;

用任意一个IP与子网掩码进行按位与运算得出最小IP;

题解连接: 习题4-5,UVA 1590

习题4-8:

题目大意:

课堂上有n(n<=10)个学生,每个学生都有一个“睡眠-清醒“”周期,其中第i个学生清醒Ai分钟后睡Bi分钟,然后重复(1<=Ai,Bi<=5),初始时第i个学生处于他的周期的第Ci分钟,每个学生临睡前查看全班睡觉人数是否严格大于清醒人数,只有这个条件满足时才睡觉,否则坚持听课Ai分钟后再次检查这个条件,问多长时间后全班都清醒,

解题思路:

模拟整个过程直到全部清醒或者时间足够长,用Ci表示在周期中的状态时间

题解连接: 习题4-8,UVA 12108

习题4-10:

题目大意:

有n*m(1<=n,m<=30)的网格,每个格子是边长为10米的正方形,网格四周是无限大的墙壁。输入每个格子的海拔高度,以及网格的内雨水的总体积,输出水位的海拔高度以及有多少百分比的区域内有水,

解题思路:

题目挺简单的但是一开始没弄还wa了几发,还是太弱了,把输入的格子排序,从小到大算加上水的高度以后比下一块高不高

题解连接:习题4-10,UVA 815


你可能感兴趣的:(算法竞赛入门经典)