luogu P2233 [HNOI2002]公交车路线
[HNOI2002]公交车路线
题目描述
在长沙城新建的环城公路上一共有
Tiger 的方向感极其糟糕,我们知道从公交站 A 到公交 E 只需要换
输入格式
仅有一个正整数
输出格式
输出一个正整数表示方案数,由于方案数很大,请输出方案数除以
样例 #1
样例输入 #1
6
样例输出 #1
8
提示
8 条路线分别是:
(A→B→C→D→C→D→E),(A→B→C→B→C→D→E),
(A→B→A→B→C→D→E),(A→H→A→B→C→D→E),
(A→H→G→F→G→F→E),(A→H→G→H→G→F→E),
(A→H→A→H→G→F→E),(A→B→A→H→G→F→E)。
数据范围
思路
显然我们两维状态dp[i][j]表示当前为第i次乘车 我们在第j个站
切记我们不可从E转移过去 所以我们的答案为dp[n-1][0]+dp[n-1][6]
#include <bits/stdc++.h> using namespace std; const int N = 1e7+10; const int M = 998244353; const int mod = 1000; //#define int long long #define endl '\n' #define all(x) (x).begin(),(x).end() #define YES cout<<"YES"<<endl; #define NO cout<<"NO"<<endl; #define _ 0 #define pi acos(-1) #define INF 0x3f3f3f3f3f3f3f3f #define fast ios::sync_with_stdio(false);cin.tie(nullptr); int dp[2][7]; void solve() { int n;cin>>n; dp[0][3]=1; for(int i=1;i<n;i++){ for(int j=0;j<7;j++){ if(j==0)(dp[i&1][j]=dp[(i-1)&1][j+1])%=mod; else if(j==6)(dp[i&1][j]=dp[(i-1)&1][j-1])%=mod; else (dp[i&1][j]=dp[(i-1)&1][j-1]+dp[(i-1)&1][j+1])%=mod; } } cout<<(dp[n&1^1][0]+dp[n&1^1][6])%mod<<endl; } signed main(){ fast int T;T=1; while(T--) { solve(); } return ~~(0^_^0); }
当然我们可以只考虑一边
但是这样我们和A和E一样属于端点 所以dp时要*2
#include <bits/stdc++.h> using namespace std; const int N = 1e7+10; const int M = 998244353; const int mod = 1000; //#define int long long #define endl '\n' #define all(x) (x).begin(),(x).end() #define YES cout<<"YES"<<endl; #define NO cout<<"NO"<<endl; #define _ 0 #define pi acos(-1) #define INF 0x3f3f3f3f3f3f3f3f #define fast ios::sync_with_stdio(false);cin.tie(nullptr); int dp[2][4]; void solve() { int n;cin>>n; dp[0][0]=1; for(int i=1;i<n;i++){ for(int j=0;j<4;j++){ if(j==0)(dp[i&1][j]=2*dp[(i-1)&1][j+1])%=mod; else if(j==3)(dp[i&1][j]=dp[(i-1)&1][j-1])%=mod; else (dp[i&1][j]=dp[(i-1)&1][j-1]+dp[(i-1)&1][j+1])%=mod; } } cout<<(dp[n&1^1][3]*2)%mod<<endl; } signed main(){ fast int T;T=1; while(T--) { solve(); } return ~~(0^_^0); }
分类:
训练记录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】