Program2_1019

本文介绍了一种通过深度优先搜索解决N皇后问题的方法,并提供了一个完整的C语言实现示例。该算法通过递归地放置皇后并检查冲突来计算所有可能的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我现在做的是编号为1019的试题,

简单题意:

在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。
你的任务是,对于给定的N,求出有多少种合法的放置方法。


解题思路:

就是考虑皇后放置的位置,对于每一行,我们需要枚举每个放置皇后的位置,而且需要判断当前位置是否满足条件,即判断这个位置是否与放置好的前i-1行的皇后的位置相冲突,如果冲突,说明这个位置不合适,否则,就可以枚举下一行皇后的位置,直到第n行。



编写代码:

#include<stdio.h>
#include<string.h>
 int n,tmp;
 int map[11];
 
void DFS(int k)
 {
     int i,j,flag;
     if(k==n+1)
     {
           tmp++;
          return;
     }
     else
     {
          for(i=1;i<=n;++i)
         {
            map[k]=i;
            flag=1;
            for(j=1;j<k;++j)
             {
                 if(map[j]==i||i-k==map[j]-j||i+k==map[j]+j)   
                 {
                     flag=0;
                     break;
                 }
             }
             if(flag)
               DFS(k+1);
        }
     }
 }
 
int main()
 {
     int i,m;
     int ans[11];
     for(n=1;n<=10;++n)
     {
         tmp=0;
         DFS(1);
         ans[n]=tmp;
     }
     while(scanf("%d",&m),m)
     {
         printf("%d\n",ans[m]);
     }
     return 0;
}

Traceback (most recent call last): File "D:\Program Files (x86)\Python\lib\site-packages\win32ctypes\pywin32\pywintypes.py", line 36, in pywin32error yield File "D:\Program Files (x86)\Python\lib\site-packages\win32ctypes\pywin32\win32api.py", line 226, in EndUpdateResource _resource._EndUpdateResource(handle, discard) File "D:\Program Files (x86)\Python\lib\site-packages\win32ctypes\core\cffi\_resource.py", line 121, in _EndUpdateResource check_false( File "D:\Program Files (x86)\Python\lib\site-packages\win32ctypes\core\cffi\_util.py", line 78, in __call__ self._raise_error(function_name) File "D:\Program Files (x86)\Python\lib\site-packages\win32ctypes\core\cffi\_util.py", line 89, in _raise_error raise exception OSError: [WinError 5] 拒绝访问。 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "D:\Program Files (x86)\Python\lib\runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "D:\Program Files (x86)\Python\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "D:\Program Files (x86)\Python\Scripts\pyinstaller.exe\__main__.py", line 7, in <module> File "D:\Program Files (x86)\Python\lib\site-packages\PyInstaller\__main__.py", line 194, in _console_script_run run() File "D:\Program Files (x86)\Python\lib\site-packages\PyInstaller\__main__.py", line 180, in run run_build(pyi_config, spec_file, **vars(args)) File "D:\Program Files (x86)\Python\lib\site-packages\PyInstaller\__main__.py", line 61, in run_build PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs) File "D:\Program Files (x86)\Python\lib\site-packages\PyInstaller\building\build_main.py", line 1019, in main build(specfile, distpath, workpath, clean_build) File "D:\Program Files (x86)\Python\lib\site-packages\PyInstaller\building\build_main.py", line 944, in build exec(code, spec_namespace) File "pyinstaller.spec", line 24, in <module> exe = EXE( File "D:\Program Files (x86)\Python\lib\site-packages\PyInstaller\building\api.py", line 590, in __init__ self.__postinit__() File "D:\Program Files (x86)\Python\lib\site-packages\PyInstaller\building\datastruct.py", line 184, in __postinit__ self.assemble() File "D:\Program Files (x86)\Python\lib\site-packages\PyInstaller\building\api.py", line 690, in assemble icon.CopyIcons(build_name, self.icon) File "D:\Program Files (x86)\Python\lib\site-packages\PyInstaller\utils\win32\icon.py", line 209, in CopyIcons return CopyIcons_FromIco(dstpath, [srcpath]) File "D:\Program Files (x86)\Python\lib\site-packages\PyInstaller\utils\win32\icon.py", line 158, in CopyIcons_FromIco win32api.EndUpdateResource(hdst, 0) File "D:\Program Files (x86)\Python\lib\site-packages\win32ctypes\pywin32\win32api.py", line 226, in EndUpdateResource _resource._EndUpdateResource(handle, discard) File "D:\Program Files (x86)\Python\lib\contextlib.py", line 131, in __exit__ self.gen.throw(type, value, traceback) File "D:\Program Files (x86)\Python\lib\site-packages\win32ctypes\pywin32\pywintypes.py", line 40, in pywin32error raise error(exception.winerror, exception.function, exception.strerror) win32ctypes.pywin32.pywintypes.error: (5, 'EndUpdateResource', '拒绝访问。') 运行pyinstaller pyinstaller.spec报错
最新发布
07-15
Traceback (most recent call last): File "C:\Program Files (x86)\MGLTools-1.5.6\lib\site-packages\ViewerFramework\VF.py", line 898, in tryto result = command( *args, **kw ) File "C:\Program Files (x86)\MGLTools-1.5.6\lib\site-packages\AutoDockTools\autotorsCommands.py", line 867, in doit initLPO4(mol, cleanup=cleanup) File "C:\Program Files (x86)\MGLTools-1.5.6\lib\site-packages\AutoDockTools\autotorsCommands.py", line 292, in initLPO4 root=root, outputfilename=outputfilename, cleanup=cleanup) File "C:\Program Files (x86)\MGLTools-1.5.6\lib\site-packages\AutoDockTools\MoleculePreparation.py", line 1019, in __init__ detect_bonds_between_cycles=detect_bonds_between_cycles) File "C:\Program Files (x86)\MGLTools-1.5.6\lib\site-packages\AutoDockTools\MoleculePreparation.py", line 768, in __init__ delete_single_nonstd_residues=False) File "C:\Program Files (x86)\MGLTools-1.5.6\lib\site-packages\AutoDockTools\MoleculePreparation.py", line 134, in __init__ lenLPS = self.lenLPS = LPM.mergeLPS(mol.allAtoms) File "C:\Program Files (x86)\MGLTools-1.5.6\lib\site-packages\AutoDockTools\atomTypeTools.py", line 141, in mergeLPS lps = atoms.get(lambda x: x.element=='Lp' or x.element=='lp' or \ File "C:\Program Files (x86)\MGLTools-1.5.6\lib\site-packages\MolKit\tree.py", line 622, in get result = filter(selectionString, self.data) File "C:\Program Files (x86)\MGLTools-1.5.6\lib\site-packages\AutoDockTools\atomTypeTools.py", line 142, in <lambda> (x.element=='Xx' and (x.name[0]=='L' or x.name[1]=='L'))) IndexError: string index out of range
07-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值