网易互娱23届实习笔试_3x3锯齿数独
一、输入:
输入一个3x3数独,字符'.'代表空
输入三个宫的域,每个宫包括三个位置,[0,0]表示0行0列
二、输出要求:
1.每个宫里最终123各出现一次,
2.数独中的行列里不出现重复字符;
输出满足条件的解
思想:先根据输入找到所有行列不重复的数独,再判断三个宫是否满足不重复;
1 #include <iostream>
2 #include <bits/stdc++.h>
3 using namespace std;
4 int a[3][3];//存储三个宫区域
5 int cnt;//记录满足的个数
6 bool isValid(int row, int col, char val, vector<vector<char>>& board) {
7 for (int i = 0; i < 3; i++) { // 判断行里是否重复
8 if (board[row][i] == val) {
9 return false;
10 }
11 }
12 for (int j = 0; j < 3; j++) { // 判断列里是否重复
13 if (board[j][col] == val) {
14 return false;
15 }
16 }
17 return true;
18 }
19 bool func(vector<vector<char>> board){
20 for (int i = 0; i<3;i++){ //第i个宫
21 int vec[3];
22 memset(vec,0,sizeof(vec));
23 for (int j = 0; j < 3;j++){
24 if (vec[board[a[i][j]/3][a[i][j]%3]-'1']==1){
25 return false;
26 cout <<"失败"<< a[i][j] << endl;
27 }
28 vec[board[a[i][j] / 3][a[i][j] % 3]-'1'] = 1;
29 }
30 }
31 return true;
32 }
33
34 bool backtracking(vector<vector<char>>& board) {
35 int x, y;
36 for (int i = 0; i < board.size(); i++) { // 遍历行
37 for (int j = 0; j < board[0].size(); j++) { // 遍历列
38 x = i;
39 y = j;
40 if (board[i][j] != '.') continue;
41 for (char k = '1'; k <= '3'; k++) { // (i, j) 这个位置放k是否合适
42 if (isValid(i, j, k, board)) {
43 board[i][j] = k; // 放置k
44 if (backtracking(board)) {
45 return true; // 如果找到合2 适一组立刻返回
46 }
47 board[i][j] = '.'; // 回溯,撤销k
48 }
49 }
50 return false; // 9个数都试完了,都不行,那么就返回false
51 }
52 }
53 if(x==2&&y==2){ //判断是否满足宫
54 if(func(board)){
55 cout << "cnt++:" << endl;
56 cnt++;
57 for(int i=0;i<3;i++){
58 for(int j=0;j<3;j++){
59 cout<<board[i][j]<<" ";
60 }
61 cout << endl;
62 }
63 }
64 /*for(int i=0;i<3;i++){
65 for(int j=0;j<3;j++){
66 cout<<board[i][j]<<" ";
67 }
68 cout << endl;
69 }*/
70 }
71 return false;
72 //return true; // 遍历完没有返回false,说明找到了合适棋盘位置了
73 }
74
75 int main() {
76 cnt = 0;
77 vector<vector<char>>board={{0,0,0},{0,0,0},{0,0,0}};
78 for(int i=0;i<3;i++){
79 for(int j=0;j<3;j++){
80 char ch;
81 cin>>ch;
82 board[i][j]=ch;
83 //cout<<ch<<endl;
84 }
85 }
86 int x, y;
87 for (int i = 0; i < 3;i++){
88 for (int j = 0; j < 3;j++){
89 cin >> x >> y;
90 a[i][j] = 3 * x + y;
91 //cout << 3 * x + y;
92 }
93 }
94 cout << endl;
95 cout << "x" << endl;
96 backtracking(board);
97 int coun = cnt;
98 cout << "answer " << cnt << endl;
99 return 0;
100 }
测例1:
输入
..3 ... ...
0 0 1 0 1 1
0 1 0 2 1 2
2 0 2 1 2 2
输出:
cnt++:
1 2 3
2 3 1
3 1 2
cnt++:
2 1 3
1 3 2
3 2 1
answer 2
网易互娱23届实习笔试_3x3锯齿数独的更多相关文章
- 网易互娱2017实习生招聘游戏研发工程师在线笔试第二场 C
偶尔碰到这题,简单数位DP题,然而我已生疏了…… 这次算是重新想到的,看来对DP的理解有增进了…… dp[i][j][k],表示前i为,mod为j,是否出现2.3.5的剩下的数位可组成的数字.答案就是 ...
- 2017 网易游戏互娱游戏研发4.21(offer)
网易游戏互娱(offer) 去年这个时候就参加过网易游戏的实习生招聘,到今年总共收到了4次拒信.不过这次运气好,终于get了最想要的offer.去年实习生互娱笔试挂,秋招笔试挂,今年春招互娱投了连笔试 ...
- 人人,金山西山居,腾讯互娱,微信,网易游戏offer及面经
转自:http://www.itmian4.com/forum.php?mod=viewthread&tid=3985 首先感谢师兄在两年前发的贴([天道酬勤] 腾讯.百度.网易游戏.华为Of ...
- 最新 三七互娱java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.三七互娱等10家互联网公司的校招Offer,因为某些自身原因最终选择了三七互娱.6.7月主要是做系统复习.项目复盘.Leet ...
- 2019 三七互娱java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.三七互娱等公司offer,岗位是Java后端开发,因为发展原因最终选择去了三七互娱,入职一年时间了,也成为了面 ...
- 网易实习笔试真题C/C++
刚做的时候根本就没有想到解题思路,刚好看到了别人的思路,自己写了一下.里面对unordered_map及vector二维数组的建立很灵活,另外区别了一下map,unordered_map,hash_m ...
- 2018春招实习笔试面试总结(PHP)
博主双非渣本计算机软件大三狗一枚,眼看着春招就要结束了,现将自己所经历的的整个春招做一个个人总结. 首先就是关于投递计划,博主自己整理了一份各大公司的春招信息,包括网申地址,开始时间,结束时间,以及自 ...
- hihocoder 网易游戏2016实习生招聘在线笔试 解题报告
比赛笔试链接:http://hihocoder.com/contest/ntest2015april/problems 题目就不贴了. 1.推箱子. 思路:纯模拟. 代码(28MS): #includ ...
- 网易2019校招C++研发工程师笔试编程题
丰收? (忘了题目了QAQ) 题目描述: 又到了丰收的季节,恰逢小易去牛牛的果园里游玩. 牛午常说他对整个果园的每个地方都了如指掌,小易不太相信, 所以他想考考牛牛. 在果园里有N堆苹果,每堆苹果的数 ...
随机推荐
- 如何使用C++开发PHP扩展(下)
更多的情况是业务中已经有独立的 api 库,形式为 libxxx.a / libxxx.so,PHP程序中需要调用这些 api,所以这时就要编写PHP扩展来实现.这时是使用静态库 libxxx.a , ...
- K8s多节点部署+负载均衡+keepalived ——囊萤映雪
K8s多节点部署+负载均衡+keepalived --囊萤映雪 1.多节点master2 部署 2.负载均衡部署+keepalived 1.多节点master2部署: #从master01节点上拷贝证 ...
- pycharm关闭pytest
在pycharm中,如果py文件以 test 开头,则运行时会使用pytest执行,pycharm关闭pytest方式如下 File -> Settings -> Tools -> ...
- Solution -「ARC 110D」Binomial Coefficient is Fun
\(\mathcal{Description}\) Link. 给定非负整数序列 \(\{a_n\}\),设 \(\{b_n\}\) 是一个非负整数序列且 \(\sum_{i=1}^nb_i\ ...
- Solution -「国家集训队」「洛谷 P4451」整数的 lqp 拆分
\(\mathcal{Description}\) Link. 求 \[\sum_{m>0\\a_{1..m}>0\\a_1+\cdots+a_m=n}\prod_{i=1}^mf ...
- 利用shell脚本使用kubeadm部署kubenetes 1.18.6集群环境
# README # 此脚本需要在master节点上使用 # 注意root密码,请提前修改 # 个人实验环境,注意机器最低配置:master(2G内存,1cpu2核心,否则集群会创建失败),node( ...
- php spl_autoload_register 实现自动加载
spl_autoload_register (PHP 5 >= 5.1.2, PHP 7) spl_autoload_register - 注册给定的函数作为 __autoload 的实现 语法 ...
- 记一次慢查询优化sql
sql语句优化(慢查询日志) 最近,旧系统向新系统迁移工程刚刚结束.开发完成后,测试阶段也是好好休息了一把.接到一个需求,由于内部员工使用的网站部分功能加载时间很长,所以需要去优化系统的一些功能.大致 ...
- [题解]Codeforces Round #254 (Div. 2) B - DZY Loves Chemistry
链接:http://codeforces.com/contest/445/problem/B 描述:n种药品,m个反应关系,按照一定顺序放进试管中.如果当前放入的药品与试管中的药品要反应,危险系数变为 ...
- 智能化管理工具:商业智能BI
BI(商业智能)是在ERP等信息化管理工具的基础上提出的,是基于信息技术构建的智能化管理工具,它实时地对ERP.CRM.SCM等管理工具生成的企业数据进行各种分析,并给出报告,帮助管理者认识企业和市 ...