205 条题解
-
0爱德华 LV 3 @ 2007-07-31 09:33:28
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms -
02007-08-01 10:34:53@
本人面对此水题N次性AC,太惭愧了。
我的正确率啊!~~~~~~~~~~~~~~~~~ -
02007-07-30 19:59:56@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案错误... ├ 标准行输出
├ 错误行输出
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:80 有效耗时:0ms楼下有个兄弟 咱么一样倒霉嘿
-
02007-07-30 15:34:26@
这道题真是超烦脱俗!!!
-
02007-07-30 13:22:42@
我们学校的模拟赛的题目,呵呵
-
02007-07-30 11:20:53@
第39个,本来可以更早的,但是PUPPY貌似把我的程序给判丢了,提交了20分钟还running......
-
02007-07-30 11:00:34@
第一个数据 过不到
-
02007-07-30 00:11:25@
的确是水题
-
02007-07-29 22:34:18@
我也是布尔数组~因为正确的话~
每个数都只出现9次~
如果出现的不足9次或超出9次就直接输出FALSE拉! -
02007-07-29 22:28:41@
水题
坚定完毕 -
02007-07-29 21:35:32@
关键是3*3的格子中的判断
-
02007-07-29 21:09:49@
直接模拟吗?
-
02007-07-29 20:00:06@
第三叫地板啊
-
02007-07-29 19:59:44@
题目很简单 但是要细心
注意! 每个数独之间 有一排空的 要读一个回车!
我用的布尔数组...
---|---|---|---|---|---|
愿C语言能携手P共同发展壮大!各位学C的顶啊!!
NOIP 2007 is coming!
湖北宜昌一中203班 SixplusSeVen
QQ:383025560
blog.sina.com/NoipCenter -
-12019-08-02 10:14:11@
python
一、思路:
创建函数五个,分别是:
in_put_lists: 输入一个数组(二维列表)
x_to_y: 将横向数组(二维列表) 按 纵向 存储
lists_to_square:将横向数组(二维列表) 按 品字格 存储
judge_list: 判断一维列表是否含 1-9 所以元素
judge_lists: 循环调用judje_list,判断二维列表是否合乎要求
二、犯下什么错误
unhashable: set(list(list)) set内list的各元素为列表或字典时,不可哈希def in_put_lists(): num_x_rt = [] for i in range(0, 9): num_x_rt.append(input().split()) return num_x_rt def x_to_y(lists_x): list_y_rt = [] for i in range(0, 9): y_temp = [] for j in range(0, 9): y_temp.append(lists_x[j][i]) list_y_rt.append(y_temp) return list_y_rt def lists_to_square(lists_x): list_squ_rt = [] squ_first = [0,3,6] for i in squ_first: for j in squ_first: squ_temp = [] squ_temp.append(lists_x[i][j]) squ_temp.append(lists_x[i][j+1]) squ_temp.append(lists_x[i][j+2]) squ_temp.append(lists_x[i+1][j]) squ_temp.append(lists_x[i+1][j+1]) squ_temp.append(lists_x[i+1][j+2]) squ_temp.append(lists_x[i+2][j]) squ_temp.append(lists_x[i+2][j+1]) squ_temp.append(lists_x[i+2][j+2]) list_squ_rt.append(squ_temp) return list_squ_rt def judge_list(list_x): if len(set(list_x)) == 9: return True else: return False def judge_lists(lists_x): lists_y = x_to_y(lists_x) lists_squ = lists_to_square(lists_x) flag = True for i in range(0, 9): if not judge_list(lists_x[i]): flag = False break if not judge_list(lists_y[i]): flag = False break if not judge_list(lists_squ[i]): flag = False break return flag n = int(input()) for g_i in range(0, n): lists_input = in_put_lists() if g_i != n-1: input() if judge_lists(lists_input): print('Right') else: print('Wrong')
-
-12019-02-11 21:20:14@
#include <map> #include <set> #include <list> #include <cmath> #include <ctime> #include <deque> #include <queue> #include <stack> #include <cctype> #include <cstdio> #include <string> #include <vector> #include <cassert> #include <climits> #include <cstdlib> #include <cstring> #include <iomanip> #include <utility> #include <iostream> #include <algorithm> #define mkp make_pair #define fi first #define se second using namespace std; typedef long long ll; typedef vector<int> veci; typedef set<int> seti; typedef size_t szt; bool check(veci v) { szt s = v.size(); seti st; for (auto i: v) { st.insert(i); } szt s1 = st.size(); if (s1 == s) { return true; } return false; } int main() { int T; cin >> T; while (T--) { int mp[10][10] = {}; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { cin >> mp[i][j]; } } bool mk = 1; for (int i = 0; i < 9 && mk; i++) { vector<int> v(mp[i], mp[i] + 9); mk &= check(v); } for (int j = 0; j < 9 && mk; j++) { vector<int> v; for (int i = 0; i < 9; i++) { v.push_back(mp[i][j]); } mk &= check(v); } for (int i = 0; i < 3 && mk; i++) { for (int j = 0; j < 3 && mk; j++) { vector<int> v; for (int k = 0; k < 3; k++) { for (int l = 0; l < 3; l++) { v.push_back(mp[i * 3 + k][j * 3 + l]); } } mk &= check(v); } } if (mk) { cout << "Right" << endl; } else { cout << "Wrong" << endl; } } return 0; }
-
-12017-07-06 15:35:20@
#include<iostream> using namespace std; bool test(int a[]) { bool flag[10] = {false}; //for(int i = 0; i<9;i++)cout << a[i];cout << endl; for(int i = 0; i < 9; i++) { if(flag[a[i]]) { return false; } flag[a[i]] = true; } return true; } void solve() { int sudoko[9][9]; for(int i = 0; i < 9; i++) { for(int j = 0; j < 9; j++) { cin >> sudoko[i][j]; } } for(int i = 0; i < 9; i++) { //cout << i << endl; if(!test(sudoko[i])) { cout << "Wrong" << endl; return; } } for(int i = 0; i < 9; i++) { int a[9]; for(int j = 0; j < 9; j++){ a[j] = sudoko[j][i]; } if(!test(a)) { cout << "Wrong" << endl; return; } } for(int i = 0; i < 9; i += 3) { for(int j = 0; j < 9; j += 3) { int a[9]; int n = 0; for(int b = 0;b< 3; b++) { for(int c = 0; c < 3; c++) { a[n++] = sudoko[i+b][j+c]; } } if(!test(a)) { cout << "Wrong" << endl; return; } } } cout << "Right" << endl; } int main() { int k; cin >> k; while(k--) { solve(); } return 0; }
-
-12017-04-01 13:35:54@
#include <stdio.h>
int judge(int num[9][9])
{
int i,j,k,t;
int row[10];
int column[10];
int cube[10];
for(i=1;i<=9;i++)
{
row[i]=0;
column[i]=0;
cube[i]=0;
}
for(i=0;i<=8;i++)
{
for(j=0;j<=8;j++) row[num[i][j]]++;
for(j=1;j<=9;j++) if (row[j]!=1) return 0;
for(j=1;j<=9;j++) row[j]=0;
}
for(i=0;i<=8;i++)
{
for(j=0;j<=8;j++) column[num[j][i]]++;
for(j=1;j<=9;j++) if (column[j]!=1) return 0;
for(j=1;j<=9;j++) column[j]=0;
}
for(i=0;i<=8;i=i+3)
for(j=0;j<=8;j=j+3)
{
for(k=0;k<=2;k++)
for(t=0;t<=2;t++) cube[num[i+k][j+t]]++;
for(j=1;j<=9;j++) if (cube[j]!=1) return 0;
for(j=1;j<=9;j++) cube[j]=0;
}
return 1;
}
int main()
{
int n,i,j,k;
int num[9][9];
scanf("%d",&n);
for(k=1;k<=n;k++)
{
for(i=0;i<=8;i++)
for(j=0;j<=8;j++)
scanf("%d",&num[i][j]);
if (judge(num)==1) printf("Right\n"); else printf("Wrong\n");
}
return 0;
}
纯模拟,注意换行和C的数组名做函数参数时的定义和调用 -
-12017-03-17 00:38:18@
#include <iostream> using namespace std; int bl=1; int line(int sdk[9][9]) { for (int i=0;i<9;i++) { int num[10]={0}; for (int j = 0; j < 9; j++) { num[sdk[i][j]]++; } for (int k=1;k<=9;k++) if (num[k]!=1) bl=0; } } int row(int sdk[9][9]) { for (int i=0;i<9;i++) { int num[10]={0}; for (int j = 0; j < 9; j++) { num[sdk[j][i]]++; } for (int k=1;k<=9;k++) if (num[k]!=1) bl=0; } } int combine(int sdk[9][9]) { int num[10]={0}; for (int i=0;i<3;i++) for (int j=0;j<3;j++) { for (int k=0;k<10;k++) num[k]=0; for (int k=0+i*3;k<3+i*3;k++) for (int l = 0 + j * 3; l < 3 + j * 3; l++) { num[sdk[k][l]]++; } for (int p=1;p<=9;p++) if (num[p]!=1) bl=0; } } int main() { int i,j,k,m,n,l; int sdk[9][9]; cin >> n; for (l=0;l<n;l++) { for (i=0;i<9;i++) for (j=0;j<9;j++) { cin >> sdk[i][j]; } bl=1; line(sdk); row(sdk); combine(sdk); if (bl==1) cout << "Right" << endl; else cout << "Wrong" << endl; } }
-
-12017-01-25 09:45:47@
var
n,i,j,k,l,max,s:longint;
b:array[1..9,1..9]of integer;
a:array[1..9]of integer;
f:boolean;
begin
readln(n);
for max:=1 to n do begin
for i:=1 to 9 do begin
for j:=1 to 9 do read(b[i,j]);
readln;
end;
readln;
f:=true;
for i:=1 to 9 do begin
for j:=1 to 9 do a[j]:=0;s:=0;
for j:=1 to 9 do a[b[i,j]]:=1;
for j:=1 to 9 do s:=s+a[j];
if s<>9 then f:=false;
end;
for i:=1 to 9 do begin
for j:=1 to 9 do a[j]:=0;s:=0;
for j:=1 to 9 do a[b[j,i]]:=1;
for j:=1 to 9 do s:=s+a[j];
if s<>9 then f:=false;
end;
for i:=1 to 3 do
for j:=1 to 3 do
for k:=1 to 9 do a[k]:=0;s:=0;
for k:=(i*3-2)to(i*3)do begin
for l:=(j*3-2)to(j*3)do a[b[k,l]]:=1;
end;
for k:=1 to 9 do s:=s+a[k];
if s<>9 then f:=false;
if f=true then writeln('Right')else writeln('Wrong');
end;
end.