2021 年百度之星·程序设计大赛 - 初赛三 1004. 环上游走(打表)
Problem Description
有一个环,环上有 nn 个位置,它们的编号为 1...n1...n。
位置 i(1<i<n)i(1<i<n) 左右两边分别是位置 i−1i−1 和位置 i+1i+1,位置 1 左右两边分别是位置 nn 和位置 2,位置 nn 左右两边分别是位置 n−1n−1 和位置 1。
现在,我们要玩一个游戏。初始我们在位置 1,游戏共 n−1n−1 轮,对于第 i(1≤i<n)i(1≤i<n) 轮,我们可以选择从当前位置往左或往右连续走 ii 个位置。
现在我们想知道,对于给定的 nn,有多少种方案,使得我们停留的 nn 个位置(初始的位置 1 和 n−1n−1 轮中每一轮结束时候的位置)没有重复。
赛时看到数据范围傻逼,直接打了个表交上去就过了...
正解待补
#include <bits/stdc++.h>
using namespace std;
int cnt = 0;
bool v[88];
int n;
void dfs(int x, int pos) {
if(x == n) {
cnt++;
return;
}
int p1 = (pos + x) % n;
if(!p1) p1 = n;
if(!v[p1]) {
v[p1] = 1;
dfs(x + 1, p1);
v[p1] = 0;
}
int p2 = (pos + n - x) % n;
if(!p2) p2 = n;
if(!v[p2]) {
v[p2] = 1;
dfs(x + 1, p2);
v[p2] = 0;
}
}
int main() {
for(int i = 1; i <= 80; i++) {
n = i;
memset(v, 0, sizeof(v));
cnt = 0;
v[1] = 1;
dfs(1, 1);
cout << cnt << ", ";
}
return 0;
}
分类:
题库—比赛/重现赛
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-08-07 Codeforces Round #661 (Div. 3) D. Binary String To Subsequences
2020-08-07 Codeforces Round #661 (Div. 3) C. Boats Competition(暴力)
2020-08-07 Codeforces Round #661 (Div. 3) B. Gifts Fixing(思维)
2020-08-07 Codeforces Round #661 (Div. 3) A. Remove Smallest
2020-08-07 HDU6832 A Very Easy Graph Problem(最小生成树)