摘要:
数学,规律,构造类问题题意,就是以任意一个点为中心,交换它左右两个点的位置。一开始想这题,有个地方错了,所以一直想不到,就是把所有黑子当成一样的,白子当成一样,这样想也不是说错,但是这样想会限制了思维然后换一种思维,给所有棋子按1到n编号,就算颜色相同,编号也不同,是不同的棋子。然后我们看看交换的时候会发生什么事情以点a为中心,那么a-1和a+1发生交换,那么也就是说,编号a-1的点去了a+1的位置,如果继续交换的话,它还可以去到a+3,a+5……的位置,这里有一个突破点就是,它所在的位置的奇偶性不行,如果它一开始就在奇数的位置,无论怎么交换它还是在奇数位置,偶数亦然。但!不要这么轻易下结论, 阅读全文
摘要:
搜索题意:先给出大方阵的边长,再给出m个小方阵并给出每个方阵的边长,问是否可以不发生重叠地把小方阵放进大方阵中,并且大方阵完全利用没有剩余这题的代码不难写,关键是要找到策略,这题的策略比搜索本身的剪枝更有价值摆放小方阵的策略是,尽可能往上面摆,然后尽可能往左边摆。另外有个策略一开始想错了,我是想先把小方阵排序,先放好大的,再放好小的,这样在摆放过程中可能出问题,画图可知,正确的策略是就目前的摆放情况,能放得到下哪个就放哪个,无所谓大小为了满足尽可能放在左上方的条件,需要记录大方针的状态col[i]的意义是,第i列,从最顶部数下来,被连续占据了多少格注意在整个摆放过程中,每一列都保证是被连续占据 阅读全文
摘要:
图论构造类问题题意:输入n个点,要求你连接一些边,使其变为无向图,并且,在图中任选3个点,这3个点的度都不会完全相等构造方法是对于奇数个点,第n/2+1个点不要连线,将点集分为相等的两部分,1到n/2为一部分,n/2+2到n为一部分,从第一部分开始连线,都指向第二部分,1号点连n/2条,2号点连n/2-1条,3号点连n/2-2条………………n/2号点连1条对于偶数个点是一样的,刚好能将点分为两个部分,两个部分的连线方法一样(这构造太巧妙了,很容易就能看到不会有3个点的度相同)#include <iostream>#include <cstdio>#include < 阅读全文