社区讨论
MLE求救
P8599 [蓝桥杯 2013 省 B] 带分数参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lo1vst5q
- 此快照首次捕获于
- 2023/10/23 03:48 2 年前
- 此快照最后确认于
- 2023/11/03 04:17 2 年前
CPP
#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 5;
int n,ans,num[5];
bool vis[10];
bool check(){
if(num[2] % num[3] != 0){
return false;
}
return (num[1] + num[2] / num[3] == n);
}
void dfs(int cur,int id){
if(cur == 10 && id == 3){
if(check() == true){
ans++;
}
return ;
}
if(cur == 10 && id > 3){
return ;
}
if(num[1] > n || num[3] > num[2]){
return ;
}
for(int i = 1;i <= 9;i++){
if(vis[i] == false){
int tmp = num[id];
num[id] = tmp * 10 + i;
vis[i] = true;
dfs(cur + 1,id);
num[id] = tmp;
num[id + 1] = i;
dfs(cur + 1,id + 1);
vis[i] = false;`
num[id + 1] = 0;
}
}
return ;
}
int main(){
cin >> n;
dfs(1,1);
cout << ans;
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...