题目
1811E - Living Sequence
题意
思路
- 数位dp + 二分
- 唯一要注意的就是纯dfs搜索会卡常(hh,就是复杂度太高了),用上一点记忆化
代码
const int N = 14;
int dp[N][N];
int a[N];
int len;
void ini()
{
for (int i = 0; i <= 9; i++)
dp[0][i] = 1;
dp[0][4] = 0;
for (int i = 1; i < N; i++)
{
for (int j = 0; j <= 9; j++)
{
if (j == 4)
continue;
for (int k = 0; k <= 9; k++)
{
if (k == 4)
continue;
dp[i][j] += dp[i - 1][k];
}
}
}
}
int cal(int x)
{
if (!x)
return 1;
len = 0;
while (x)
a[len++] = x % 10, x /= 10;
int last = -1;
int res = 0;
for (int i = len - 1; i >= 0; i--)
{
for (int j = 0; j < a[i]; j++)
{
if (j == 4)
continue;
res += dp[i][j];
}
if (a[i] == 4)
return res;
last = a[i];
if (!i)
res++;
}
return res;
}
void solve()
{
int k;
cin >> k;
int l = 0, r = 4e12;
while(l < r)
{
int mid = l + r + 1 >> 1;
if(cal(mid) <= k)
l = mid;
else
r = mid - 1;
}
cout << l + 1 << endl;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具