ACM题解Day4 | Boring Non-Palindrome ,Mental Rotation ,so Easy

学习目标:

博主介绍: 27dCnc
专题 : 数据结构帮助小白快速入门算法
👍👍👍👍👍👍👍👍👍👍👍👍
☆*: .。. o(≧▽≦)o .。.:*☆

Github今日打卡
在这里插入图片描述

  • ACM题解

学习时间:

  • 周一至周五晚上 7 点—晚上9点
  • 周六上午 9 点-上午 11 点
  • 周日下午 3 点-下午 6 点

学习内容:

  1. Boring Non-Palindrome
  2. Mental Rotation
  3. so Easy

内容详细:

Boring Non-Palindrome

题目考点: 回文串 字符串 模拟

在这里插入图片描述

解题思路

  • 一给函数用于判断回文串
  • 如果是回文串则返回 true 如果不是返回 false
  • 根据题目要求模拟
    • 如果是回文串直接输出
    • 如果不是回文串 去掉尾部,然后反转相加输出

样例增加
在这里插入图片描述

详细代码:

#include<bits/stdc++.h>
#define Run 0
#define endl "\n"
#define N 100005
using unl = __int128_t;
using ll = long long;
using namespace  std;bool Palindrome(string s) {for (int  i = 0 ,k = s.size() - 1; i < s.size() / 2; i++,k--) {if(s[i] != s[k]) return false;}return true;
}void slove() {string s; cin >> s;if (Palindrome(s)) {cout << s << endl;} else {string t(s.begin(),s.end() - 1);reverse(s.begin(),s.end());cout << t + s << endl;}
}signed main() {cin.tie(0) -> ios::sync_with_stdio(0);cout.tie(0) -> ios::sync_with_stdio(0);#if Runint _;cin>>_;while(_--) slove();#elseslove();#endifreturn 0;
}

Mental Rotation

题目考点: 模拟 情况匹配

在这里插入图片描述

题目代码:

#include <bits/stdc++.h>using namespace std;
char a[1010][1010];
char aa[1010][1010];
int n;
void right()
{for(int i=0;i<n; i++){for(int j=0;j<n; j++){if(a[i][j]=='>')aa[j][n-1-i]='v';else if(a[i][j]=='<')aa[j][n-1-i]='^';else if(a[i][j]=='^')aa[j][n-1-i]='>';else if(a[i][j]=='.')aa[j][n-1-i]='.';else if(a[i][j]=='v')aa[j][n-1-i]='<';}}for(int i=0;i<n; i++){for(int j=0; j<n; j++){a[i][j]=aa[i][j];}}
}
int main()
{char s[110];cin>>n;getchar();cin>>s;for(int i=0; i<n; i++){for(int j=0; j<n; j++)cin>>a[i][j];}int l=0,r=0;for(int i=0; s[i]!='\0'; i++){if(s[i]=='L')l++;elser++;}/*这个用于判断旋转次数*/l=l%4;r=r%4;r=(r+4-l)%4;while(r--){right();}for(int i=0;i<n; i++){for(int j=0;j<n; j++){if(j==n-1)cout<<a[i][j]<<endl;elsecout<<a[i][j];}}return 0;
}

样例补充
在这里插入图片描述

详细代码

#include<bits/stdc++.h>
#define Run 0
#define endl "\n"
#define N 100005
using unl = __int128_t;
using ll = long long;
using namespace  std;
char str_[1005][105];
char str[1005][105];bool Palindrome(string s) {  //这个用于判断回文串,本题没有用for (int  i = 0 ,k = s.size() - 1; i < s.size() / 2; i++,k--) {if(s[i] != s[k]) return false;}return true;
}char Ttans(char str) { /*确定旋转后的*/switch (str){case '>': return 'v';case 'v': return '<';case '^': return '>';case '<': return '^';}return '.';
}void slove() {int n; string s; cin >> n >> s;int l = 0,r = 0;//注意s不是只有一个操作for (int i = 0; i < n; i++) {cin >> str[i];}/*最为难懂的地方*/for (int i = 0;s[i]; i++) {if (s[i] != 'R') l++;else r++; }r %= 4, l %= 4; //因为4下旋转就回到原状r = (r - l + 4) % 4; //确定是向左旋转还是向右旋转while (r --) { for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) str_[i][j] = Ttans(str[n - 1 - j][i]);}memcpy(str,str_,sizeof(str_)); // 将str_ 中的元素复制到 str}for (int i = 0; i < n; i++) cout << str[i] << endl;
}signed main() {cin.tie(0) -> ios::sync_with_stdio(0);cout.tie(0) -> ios::sync_with_stdio(0);#if Runint _;cin>>_;while(_--) slove();#elseslove();#endifreturn 0;
}

so Easy

题目考点: 数学 思维
在这里插入图片描述
解题思路
本题有两种方法,一个是将过程逆过来求解,另一个是根据矩阵的性质找规律。

方法一:

由于每次都操作了一行或者一列,先不管− 1 -1−1所在的行和列,将其他所有的行,所有的列,减去该行(列)最小的那个数。这样之后− 1 -1−1所在的行和列均变成了只操作该行和该列的次数,也会发现其他位置都是0 00,随便加上两个(非− 1 -1−1所在位置)就是答案

方法二:

可以发现这样一个规律:不管进行多少次操作,该矩阵中任取一个二元子矩阵,其两条对角线上的和相同,因此直接找到− 1 -1−1周围相邻的任意四个数,斜对角线求和再减去和− 1 -1−1在同一条对角线上那个数,即可求出答案

这个是基本思路但是详细代码放头歌里是错的,我表示不理解

代码

#include <iostream>
#include <algorithm>
using namespace std;
int a[1007][1007];
int n,r,c;int main(){cin>>n;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){cin>>a[i][j];if(a[i][j]==-1){r=i;c=j;}}if(r==1){if(c==n)printf("%d",a[r+1][c]+a[r][c-1]-a[r+1][c-1]);else printf("%d",a[r+1][c]+a[r][c+1]-a[r+1][c+1]);}else if(r==n){if(c==n)printf("%d",a[r-1][c]+a[r][c-1]-a[r-1][c-1]);else printf("%d",a[r-1][c]+a[r][c+1]-a[r-1][c+1]);}else if(c==1) printf("%d",a[r+1][c]+a[r][c+1]-a[r+1][c+1]);else if(c==n) printf("%d",a[r+1][c]+a[r][c-1]-a[r+1][c-1]);else printf("%d",a[r+1][c]+a[r][c-1]-a[r+1][c-1]);return 0;
}

其他代码

#include<bits/stdc++.h>
#define int long long 
using namespace std;
const int N=1005;int n,mp[N][N];signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;int sx=1,sy=1;for(int i=1;i<=n;++i){for(int j=1;j<=n;++j){cin>>mp[i][j];if(mp[i][j]==-1){sx=i;sy=j;mp[i][j]=0;}}}for(int i=1;i<=n;++i){int mi=1e9; if(i==sx) continue; for(int j=1;j<=n;++j) mi=min(mi,mp[i][j]);for(int j=1;j<=n;++j) mp[i][j]-=mi;}for(int j=1;j<=n;++j){int mi=1e9; if(j==sy) continue;for(int i=1;i<=n;++i) if(sx!=i||sy!=j) mi=min(mi,mp[i][j]);for(int i=1;i<=n;++i) mp[i][j]-=mi;}int ans=max(mp[sx-1][sy],mp[sx+1][sy])+max(mp[sx][sy+1],mp[sx][sy-1]);cout<<ans<<"\n";return 0;
}

学习产出:

  • 技术笔记 2 遍
  • CSDN 技术博客 3 篇
  • 习的 vlog 视频 1 个

在这里插入图片描述

重磅消息:

GTP - 4 最新版接入服务他来了 点击链接即可查看详细

GTP - 4 搭建教程

🔥如果此文对你有帮助的话,欢迎💗关注、👍点赞、⭐收藏、✍️评论,支持一下博主~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/686707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

时间序列预测模型:ARIMA模型

1. ARIMA模型原理介绍 ARIMA模型&#xff0c;全称为自回归积分滑动平均模型&#xff08;Autoregressive Integrated Moving Average Model&#xff09;&#xff0c;是一种常用的时间序列预测方法。ARIMA模型通过对时间序列数据的差分化处理&#xff0c;使非平稳时间序列数据变…

详解FreeRTOS:如何统计任务运行时间和CPU占有率(拓展篇—7)

FreeRTOS 可以通过函数 vTaskGetRunTimeStats()来统计每个任务使用 CPU 的时间,以及所使用的时间占总时间的比例。在调试代码的时候我们可以根据这个时间使用值来分析哪个任务的 CPU 占用率高,然后合理的分配或优化任务。 本篇博文我们就来学习如何使用 FreeRTOS 运行时间状态…

鸿蒙系统优缺点,能否作为开发者选择

凡是都有对立面&#xff0c;就直接说说鸿蒙的优缺点吧。 鸿蒙的缺点&#xff1a; 鸿蒙是从2019年开始做出来的&#xff0c;那时候是套壳Android大家都知晓。从而导致大家不看鸿蒙系统&#xff0c;套壳Android就是多次一举。现在鸿蒙星河版已经是纯血鸿蒙&#xff0c;但是它的…

点亮代码之灯,程序员的夜与电脑

在科技的海洋里&#xff0c;程序员是那些驾驶着代码船只&#xff0c;穿梭于虚拟世界的探险家。他们手中的键盘是航行的舵&#xff0c;而那台始终不愿关闭的电脑&#xff0c;便是他们眼中永不熄灭的灯塔。有人说&#xff0c;程序员不喜欢关电脑&#xff0c;这究竟是为什么呢&…

SSM框架,spring-aop的学习

代理模式 二十三种设计模式中的一种&#xff0c;属于结构型模式。它的作用就是通过提供一个代理类&#xff0c;让我们在调用目标方法的时候&#xff0c;不再是直接对目标方法进行调用&#xff0c;而是通过代理类间接调用。让不属于目标方法核心逻辑的代码从目标方法中剥离出来…

PPT导出PDF时保持图像高清的方法

问题: 我们经常会发现&#xff0c;在PPT中插入的图片非常高清&#xff0c;但是通过PPT转换为PDF之后&#xff0c;图片就会出现不同程度的失真。 问题产生的原因: 这是因为Acrobat的PDF Maker在将PPT转换为PDF的时候&#xff0c;对PPT中的图片进行了压缩 Solution: 在PPT的…

博途PLC数值积分器(矩形梯形积分自由切换)

数值积分器的相关介绍,大家可以也可以参看下面几篇文章,链接如下: PLC算法系列数值积分器 https://rxxw-control.blog.csdn.net/article/details/128562853https://rxxw-control.blog.csdn.net/article/details/128562853SMART PLC 梯形和矩形积分 https://rxxw-control.…

【数据结构】18 二叉搜索树(查找,插入,删除)

定义 二叉搜索树也叫二叉排序树或者二叉查找树。它是一种对排序和查找都很有用的特殊二叉树。 一个二叉搜索树可以为空&#xff0c;如果它不为空&#xff0c;它将满足以下性质&#xff1a; 非空左子树的所有键值小于其根节点的键值非空右子树的所有键值都大于其根结点的键值左…

CPU如何检测静默错误?

CPU检测静默数据错误&#xff08;Silent Data Errors, SDC&#xff09;通常采用以下几种方法&#xff1a; 内置ECC&#xff08;Error Correction Codes&#xff09;内存支持&#xff1a;现代服务器和部分高端工作站级的CPU会与具有ECC功能的内存协同工作。ECC内存能够在数据写入…

2.16学习总结

1.邮递员送信&#xff08;dijkstra 不只是从起到到目标点&#xff0c;还要走回去&#xff09; 2.炸铁路(并查集) 3.统计方形&#xff08;数据加强版&#xff09;&#xff08;排列组合&#xff09; 4.滑雪&#xff08;记忆化&#xff09; 5.小车问题&#xff08;数学问题&#x…

无人机系统组装与调试,多旋翼无人机组装与调试技术详解,无人机飞控系统原理

多旋翼无人机飞控系统的组装 在开始组装前&#xff0c;确保您已准备好所有必要的工具和材料。这包括螺丝刀、电烙铁、焊台、杜邦线、飞控板、GPS模块、电机、桨叶等。 飞控安装 安全开关安装&#xff0c;将安全开关固定在机架上。将安全开关的线插到飞控SWITCH插口上。 电调…

【半监督图像分割 2023 】BHPC

【半监督图像分割 2023 】BHPC 论文题目&#xff1a;Semi-supervised medical image segmentation via hard positives oriented contrastive learning 中文题目&#xff1a;通过面向硬阳性的对比学习进行半监督医学图像分割 论文链接&#xff1a; 论文代码&#xff1a;https:/…

亚马逊、国际站、速卖通新店怎么销量破冰?自养号测评爆款打造思路

亚马逊作为全球最大的电子商务平台之一&#xff0c;吸引了众多卖家进驻其平台。对于新店铺来说&#xff0c;如何在竞争激烈的市场中突破销量瓶颈&#xff0c;成为卖家们关注的焦点。 一、亚马逊新店怎么销量破冰&#xff1f; 优化商品信息&#xff1a;在亚马逊平台上&#xff…

Python学习Pytorch

一、如何查看本机是否安装了Pytorch 在Python环境中查看是否安装了PyTorch可以通过几个简单的步骤来完成。这里有一些方法&#xff1a; 使用Python命令行: 打开你的命令行工具&#xff08;比如Terminal、Command Prompt或Anaconda Prompt&#xff09;&#xff0c;然后输入Pyth…

牛客网SQL进阶128:未完成试卷数大于1的有效用户

官网链接&#xff1a; 未完成试卷数大于1的有效用户_牛客题霸_牛客网现有试卷作答记录表exam_record&#xff08;uid用户ID, exam_id试卷ID, st。题目来自【牛客题霸】https://www.nowcoder.com/practice/46cb7a33f7204f3ba7f6536d2fc04286?tpId240&tqId2183007&ru%2…

【深度学习】Pytorch 系列教程(三):PyTorch数据结构:2、张量的数学运算(1):向量运算(加减乘除、数乘、内积、外积、范数、广播机制)

文章目录 一、前言二、实验环境三、PyTorch数据结构0、分类1、Tensor&#xff08;张量&#xff09;1. 维度&#xff08;Dimensions&#xff09;2. 数据类型&#xff08;Data Types&#xff09;3. GPU加速&#xff08;GPU Acceleration&#xff09; 2、张量的数学运算1. 向量运算…

蓝桥杯真题:扑克牌移动

import java.util.*; public class Main {public static List moveCard(List src){if(srcnull) return null;List dst new Vector();for(;;){if(src.size()0) break; // 填空src.add(src.remove(0));//remove(0) 是一个 List 接口中的方法调用&#xff0c;它表示移除列表中指…

前端秘法进阶----css中那些不能说的秘密

目录 一.css属性计算过程 1.使用继承 2.使用默认值 3.面试题 二.css之包含块 一.css属性计算过程 1.使用继承 层叠冲突这一步完成后&#xff0c;解决了相同元素被声明了多条样式规则究竟应用哪一条样式规则的问题。 那么如果没有声明的属性呢&#xff1f;此时就使用默认…

【二分查找】LCR 007. 三数之和

LCR 007. 三数之和 解题思路 定义&#xff1a;定义一个名为Solution的类&#xff0c;并且在这个类中维护一个成员变量res&#xff0c;用于存储所有满足条件的三元组。主方法&#xff1a;threeSum方法是解决问题的入口点。它调用threeSumTarget方法来计算所有和为0的三元组。转…

Sentinel注解@SentinelResource详解

Sentinel注解SentinelResource详解 熔断 针对访问超过限制【sentinel中配置的限制】的资源&#xff0c;通过java代码配置&#xff0c;返回一个自定义的结果&#xff0c;需要用到 SentinelResource 注解的 blockHandlerClass 和 blockHandler 属性。 blockHandlerClass&#…