蓝桥杯刷题——递增序列(递增序列)

592 阅读2分钟

「这是我参与2022首次更文挑战的第25天,活动详情查看:2022首次更文挑战」。

这是蓝桥杯19年国赛的一道题,虽然很简单。但是有一个大坑,阅读题目条件一定要仔细。

题目

image.png

image.png

思路

首先一定要仔细阅读题目意思,看懂他给的例题是怎么来的。不然大概看完题目意思就开始做,到后面就会发现答案根本就是错的,而且还不知道程序中哪里错了,白白浪费时间。看到题目中给的提醒,当两个字母是从左下到右上排列的时候,从左向右看和从上向下看,是不同的顺序,注意了,这里就是两种不同的方法。当两个字母是从左上到右下排列的时候,从左向右看和从上向下看,是不是相同的顺序呢?这里不是,比如第一行是AC,第二行是DB,A和B就是从左上到右下的排列,这里从左向右看和从上向下看都是AB,所以是同一种序列。而C和D,从上往下看是CD,符合,从左往右看是DC,就不符合了,这不是同一种序列。所以我们做题时,一个字母找递增序列一共有五个方向,下,右,右上,右下,左下。少一个方向,多一个方向都不行,再正确设计程序,答案就不会出错了。

代码

#include<bits/stdc++.h>
using namespace std;
string str[30]={
"VLPWJVVNNZSWFGHSFRBCOIJTPYNEURPIGKQGPSXUGNELGRVZAG",
"SDLLOVGRTWEYZKKXNKIRWGZWXWRHKXFASATDWZAPZRNHTNNGQF",
"ZGUGXVQDQAEAHOQEADMWWXFBXECKAVIGPTKTTQFWSWPKRPSMGA",
"BDGMGYHAOPPRRHKYZCMFZEDELCALTBSWNTAODXYVHQNDASUFRL",
"YVYWQZUTEPFSFXLTZBMBQETXGXFUEBHGMJKBPNIHMYOELYZIKH",
"ZYZHSLTCGNANNXTUJGBYKUOJMGOGRDPKEUGVHNZJZHDUNRERBU",
"XFPTZKTPVQPJEMBHNTUBSMIYEGXNWQSBZMHMDRZZMJPZQTCWLR",
"ZNXOKBITTPSHEXWHZXFLWEMPZTBVNKNYSHCIQRIKQHFRAYWOPG",
"MHJKFYYBQSDPOVJICWWGGCOZSBGLSOXOFDAADZYEOBKDDTMQPA",
"VIDPIGELBYMEVQLASLQRUKMXSEWGHRSFVXOMHSJWWXHIBCGVIF",
"GWRFRFLHAMYWYZOIQODBIHHRIIMWJWJGYPFAHZZWJKRGOISUJC",
"EKQKKPNEYCBWOQHTYFHHQZRLFNDOVXTWASSQWXKBIVTKTUIASK",
"PEKNJFIVBKOZUEPPHIWLUBFUDWPIDRJKAZVJKPBRHCRMGNMFWW",
"CGZAXHXPDELTACGUWBXWNNZNDQYYCIQRJCULIEBQBLLMJEUSZP",
"RWHHQMBIJWTQPUFNAESPZHAQARNIDUCRYQAZMNVRVZUJOZUDGS",
"PFGAYBDEECHUXFUZIKAXYDFWJNSAOPJYWUIEJSCORRBVQHCHMR",
"JNVIPVEMQSHCCAXMWEFSYIGFPIXNIDXOTXTNBCHSHUZGKXFECL",
"YZBAIIOTWLREPZISBGJLQDALKZUKEQMKLDIPXJEPENEIPWFDLP",
"HBQKWJFLSEXVILKYPNSWUZLDCRTAYUUPEITQJEITZRQMMAQNLN",
"DQDJGOWMBFKAIGWEAJOISPFPLULIWVVALLIIHBGEZLGRHRCKGF",
"LXYPCVPNUKSWCCGXEYTEBAWRLWDWNHHNNNWQNIIBUCGUJYMRYW",
"CZDKISKUSBPFHVGSAVJBDMNPSDKFRXVVPLVAQUGVUJEXSZFGFQ",
"IYIJGISUANRAXTGQLAVFMQTICKQAHLEBGHAVOVVPEXIMLFWIYI",
"ZIIFSOPCMAWCBPKWZBUQPQLGSNIBFADUUJJHPAIUVVNWNWKDZB",
"HGTEEIISFGIUEUOWXVTPJDVACYQYFQUCXOXOSSMXLZDQESHXKP",
"FEBZHJAGIFGXSMRDKGONGELOALLSYDVILRWAPXXBPOOSWZNEAS",
"VJGMAOFLGYIFLJTEKDNIWHJAABCASFMAKIENSYIZZSLRSUIPCJ",
"BMQGMPDRCPGWKTPLOTAINXZAAJWCPUJHPOUYWNWHZAKCDMZDSR",
"RRARTVHZYYCEDXJQNQAINQVDJCZCZLCQWQQIKUYMYMOVMNCBVY",
"ABTCRRUXVGYLZILFLOFYVWFFBZNFWDZOADRDCLIRFKBFBHMAXX",
};
int main(){
	long long ant=0;
	for(int i=0;i<30;i++){
            for(int j=0;j<50;j++){
                for(int k=j;k<50;k++){
                    if(str[i][j]<str[i][k])
			ant++;
                    }
                    for(int a=i;a<30;a++){
                        if(str[i][j]<str[a][j])
                            ant++;
                    }
		for(int m=1;m<30;m++){
                    if(i+m>29||j-m<0)
                        break;
                    if(str[i][j]<str[i+m][j-m]){
                        ant++;	
                    }
                }
		for(int m=1;m<30;m++){
                    if(i+m>29||j+m>49)
                        break;
                    if(str[i][j]<str[i+m][j+m])
                        ant++;	
		}
                for(int m=1;m<30;m++){
                    if(i-m<0||j+m>49)
                        break;
                    if(str[i][j]<str[i-m][j+m])
                        ant++;	
		}
            }
	}
	cout<<ant;
	return 0;
}