jQuery火箭图标返回顶部代码

最近我写搜索总是出现很多乱七八糟的的错误

我个zz

把基础的代码贴一下吧

例一:奇怪的电梯

(广搜

#include<iostream>
#include<cstdio>
using namespace std;
long long int a,b[10001],c,d[201],e[10001],head,tail=1,f[201],x,y;
int main()
{
    cin>>a>>e[0]>>c;
    for(int i=1;i<=a;i++)
      cin>>d[i];
    while(head<tail){
        if(e[head]==c){
            cout<<b[head]<<endl;
            return 0;
        }
        x=e[head]+d[e[head]];
        if(x<=a&&f[x]==0){
            e[tail]=x;
            f[x]=1;
            b[tail]=b[head]+1;
            tail++;
        }
        y=e[head]-d[e[head]];
        if(y>=1&&f[y]==0){
            e[tail]=y;
            f[y]=1;
            b[tail]=b[head]+1;
            tail++;
        }
        head++;
    }
    cout<<"-1"<<endl;
    return 0;
}

例二:八皇后

(深搜

//八皇后 
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int search(int );
void print();
bool d[10000]={0},b[10000]={0},c[10000]={0};
int n,sum=0,a[10000];
int main()
{
    cin>>n;
    search(1);
    cout<<sum<<endl;
    return 0;
}
int search(int i){
    int j;
    for(j=1;j<=n;j++){
        if(!b[j]&&!c[i+j]&&!d[i-j+n]){
            a[i]=j;
            b[j]=1;
            c[i+j]=1;
            d[i-j+n]=1;
            if(i==n)  print();
              else search(i+1);
            b[j]=0;
            c[i+j]=0;
            d[i-j+n]=0;
        }
    }
}
void print(){
    int i;
    sum++;
    if(sum>=4) return;
    else {
        for(i=1;i<=n;i++)
      cout<<a[i]<<" ";
    cout<<endl;
    }
}

 之前的码风还可以, 果然符合我强迫症的风格。

关于新码风

例三:奶酪

(深搜

#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1010;
int t, n, vis[N];
bool flag;
double h, r;
struct node {
    double x, y, z;
}e[N];
bool cmp(node x, node y) {
    return y.z < x.z;
}
double way(double x1, double y1, double z1, double x2, double y2, double z2)
{
    return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1) + (z2 - z1) * (z2 - z1));
}
void dfs(node x, int num) {
    if(x.z + r >= h) {flag = 1;return;}
    vis[num] = 1;
    for(int i = 1; i <= n; i++) {
        if(flag) return;
        if(!vis[i] && way(x.x, x.y, x.z, e[i].x, e[i].y, e[i].z) <= r * 2)
            dfs(e[i], i);
    }
}
int main() {
    scanf("%d", &t);
    while(t--) {
        memset(vis, 0, sizeof(vis));
        memset(e, 0, sizeof(e));
        flag = 0;
        scanf("%d%lf%lf", &n, &h, &r);
        for(int i = 1; i <= n; i++) 
            scanf("%lf%lf%lf", &e[i].x, &e[i].y, &e[i].z);
        sort(e + 1, e + 1 + n, cmp);
        for(int i = 1; i <= n; i++)
            if(e[i].z - r <= 0) dfs(e[i], i);
        if(flag) printf("Yes
");
        else printf("No
");
    }
    return 0;
}//ljbcjhwqc 

也没怎么变嘛

谢谢收看, 祝身体健康!

原文地址:https://www.cnblogs.com/yanxiujie/p/11665004.html