hiho 第135周 九宫
题目链接:http://hihocoder.com/contest/hiho135/problem/1
由于是九宫格,全排列也就是9! (362880)种方式,我就直接暴力枚举排列好了。
#include <bits/stdc++.h> using namespace std; int a[][];
int b[][];
bool vis[];
int num[];
int cnt; bool check() {
int num = b[][] + b[][] + b[][];
int num2 = ;
for(int i=;i<;i++)
num2 +=b[][i];
if(num2!=num) return false; num2 = ;
for(int i=;i<;i++)
num2+=b[][i];
if(num2!=num) return false; for(int i=;i<;i++)
{
num2 = ;
for(int j=;j<;j++)
{
num2 +=b[j][i];
}
if(num2!=num)
return false;
} num2 = ;
for(int i=;i<;i++)
num2 +=b[i][i];
if(num2!=num)
return false; num2 = ;
for(int i=;i<;i++)
num2 +=b[i][-i];
if(num2!=num)
return false; return true;
} int main()
{
cnt = ;
for(int i=;i<;i++)
for(int j=;j<;j++) {
scanf("%d",&a[i][j]);
if(a[i][j])
vis[a[i][j]] = true;
} for(int i=;i<=;i++)
if(!vis[i]) {
num[cnt++] = i;
} vector <int> ans[];
int ansnum = ; do {
int k = ;
for(int i=;i<;i++) {
for(int j=;j<;j++) {
if(a[i][j]==)
b[i][j]=num[k++];
else b[i][j] = a[i][j];
}
} if(check())
{
for(int i=;i<;i++)
for(int j=;j<;j++)
ans[ansnum].push_back(b[i][j]);
ansnum++;
} }while(next_permutation(num,num+cnt)); if(ansnum>)
puts("Too Many");
else if(ansnum==)
{
int k = ;
for(int i=;i<;i++)
{
for(int j=;j<;j++)
{
printf("%d ",ans[][k++]);
}
puts("");
}
}
return ;
}
hiho 第135周 九宫的更多相关文章
- hiho一下21周 线段树的区间修改 离散化
离散化 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho在回国之后,重新过起了朝7晚5的学生生活,当然了,他们还是在一直学习着各种算法~ 这天小Hi和小Ho ...
- hiho 第116周,最大流最小割定理,求最小割集S,T
小Hi:在上一周的Hiho一下中我们初步讲解了网络流的概念以及常规解法,小Ho你还记得内容么? 小Ho:我记得!网络流就是给定了一张图G=(V,E),以及源点s和汇点t.每一条边e(u,v)具有容量c ...
- hiho一下116周 网络流
网络流二·最大流最小割定理 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi:在上一周的Hiho一下中我们初步讲解了网络流的概念以及常规解法,小Ho你还记得内容么? ...
- hiho 第119周 最大权闭合子图
描述 周末,小Hi和小Ho所在的班级决定举行一些班级建设活动. 根据周内的调查结果,小Hi和小Ho一共列出了N项不同的活动(编号1..N),第i项活动能够产生a[i]的活跃值. 班级一共有M名学生(编 ...
- hiho 第六周 01背包
简单的01背包,没有报名,这周的没有权限提交 #include<iostream> #include<memory.h> using namespace std; #defin ...
- hiho一下 第一周 最长回文子串
时间限制:1000ms 单点时限:1000ms 内存限制:64MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进. 这 ...
- hiho一下20周 线段树的区间修改
线段树的区间修改 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 对于小Ho表现出的对线段树的理解,小Hi表示挺满意的,但是满意就够了么?于是小Hi将问题改了改,又出给了 ...
- hiho一下18周 RMQ问题再临
RMQ问题再临 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 终于,小Hi和小Ho踏上了回国的旅程.在飞机上,望着采购来的特产--小Hi陷入了沉思:还记得在上上周他们去 ...
- hiho一下123周 后缀数组四·重复旋律
后缀数组四·重复旋律4 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi平时的一大兴趣爱好就是演奏钢琴.我们知道一个音乐旋律被表示为长度为 N 的数构成的数列.小Hi ...
随机推荐
- 在Pycharm上编写WordCount程序
本篇博客将给大家介绍怎么在PyCharm上编写运行WordCount程序. 第一步 下载安装PyCharm 下载Pycharm PyCharm的下载地址(Linux版本).下载完成后你将得到一个名叫: ...
- Autel MaxiSys Pro Description
Autel MaxiSys pro MS908P is an evolutionary smart solution for specialized automotive diagnosis and ...
- Cmder光标错位的问题&VSCode终端光标错位问题
问题 本机中安装了 Cmder,几乎是0配置 ,同时在 VSCode 中设置默认终端为 Cmder,在 VSCode 中打开终端,显示如图: 这里光标实际的位置是 . 的后面,但是表现出来的是多一个空 ...
- leetcode 196. Delete Duplicate Emails 配合查询的delete
https://leetcode.com/problems/delete-duplicate-emails/description/ 题意要对原来的数据表进行删除,不删除不行,它每次只输出原来那个表. ...
- maya怎样卸载干净
AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...
- UGUI 用手柄或者键盘控制选择Scroll View中的游戏对象时,滚动条跟着移动
原预制体以及脚本的下载地址:https://download.csdn.net/download/qq_15017279/10404010 1.新建一个Scroll View,删掉横向的滚动条,并且把 ...
- [转]Tetris(俄罗斯方块) in jQuery/JavaScript!
本文转自:http://pwwang.com/2009/10/25/tetris-in-jquery-javascript/ All in jQuery/JavaScript + HTML! Demo ...
- Murano Application
OpenStack Application Link: http://apps.openstack.org/ Those applications include Murano packages, H ...
- ZK使用
1. 关注问题 1. zookeeper集群如何保证请求的均匀分布? 由client建立连接时会随机取server保证均匀分布, 2.已布置完成的ZK集群如何扩容? 修改配置后逐台重启即可 2. ZK ...
- nodejs卸载安装
作为新手nodejs卸载后安装就总出错,今天记录了详细的步骤: 参考一下网址:写的很详细https://jingyan.baidu.com/article/48b37f8dd141b41a646488 ...