HQY的水题大赛解析

本文详细解析了HQY的四道编程题目,涉及字符操作、Manhattan距离、BFS搜索及数论模拟。通过分析题目、阐述知识点和解题方法,展示了从手机问题到迷宫、约会和读数问题的解决方案,帮助读者理解算法应用。
摘要由CSDN通过智能技术生成

博主:@DY 我做完了所有题目,说好奖励HQY女朋友的吻呢【手动滑稽】

HQY:曹贼纳命来!!!!(强行屏蔽)

HXY:@XueYunAW 所以说爱会消失,是吗? (掏出了钛合金键盘)

博主:@HXY 开个玩笑,别当真啊! (惨叫&&痛苦面具)

读者: TMD正文怎么还没开始!!!!

. . . . . .


比赛题目列表: 传送阵



NO 1:HQY与手机

(1)查看题目

折跃门

在这里插入图片描述

在这里插入图片描述

(2)分析题目

1.知识点

不难看出本题考察的是对字符&字符串的操作 (废话)

2.方法

本人使用字符数组存储法
当然方法并不唯一 (废话)

(3)解决问题

1.存储字母


	for(int i=0;i<t.size();++i)
	a[t[i]]=r[i];

2.打出对应字母


	for(int i=0;i<s.size();++i)
	cout<<a[s[i]];

完整代码


#include<bits/stdc++.h>
using namespace std;
char a[1001];//数据范围很小,数组定义的有亿点点浪费 
string s,t,r;
int main(){
   
	cin>>s>>t>>r;
	for(int i=0;i<t.size();++i)
	a[t[i]]=r[i];//强制类型转换,以ASCII码为下标 
	for(int i=0;i<s.size();++i)
	cout<<a[s[i]]; 
	return 0;
}


NO 2:HQY和迷宫

(1)查看题目

折跃门

在这里插入图片描述

(2)分析题目

1.知识点

Manhattan距离

2.方法

有很多同学看到迷宫类题目就想到搜索,但搜索并不算是一种高效算法,而且本题数据在0~ 1 0 8 10^8 108之间,搜索很不现实。所以要用数论,Manhattan距离,记住公式:Manhattan距离=| x 1 − x 2 x_1-x_2 x1x2|+| y 1 − y 2 y_1-y_2 y1y2|.

(3)解决问题

1.绝对值

使用abs()函数,即绝对值,abs(x) = return x>=0?x:-x.

2.Manhattan距离公式

将公式转化为代码:


abs(x[1]-x[2])+abs(y[1]-y[2]);

完整代码


#include<bits/stdc++.h>
using namespace std;
int m,n,x[2],y[2];
int main(){
   
	scanf("%d%d%d%d%d%d",&m,&n,&x[1],&y[1],&x[2],&y[2]);
String base64String = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAA4WlDQ1BzUkdCAAB4nGNgYDzNAARMDgwMuXklRUHuTgoRkVEKDEggMbm4gAE3YGRg+HYNRDIwXNYNLGHlx6MWG+AsAloIpD8AsUg6mM3IAmInQdgSIHZ5SUEJkK0DYicXFIHYQBcz8BSFBDkD2T5AtkI6EjsJiZ2SWpwMZOcA2fEIv+XPZ2Cw+MLAwDwRIZY0jYFhezsDg8QdhJjKQgYG/lYGhm2XEWKf/cH+ZRQ7VJJaUQIS8dN3ZChILEoESzODAjQtjYHh03IGBt5IBgbhCwwMXNEQd4ABazEwoEkMJ0IAAHLYNoQhqzLMAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADlklEQVQ4jW2UXWhcRRTH/zP33u1udpPNJm6zq5g2WYyxaWowUpBGUbQPfkDSQEAUH3zLw0JepT4JtRUkGKT4IBGC1HwYExHxoZYuoSoiVpCWNYQEW9paNjTZbHdxv+7s+fuQe2UtDvxnDsOZ35xz5jAQETSLZGR9ff2RsbGxeiwWqwGot7e3u6Ojo/lsNvsYyaCIKE8QETwICE5NTQmABgB/bZak02khGf9fCEk9Nzd3HwAByOTkpNvf3+8CML29vfV0Ou16YJmdnd0jafkgHwCSYQ/A7u5uIelmMhkXQL1YLNZJuqlUSnwfkgGSSkSgsT+spaWlu56NaDSKUqnEhYUFAMDGxgZ3d3eltbWVvs/8/Pxnvv1vKhMTE8a/BYB8+PGcefnU2waAefbkRGP6/Od+nQiA4+Pj4keyPyll9fX1uZubmyraonH2TQeHYzUcTgDxWAg7exXcyAE3Cwfw7hcGhb8bSKVS3NraskjS9gLSt/f2FADcrxBGNF45EQY6BHCBeCqEJwoa579toFAWAMCtfB4PpmOd6UjwKe2wKSVCg20HQVj4z/6Qdvhe9CBJBkQEiqQyv197yR1+7vtQMgEohSoFfxoX265BWYAWDXQ5NnotB0GtARKVXI7OL2tle3gookiqtVOvV0au/ByAUmrPuNAtLbAAaNcFREACIg00TANiDDsiESgSP4wcx/PfLFuKpK2UqgFQb7z6Gi4cexo7n3wK2LZSgwPQ4RbSspTq7KTdcwhtI8/IW+fO6guXLgL7DdNmLy8v73hPp1sHB6CODii6BixXGP3og2Jw6NijAGpePQDgQOTrr3Zx6aINAIuLi9v2ysqK/0IIWpaLYpEsF+4Spiy7+eMA/HYnAA2gHrQsF4ANAKurq46dyWSsRCJhcrmcs3PnL4V3TveGbavIctl2jh5xvcPKAykAzOfzNgAmk0lmMhkBgG1jTDwajdbj8bghGSVpk9QklSeQtDzZyWSyFg6HqyQfBlBBNptVJO2ZmZk/AJhCoRDwnHUTQHuyS6WSA8BMT09fIxnLZrM2vP7XJE/Ek6lGIBSVplv9SLQPDkU6qh1dPTWSh0QkRtLy/hM6JCu8c84MdkGANrP246/hpgisKz9dHQfay0ficHn7/TLJ70TYIyL2/qeiVKCaOVm07122nHhIZ68LznxZ5W83HQY7H0c1v6GGu12enghy8ElNc69i3IdeuB588fI4yJ1/AG/UgW4Mx7v6AAAAAElFTkSuQmCC"; //将Base64编码字符串解码成Bitmap String outputStr; outputStr = ""; if (!base64String.isEmpty()) { //移除所有换行和空格 outputStr = base64String.replace("data:image/png;base64,",""); //如果有data:image/png;base64字段则去除 byte[] decodedString = new byte[14096]; decodedString = Base64.decode(outputStr, Base64.DEFAULT); int zfgs= outputStr.length(); String s = String.valueOf(zfgs); textdx1.setText("字符个数为:" + s + ",已经移除换行符: "+base64String); //return; } byte[] tpxssj = new byte[14096]; tpxssj =outputStr.getBytes(); decodedByte = BitmapFactory.decodeByteArray(tpxssj, 0, tpxssj.length); //显示ImageView图片 tpczrq.setImageBitmap(decodedByte); int aa =1; if(aa==1) return;
06-09
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值