文章标题

来源:互联网 发布:方媛的淘宝店 编辑:程序博客网 时间:2024/06/03 20:36

从现在开始,zzy将在这里写一些抄了题解题目的zzy版本题解,以减轻内心的罪恶感【OvO】

codevs 1116 四色问题

一道通过率比A+B problem还要高的题目,我懒得去想,然后直接抄了题解,我好弱啊QAQ

其实这道题跟大多数搜索题是一样的,一步一步地递归,等得到一种解法之后记录下来,然后回溯,尝试另一条路径。。。

话不多说,下面给出zzy版本的题解:

#include<iostream>using namespace std;int a[10][10],col[10],n,tot;void dfs(int step){    if(step>n)    {        tot++;        return;    }//这里是边界    for(int i=1;i<=4;i++)//尝试每种颜色    {        int ok=0;        for(int j=1;j<=n;j++)//判断使用这种颜色是否不符合题意        if(a[step][j]==1&&i==col[j])//判断是否衔接以及颜色是否冲突        {            ok=1;            break;        }        if(ok)//如果不符合题意则寻求另一种颜色        continue;        col[step]=i;//如果符合题意则加深搜素        dfs(step+1);        col[step]=0;//回溯归位    }}int main(){    cin>>n;    for(int i=1;i<=n;i++)        for(int j=1;j<=n;j++)        cin>>a[i][j];    dfs(1);    cout<<tot;    return 0;}

写完了,去睡觉了,啦啦啦【撒花】~

1 0
原创粉丝点击