蓝桥杯-带分数
来源:互联网 发布:golang syscall详解 编辑:程序博客网 时间:2024/05/05 00:41
一道搜索题,先爆出所有1-9的所有排列,然后依次枚举就行了~
注意一个地方的剪枝
代码:
#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int maxn=1e6+1000;char num[maxn][11];int cnt=0,n;bool vis[11];void Init(int index){ if(index==9) {num[cnt++][9]='\0';strcpy(num[cnt],num[cnt-1]);return; } for(int i=1;i<10;i++)if(!vis[i]){ num[cnt][index]=i+'0'; vis[i]=1; Init(index+1); vis[i]=0;}}int Is(int index,int val){ int a=0,b,c,ans=0; for(int i=0;i<9;i++) {a=a*10+num[index][i]-'0';b=0;int j=i+1;for(;j<((8-i)>>1)-1;j++) b=b*10+num[index][j]-'0';for(;j<8;j++){ b=b*10+num[index][j]-'0'; c=0; for(int k=j+1;k<9;k++)c=c*10+num[index][k]-'0'; if(b%c!=0)continue; if(a+b/c==val) ans++;} } return ans;}int main(){ Init(0); while(scanf("%d",&n)!=EOF) {int ans=0;for(int i=0;i<cnt;i++)ans+=Is(i,n);printf("%d\n",ans); } return 0;}
0 0
- 【蓝桥杯】带分数
- 带分数 - 蓝桥杯
- 蓝桥杯,带分数
- 蓝桥杯 带分数
- 蓝桥杯-带分数
- 蓝桥杯:带分数
- 蓝桥杯 带分数
- 蓝桥杯---带分数
- 蓝桥杯 带分数
- 蓝桥杯 带分数
- 蓝桥杯带分数
- 蓝桥杯 带分数
- 蓝桥杯-带分数
- 蓝桥杯 带分数
- 带分数 蓝桥杯
- 蓝桥杯 带分数
- 蓝桥杯 带分数
- 蓝桥杯--带分数
- Spring自动装配小结
- linux下热插拔事件的产生是怎样通知到用户空间,kobject_uevent_env之uevent
- Linux下共享库问题导致无法启动SQLPLUS的问题解决
- 《我们在时光的列车上,没有终点》
- Java import导包的时候出现Access Restriction问题的解决方法
- 蓝桥杯-带分数
- 表达式必须是常量表达式
- Ubuntu下常用命令集锦
- java相关环境变量配置
- LeetCode Valid Parentheses
- 中文传值解决乱码问题
- Android学习笔记(五一):服务Service(上)- IntentService
- [C/C++标准库]_[初级]_[std::map的使用细节]
- C++ 异或运算