递推算法训练
第一题:
洛谷2.8 - 小志61314 - 博客园 (cnblogs.com)
第二题:
P1028 [NOIP2001 普及组] 数的计算 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题意很明显:
其实我要从以前的思维里面跳出来,我刚开始看这个题想找规律,就是硬想,其实只需要掌握一下递推式就好
比如n=10;
因为加原数的一半,所以在每次加之后就只需要考虑后面的就好
f(10)=f(1)+f(2)+f(3)+f(4)+f(5)
于此类推,下面看代码:
#include<iostream> using namespace std; const int N=1010; int f[N]; int main(){ int n; cin>>n; for(int i=1;i<=n;i++) { f[i]=1; for(int j=1;j<=i/2;j++) { f[i]+=f[j]; } } cout<<f[n]; return 0; }
挖地雷:
啧,有点草率了,思路我想到了,但是还是不够具体,我的评价是这题是一个递推+大型的if-else分支的题,hh,反正思路不是那么清晰而且码力不太够,ac43,草率了,多练练吧。下面直接贴正确代码,哦对了,a(i)=b(i-1)+b(i)+b(i+1),就这个,而且从边界出发到最后必然可以递推到,我打算从3出发,那万一没有呢是吧,反正我刚开始的思路奇奇怪怪
#include<iostream> using namespace std; int n; const int N=1e5+10; int a[N],b[N]; int check() { for(int i=2;i<=n;i++) { b[i+1]=a[i]-b[i-1]-b[i]; if(b[i+1]<0||b[i+1]>3) return 0; } if(b[n+1]!=0) return 0; else return 1; } int main(){ cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; if(a[i]<0||a[i]>3) { cout<<"No answer"; return 0; } } if(a[1]==0) { b[1]=0; b[2]=0; } if(a[1]==2) { b[1]=1; b[2]=1; } if(a[1]==1) { b[1]=0; b[2]=1; } int x=check(); if(a[1]==1&&!x) { b[1]=1; b[2]=0; } x=check(); if(!x) cout<<"No answer"; else for(int i=1;i<=n;i++) cout<<b[i]<<" "; return 0; } /* a[i]=b[i-1]+b[i]+b[i+1] b[i+1]=a[i]-b[i-1]-b[i] */
偶数3的个数
#include<iostream> using namespace std; const int N=1010; int f[N][2]; int main(){ int n; cin>>n; f[1][0]=9; f[1][1]=1; int k=9; for(int i=2;i<=n;i++) { if(i==n) k--; f[i][0]=f[i-1][0]*k+f[i-1][1]; f[i][1]=f[i-1][1]*k+f[i-1][0]; } cout<<f[n][0]; return 0; } /* 令f[i][1]为1~i中奇数的个数 f[i][0]为1~i中偶数的个数 可以由前面推到后面 第i位偶数个3必须满足(和奇数偶数都有关系的): 前i个是偶数个3,第i位不能取3(第i位有9个) 前i个是奇数个3,第i位必须取3(第i位有1个) (上面只是两种情况) f[i][0]=f[i-1][0]*9+f[i-1][1];//因为第i位只有一个3 f[i][1]=f[i-1][1]*9+f[i-1][0]; 奇数+偶数的全体是n位数里面一共的数 */
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具