设为首页 加入收藏

TOP

uva167 八皇后问题!输出固定宽度(#include<iomanip>)
2015-11-21 01:53:12 来源: 作者: 【 】 浏览:4
Tags:uva167 皇后 问题 输出 固定 宽度 #include< iomanip>
简单的八皇后问题,多了一个棋盘,要求结果是皇后所在位置的数字和最大,只需要在dfs深搜时加入一个sum参数,每次确定皇后位置后加上该位置的数字大小即可。
?
因为题目最后要求输出结果是5为宽度,所以需要包含iomanip头文件,然后用
?
[cpp]?
cout<
?
这条语句完成的功能就是输出Max值时限定宽度为n。但是作用范围只针对Max,也就是说如果Max后面还有要输出的内容就不受到setw的限制了。
[cpp]?
#include ?
#include ?
??
using namespace std; ?
??
int k,Max,C[10],chess[10][10]; ?
??
void dfs(int cur,int sum) ?
{ ?
? ? int i,j; ?
? ? if (cur==8) ?
? ? { ?
? ? ? ? if (sum>Max) Max=sum; ?
? ? } ?
? ? else ?
? ? { ?
? ? ? ? for (i=0;i<8;i++) ?
? ? ? ? { ?
? ? ? ? ? ? C[cur]=i; ?
? ? ? ? ? ? bool ok=1; ?
? ? ? ? ? ? for (j=0;j
? ? ? ? ? ? { ?
? ? ? ? ? ? ? ? if (C[j]==C[cur]||j-C[j]==cur-C[cur]||j+C[j]==cur+C[cur]) ?
? ? ? ? ? ? ? ? { ?
? ? ? ? ? ? ? ? ? ? ok=0; ?
? ? ? ? ? ? ? ? ? ? break; ?
? ? ? ? ? ? ? ? } ?
? ? ? ? ? ? } ?
? ? ? ? ? ? if (ok) dfs(cur+1,sum+chess[cur][C[cur]]); ?
? ? ? ? } ?
? ? } ?
} ?
int main() ?
{ ?
? ? cin>>k; ?
? ? while(k--) ?
? ? { ?
? ? ? ? for (int i=0;i<8;i++) ?
? ? ? ? { ?
? ? ? ? ? ? for (int j=0;j<8;j++) ?
? ? ? ? ? ? { ?
? ? ? ? ? ? ? ? cin>>chess[i][j]; ?
? ? ? ? ? ? } ?
? ? ? ? } ?
? ? ? ? Max=0; ?
? ? ? ? dfs(0,0); ?
? ? ? ? cout<
? ? } ?
? ? return 0; ?
} ?
?
?
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇(利用树的遍历求解层次性问题8.4... 下一篇C++ - "shared_ptr" 拆..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: