zoukankan      html  css  js  c++  java
  • 7-13 肿瘤诊断 (30分)

    https://pintia.cn/problem-sets/1218774283169423360/problems/1218774532776648716

    #include<iostream>
    #include<string>
    #include <cstdlib>
    #include <algorithm>
    #include<cmath>
    #include<cstring>
    #include<cstdio>
    #include<vector>
    #include<queue>
    #include<map>
    #include<set>
    #include<bitset>
    #include <iomanip>
    #include <unordered_map>
    
    // #pragma comment(linker, "/STACK:1024000000,1024000000")
    // #define pi acos(-1)
    // #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    #define INF 0x7f7f7f7f //2139062143
    #define INF1 0x3f3f3f3f //1061109567
    #define INF2 2147483647
    #define llINF 9223372036854775807
    #define pi 3.141592653589793//23846264338327950254
    #define pb push_back
    #define ll long long
    #define debug cout << "debug
    ";
    #define STDIN freopen("in.txt","r",stdin); freopen("out.txt","w",stdout);
    #define Quick ios::sync_with_stdio(false);cin.tie(NULL);
    #define scai(x) scanf("%d", &x)
    #define sca2i(x, y) scanf("%d %d", &x, &y)
    #define scaf(x) scanf("%lf", &x)
    #define sca2f(x, y) scanf("%lf %lf", &x, &y)
    #define For(m,n) for (int i = m;  i < n; i++)
    #define PII pair<int,int>
    #define PLL pair<long, long>
    inline int read(){
       int s=0,w=1;
       char ch=getchar();
       while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
       while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
       return s*w;
    }
    #define local
    #ifdef local
    #endif
    
    #define MAX 10233
    #define LCH(i) ((i) << 1)
    #define RCH(i) ((i) << 1 | 1)
    
    int a[2300][230][165];
    int m, n, l ,t;
    int d[6][3] = 
    {
        {1,0,0},{0,1,0},{0,0,1},{-1,0,0},{0,-1,0},{0,0,-1}
        
    };
    int dfs(int x, int y, int z)
    {
        a[x][y][z] = 0;
        int sum = 1;
        for (int ii = 0; ii < 6; ii++)
        {
            int xx = x + d[ii][0];
            int yy = y+ d[ii][1];
            int zz = z + d[ii][2];
            if (xx >= 0 && xx < m && yy >=0 && yy < n && zz >= 0 && zz <l && a[xx][yy][zz] == 1)
            {
                sum += dfs(xx, yy, zz);
            }
        }
        return sum;
    }
    struct node
    {
        int x, y, z;
    };
    int bfs(int x, int y, int z)
    {
        queue<node> q;
        q.push({x, y, z});
        int sum = 1;
        a[x][y][z] = 0;
        while (q.size())
        {
            //debug
            node t = q.front();q.pop();
            int x = t.x;
            int y = t.y;
            int z = t.z;
            for (int ii = 0; ii < 6; ii++)
            {
                int xx = x + d[ii][0];
                int yy = y+ d[ii][1];
                int zz = z + d[ii][2];
                if (xx >= 0 && xx < m && yy >=0 && yy < n && zz >= 0 && zz <l && a[xx][yy][zz] == 1)
                {
                    q.push({xx, yy, zz});
                    a[xx][yy][zz] = 0;
                    sum += 1;
                }
               // printf("x = %d y = %d z = %d
    ", d[ii][0], d[ii][1], d[ii][2]);
            }
        }
        return sum;
    }
    int main()
    {
    
        scanf("%d %d %d %d", &m, &n, &l, &t);
        for (int k = 0; k < l; k++)
        {
            for (int i = 0; i < m; i++)
            for (int j = 0; j < n; j++)
            {
                scanf("%d", &a[i][j][k]);
            }
        }
        int sum = 0;
        for (int k = 0; k < l; k++)
        {
            for (int i = 0; i < m; i++)
            for (int j = 0; j < n; j++)
            {
                if(a[i][j][k] == 1)
                {
                    int temp = bfs(i, j, k);
                   if(temp >= t)
                    {
                        sum += temp;
                    }
                }
            }
        }
        //cout << sum << endl;
        printf("%d
    ", sum);
    }
        
  • 相关阅读:
    linux搭建maven私服
    sgu438-The_Glorious_Karlutka_River
    [模板] 长链剖分
    bzoj3277-串
    [模板] 矩阵树定理
    [模板] 最短路/差分约束
    luogu2597-[ZJOI2012]灾难 && DAG支配树
    bzoj1150-[CTSC2007]数据备份Backup
    bzoj2152-[国家集训队]聪聪可可
    [模板] 树的重心/点分治/动态点分治
  • 原文地址:https://www.cnblogs.com/hulian425/p/14029372.html
Copyright © 2011-2022 走看看