2017.07.31小结
来源:互联网 发布:acronis linux备份 编辑:程序博客网 时间:2024/06/05 14:17
今天主要还是在找状态,在家休息了一段时间后,比较懒散,一时不容易适应集训的节奏。上午主要是看了一遍之前做过的搜索典型例题,几种常见题型来找做题的感觉。下午和晚上只解出了一道第四题。其中大部分的时间,都花费在思考思路上,中间尝试了好几种方法,一直在换来换去,几种方法都感觉模棱两可,而且经常做到一半思路就会断掉。感觉本题的难点在于要求每个点要在不同行不同列,规定了棋子的位置,增加了判断条件,所以一直在想办法解决这个问题,最终解决思路:走过一列之后,就把它标记出来(用一维数组表示即可),然后再从下一行开始寻找,直到摆放的棋子数目与要求棋子数目相同,总数加1。
代码:
int dfs(inti,int cur)
{
if(cur>=k)
{
sum++;
return 0;
}
int x,y;
for(x=i;x<n;x++)
for(y=0;y<n;y++)
{
if(!visit[y]&&map[x][y]=='#')
{
visit[y]=1;
dfs(x+1,cur+1);
visit[y]=0;
}
}
return 0;
}
今天只AC了一道题,但是自己真的去动脑思考了,不像之前的学习,遇上不容易思考的题目,就去找题解。而且在学校做题比之前在家里更加集中,能真正静下心来去做。