1 条题解
-
0
自动搬运
来自洛谷,原作者为

HZY1618yzh
/team/99897给个壶把关注,五年级蒟蒻很不容易的呢!三同号:13326943565搬运于
2025-08-24 23:15:04,当前版本为作者最后更新于2025-04-28 16:17:29,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
本题暴力+模拟就能过。
思路
首先,枚举 至 的所有数,倒序分解数位后用快慢指针看看是否满足条件。
倒序分解数位可以通过每次不断把枚举到的数一直取余十,但一直取余十会把 清零,所以要用一个 变量储存 的值。
那如何判断是否满足条件呢?先看看条件的代码翻译:如果 的数码不包含按顺序的 ,则 增加一。我们可以不断判断第快指针个数位是否是 的第慢指针个数位,如果是,慢指针加一。当慢指针大于三的时候,即概数有 这四个数,所以跳出循环。最后看看慢指针是否是四就能知道是否包含 。
代码
#include<bits/stdc++.h> using namespace std; int a[]={2,0,2,3},top,ans; int main(){ for(int i=12345678;i<=98765432;i++){ top=0; int z=i,now[8]={},cnt=0; while(z){ now[cnt++]=z%10; z/=10; } for(int i=cnt;i>=0;i--) if(now[i]==a[top]){ top++; if(top>3) break; } if(top>3) continue; ans++; } cout<<ans; return 0; }~给个一键三连吧!~
- 1
信息
- ID
- 12195
- 时间
- 10000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者