【题解】成外友谊赛

news/2025/10/17 21:18:23/文章来源:https://www.cnblogs.com/ymcblog/p/19146720

T1 舞蹈机器⼈

题目大意:
给一个可以向四个方向移动的小点,对于每次移动,如果上或下⽅向进⾏了⼀次移动,那么,下⼀次就只能往左或右⽅向进⾏⼀次移动,反之亦然。
求该点可以到达的位置数量。

STEP 1.

对于这个问题,我们可以想到一种非常暴力且优雅的 DFS 解法:

void dfs(int x,int y,int towards,int step){if(x < 0 || x >= n || y < 0 || y >= m) return; // 越界if(step==n){arr[x][y]++; // 到达位置}if(towards==0){ // 左右dfs(x-1,y,1,step+1);dfs(x+1,y,1,step+1);}else{ // 上下dfs(x,y-1,0,step+1);dfs(x,y+1,0,step+1);}
}
int main(){/*其他内容*/dfs(501,501,0,0); //从中间开始dfs(501,501,1,0);int ans=0;for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(arr[i][j]) ans++; // 统计到达位置的数量}}cout<<ans;return 0;
}

喜提 \(60\space pts\)!

STEP 2.

言归正传,这其实是一道数学题。

对于 \(n\) 为偶数时,对于整个的移动过程⽽⾔,每两次移动就相当于是在正⽅形的对⻆线上移动了⼀次(即斜着⾛了⼀步),我们可以发现其能够到达的地方其实就是一个边长为 \(n/2+1\) 的正方形。

例如,在 \(n=4\) 时,图中所标记的蓝色点即为可到达的点

img

对于 \(n\) 为奇数时,我们可以发现其能够到达的地方其实就是两个长为 \(n/2+1\) 宽为 \(n/2+2\) 的长方形构成的。

img

STEP 3.

因此,我们可以根据 \(n\) 的奇偶性,来获得最终答案

\( ans=\begin{cases} (n/2+1)^2&n\space mod\space 2=0\\ 2\times(n/2+1)\times(n/2+2)&n\space mod\space 2=1 \end{cases} \)

代码
#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;if(n&1){ // n 为奇数cout<<2*(n/2+1)*(n/2+2);}else{ // n 为偶数cout<<(n/2+1)*(n/2+1);}return 0;
}

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

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

相关文章

小程序商城客服系统

vx:llike620 网址:gofly.v1kf.com 微信小程序对接有两种方式:webview组件嵌入页面,小程序客服组件对接消息 使用webview组件嵌入聊天页面形式。这种形式更加的灵活可控,可以传递更多的信息给到客服,例如可以把用户…

ubuntu 主机创建虚拟 ip,应对容器内部配置了宿主固定 ip,宿主迁移网络环境后容器报错

配置文件:/etc/netplan/01-network-manager-all.yaml# Let NetworkManager manage all devices on this system network:version: 2renderer: NetworkManager 备份配置:cd /etc/netplan cp 01-network-manager-all.…

2025权威报告:微信编辑器排版Top 10工具推荐(全链路解决方案)

作为一名深耕新媒体领域多年的运营者,我深知内容创作者在选题、写作、配图到分发过程中面临的痛点。从文案质量把控到微信编辑器排版效率提升,再到多平台同步分发,每个环节都需要耗费大量精力。为了帮助大家找到真正…

洛谷 P10149

给定序列 \(a_1,\dots,a_n(n \le 5 \times 10^5, 3s)\) ,\(m\) 次询问,每次询问给出 \(l,r\) ,问有多少组 \((i,j,k)\) 满足 \(l\le i<j<k\le r,\;a_i=a_k>a_j\) 。 这个题看起来如果离线下来按 \(r\) 排序…

从0到1构建企业数据资产 - 智慧园区

在当今这个时代,每一个制造企业都漂浮在一片浩瀚的数据海洋之上。然而,拥有数据并不等同于拥有洞察力,更不意味着拥有了真正的数据资产。对于许多制造业者而言,数据常常是沉睡的、割裂的、甚至混乱的,它们是亟待开…

2025.10.17

今天没课,在宿舍躺了一天。

一行代码清空所有 docker 容器的日志文件

一行代码搞定cd $(docker info 2>/dev/null | awk /Docker Root Dir/ {print $4})/containers 2>/dev/null && find . -name "*-json.log" -exec truncate -s 0 {} \; && find . -nam…

塔吊施工 “隐形风险” 克星!思通数科 AI 卫士精准识别核心部件隐患

在塔吊施工安全巡检中,传统人工排查模式常陷入 “看得见却查不细、查得慢还易遗漏” 的困境:钢管开裂、锈蚀等部件损耗,靠肉眼难发现细微痕迹,尤其在光线不足、雨天或夜间作业时,识别准确率骤降;扣件是否合规、是…

ubuntu配置vsftpd

在Ubuntu上快速创建FTP服务器,推荐使用vsftpd(Very Secure FTP Daemon)。以下是完整步骤: 1. 安装vsftpdbashsudo apt update sudo apt install vsftpd 2. 配置vsftpd 备份原始配置bashsudo cp /etc/vsftpd.conf /…

时序数据库 Apache IoTDB 等你“打卡”!2025 OSCAR 开源产业大会完整版议程揭晓

10月 28 日,期待与您在北京相见!开源作为一种开放共享的新型生产模式,已成为数字经济创新、开放、共享和可持续发展的核心驱动力。由中国通信标准化协会牵头主办,中国信息通信研究院具体承办的 2025 OSCAR 开源产业…

2024 CCPC Final F

F. Witnessing the Miracle / 见证奇迹 动态规划。 打表发现当一个被拿走的磁铁集合确定之后,未被拿走的磁铁的方向和距离可以由它左边被拿走的磁铁数量确定,因此,拿走磁铁的先后顺序不影响最终局面的状态,即从 \(…

Windows关闭端口占用

Microsoft Windows [版本 10.0.18363.535] (c) 2019 Microsoft Corporation。保留所有权利。 C:\Users\Administrator> netstat -ano | find "1099"TCP 0.0.0.0:1099 0.0.0.0:0 …

洛谷 P12865

给定长度为 \(n\) 的序列 \(a\) 和 \(q\) 次操作。每次操作为对 \(a\) 进行一次冒泡排序(\(a_i > a_{i + 1}\) 时交换)或者查询 \(a_l \sim a_r\) 之和。 对于一次冒泡排序,显然会把最大值挪到最后面。所以,当 …

ubuntu清理内存缓存

sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches

ubuntu常用技巧

获取qq的pid sudo netstat -anpt | grep qq | awk {print $7} | awk -F / {print $1} | head -n 1 获取无线网卡的ip地址 ifconfig wlp2s0 | grep inet | head -n 1 | awk {print $2} 获取首行 全局范围的IPv6地址…

单线程如何撑起百万连接?I/O多路复用:现代网络架构的基石

单线程如何撑起百万连接?I/O多路复用:现代网络架构的基石I/O多路复用(I/O Multiplexing)是一种允许单个线程同时监视多个文件描述符的I/O模型。其核心价值在于,它将应用程序从低效的I/O等待中解放出来,实现了“一…

10.17 CSP-S模拟33 改题记录

10.17HZOJ 写在前面 貌似没啥可写。。。大概就是二十多分钟写完T1然后写T2,一直想假一直写挂然后写了三个多小时,好在写出来了。T3看不上,T4正解需要的东西都写了然后喜提0pts,甚至不如输出0的37pts。《夜信》 今晚…

包装类(基本数据类型对应的引用数据类型)

包装类(基本数据类型对应的引用数据类型) Notice:基本数据类型存在栈里(基本类型基本没有属性和方法,所以基本类型的运算都靠Java提供的运算符) 引用数据类型存在堆里 所以栈里存的是堆里东西的地址NObject可统一…

luogu P7915 [CSP-S 2021] 回文

题目大意 给定一个长度为 \(2n\) 的序列 \(a\),要求每次取出其第一个数或者最后一个数,使得取出的数列 \(b\) 为一个回文数列。 注:回文数列即 \(\forall i\in \{ 1,n \}\) 都有 \(b_i=b_{2n-i+1}\) Sol 考虑第一步…

字典树 Trie 乱讲

Trie 是什么 实际上它就是一颗像字典的树,支持插入单词和查询单词个数等操作。 它的边权是某个字符。比如上图,插入单词 aca 时,我们就可以在 \(5\) 号节点下新建一个节点,边权为 a。而查询是否单词 abs 时,答案为…