社区讨论
【水】关于UVa
灌水区参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @loci7012
- 此快照首次捕获于
- 2023/10/30 14:12 2 年前
- 此快照最后确认于
- 2023/11/05 01:37 2 年前
这个
Presentation Error实在是坑人啊qaq,好好的DFS题目结果重点变成了输出,求助qaq例子代码:
CPP#include<iostream>
#include<vector>
using namespace std;
typedef long long ll;
ll n;
vector<ll> ept;
bool flag=true;
ostream &operator<<(ostream &os,vector<ll> &p){
for(ll i=0;i<p.size();i++){os<<p[i];if(i<p.size()-1)os<<" ";}
return os;
}
bool prime(ll n){
if(n==1 or n==0)return false;
if(n==2)return true;
if(n%2==0)return false;
for(ll i=3;i*i<=n;i+=2){
if(n%i==0)return false;
}
return true;
}
bool isfind(ll n,vector<ll> a){
for(ll i=0;i<a.size();i++){
if(n==a[i])return true;
}
return false;
}
void dfs(vector<ll> use){
if(use.size()>=n){
if(not prime(use[use.size()-1]+use[0]))return;
if(use[0]!=1)return;
cout<<use<<endl;
flag=false;
return ;
}
for(ll i=1;i<=n;i++){
if(isfind(i,use))continue;
if(use.size()==0 or prime(use[use.size()-1]+i)){
use.push_back(i);
dfs(use);
use.erase(use.end()-1);
}
}
}
int main(){
for(ll i=1;cin>>n;i++){
if(i>1)cout<<"\n";
cout<<"Case "<<i<<":\n";
dfs(ept);
}
return 0;
}
UVa524的代码,结果发现,每次的最后一个
Case都会输出多一个换行......而且还是在最难控制的递归DFS里......回复
共 3 条回复,欢迎继续交流。
正在加载回复...