1 条题解
-
0
自动搬运
来自洛谷,原作者为

zhuxiangrui_2010
ด้้้้้็้้้็็็็็้้้้้็็็็็้้้้้้็็็็็้้้้้็็็็็้้้้้้็็็็็้้้้้็็็็็้้้้้้็็็็็้้้้้็็็็็้้้้้้็็搬运于
2025-08-24 22:55:57,当前版本为作者最后更新于2024-03-19 18:19:17,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
P10228 [COCI 2023/2024 #4] Bingo 题解
题意
有 名玩家,每名玩家都有一个 的格板,每格包含一个整数。主持人从滚轮中取出球。取出编号为 的球后,如果格板上有取出的球的编号,将这个数从格板上划去。统计取出第 个球后划去了行、列、主对角线或从对角线上全部的 个数字的玩家个数及他们的名字。
思路
因为格板较小,考虑大模拟,输入完成后挨个判断 行, 列以及 条对角线全部划去的玩家。
代码
#include<bits/stdc++.h> using namespace std; int n,m,t=0; bool f[60]={}; struct Bingo{ string s; int a[6][6]; }q[60]; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>q[i].s; for(int j=1;j<=5;j++){ for(int k=1;k<=5;k++){ cin>>q[i].a[j][k]; } } } cin>>m; for(int i=1;i<=m;i++){ int x; cin>>x; for(int j=1;j<=n;j++){ for(int k=1;k<=5;k++){ for(int l=1;l<=5;l++){ if(x==q[j].a[k][l]){ q[j].a[k][l]=-1; } } } } } for(int j=1;j<=n;j++){ /*if(q[j].a[1][1]==-1&&q[j].a[1][2]==-1&&q[j].a[1][3]==-1&&q[j].a[1][4]==-1&&q[j].a[1][5]==-1){t++;f[j]=true;} else if(q[j].a[2][1]==-1&&q[j].a[2][2]==-1&&q[j].a[2][3]==-1&&q[j].a[2][4]==-1&&q[j].a[2][5]==-1){t++;f[j]=true;} else if(q[j].a[3][1]==-1&&q[j].a[3][2]==-1&&q[j].a[3][3]==-1&&q[j].a[3][4]==-1&&q[j].a[3][5]==-1){t++;f[j]=true;} else if(q[j].a[4][1]==-1&&q[j].a[4][2]==-1&&q[j].a[4][3]==-1&&q[j].a[4][4]==-1&&q[j].a[4][5]==-1){t++;f[j]=true;} else if(q[j].a[5][1]==-1&&q[j].a[5][2]==-1&&q[j].a[5][3]==-1&&q[j].a[5][4]==-1&&q[j].a[5][5]==-1){t++;f[j]=true;} else if(q[j].a[1][1]==-1&&q[j].a[2][1]==-1&&q[j].a[3][1]==-1&&q[j].a[4][1]==-1&&q[j].a[5][1]==-1){t++;f[j]=true;} else if(q[j].a[1][2]==-1&&q[j].a[2][2]==-1&&q[j].a[3][2]==-1&&q[j].a[4][2]==-1&&q[j].a[5][2]==-1){t++;f[j]=true;} else if(q[j].a[1][3]==-1&&q[j].a[2][3]==-1&&q[j].a[3][3]==-1&&q[j].a[4][3]==-1&&q[j].a[5][3]==-1){t++;f[j]=true;} else if(q[j].a[1][4]==-1&&q[j].a[2][4]==-1&&q[j].a[3][4]==-1&&q[j].a[4][4]==-1&&q[j].a[5][4]==-1){t++;f[j]=true;} else if(q[j].a[1][5]==-1&&q[j].a[2][5]==-1&&q[j].a[3][5]==-1&&q[j].a[4][5]==-1&&q[j].a[5][5]==-1){t++;f[j]=true;} else if(q[j].a[1][1]==-1&&q[j].a[2][2]==-1&&q[j].a[3][3]==-1&&q[j].a[4][4]==-1&&q[j].a[5][5]==-1){t++;f[j]=true;} else if(q[j].a[1][5]==-1&&q[j].a[2][4]==-1&&q[j].a[3][3]==-1&&q[j].a[4][2]==-1&&q[j].a[5][1]==-1){t++;f[j]=true;}十二组判断*/ } cout<<t<<endl; for(int i=1;i<=n;i++){ if(f[i]){ for(int j=0;j<=q[i].s.size()-1;j++){ cout<<q[i].s[j]; } cout<<endl; } } return 0; }
- 1
信息
- ID
- 9878
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者