【模拟】计蒜客 ICPC Pacific Northwest Regional Contest 2017 Gym-101652O Latin Squares

博客介绍了如何判断输入的字符矩阵是否为Latin Square,并检查其是否为Reduced状态。通过逐行逐列使用set去重判断无重复字符,再检查第一行和第一列是否按特定规则递增。读题不仔细导致了错误的理解,提醒读者注意题目细节。
摘要由CSDN通过智能技术生成

N题

题意:
输入 n 行 n 列字符,只包括 0 ~ 9 和 A ~ Z,A ~ Z 用来表示 10 ~ 35。
若对于每行每列,都没有重复的字符,则是 Latin Square,否则输出 “No”;
如果是Latin,判断 第一行 和 第一列 是否是 0 1 2 3…… 这样递增的。若是,输出 “Reduced”,否则输出 “Not Reduced” .

思路:
首先判断是不是 Latin,逐行逐列判断即可。
- 用 set 来去重,若 size 相同,则没有重复的字符
然后判断第一行 和 第一列是不是按规则增长的
- 直接循环判断即可

这道题被读题坑死了,先是没注意到 A ~ Z 用来表示 10 ~ 35;后来又没看见增长的规则,想当然的认为后一个比前一个大即可。以后一定要仔细读题。
还有很坑的一个点,就是 vj 上是有多组输入的情况,但他没说。计蒜客上不用写多组输入就能过。

#include <bits/stdc++.h>
using namespace std;

// 先判断是否Latin 
// 是的话再判断 第一行 第一列 是否递增  递增啊!!递增啊!!我是傻子

int main()
{
   
    int n; 
    //scanf("%d", &n);
    while(~scanf("%d", &n)){
   
    	int flag=0, a[40][40];
    	string ch;
    	set<int> s;
    	for(int i=0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值