题解 P6356 [COCI2007-2008#3] CUDAK
1.题解 P7763 [COCI2016-2017#5] Ronald2.题解 P6497 [COCI2016-2017#2] Prosječni3.题解 P7537 [COCI2016-2017#4] Rima4.题解 P8017 [COCI2013-2014#4] UTRKA5.题解 P7751 [COCI2013-2014#2] PUTNIK6.题解 P7752 [COCI2013-2014#2] PALETA7.题解 P7586 [COCI2012-2013#1] SNAGA8.题解 P6485 [COCI2010-2011#4] PROSJEK9.题解 P6447 [COCI2010-2011#1] ŽABE10.题解P6677 [COCI2019-2020#2] Checker11.题解P8073 [COCI2009-2010#7] BAKICE12.题解P8084 [COCI2011-2012#4] BROJ13.题解P6370 [COCI2006-2007#6] KAMEN14.题解 P7165 [COCI2020-2021#1] Papričice15.题解 P9911 [COCI 2023/2024 #2] Kuglice
16.题解 P6356 [COCI2007-2008#3] CUDAK
17.题解 P7309 [COCI2018-2019#2] Kocka18.题解 P6548 [COCI2010-2011#2] IGRA19.题解 P6491 [COCI2010-2011#6] ABECEDA水道简单题的题解。
传送门。
分析
首先从数据范围出发
接着看数位 dp 的满足条件,和一定,那就更加确信是一道数位 dp 了。
至于第二问,我们可以通过二分答案来解决,答案是最早的到
#include <bits/stdc++.h> #define int long long using namespace std; const int N = 5e2+5; int n, m,sum,L,R; int f[N][N],num[N]; inline int dfs(int now,int tot,int flag) { if(!flag&&~f[now][tot]) return f[now][tot]; if(tot>sum) return 0; if(now==0) return tot==sum; int res=0,up=flag?num[now]:9; for(int i=0;i<=up;++i) res+=dfs(now-1,tot+i,flag&&(i==num[now])); if(!flag) f[now][tot]=res; return res; } inline int query(int x) { int cnt=0; while(x) { num[++cnt]=x%10; x/=10; } return dfs(cnt,0,1); } signed main() { cin>>L>>R>>sum; memset(f,-1,sizeof f); cout<<query(R)-query(L-1)<<"\n"; int l=L,r=R,res=0,x=query(L-1); while(l<=r) { int mid=l+r>>1; if(query(mid)==x) l=mid+1; else r=mid-1,res=mid; } cout<<res<<"\n"; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!