当前位置: 首页 > news >正文

app开发一般收费抖音关键词排名优化

app开发一般收费,抖音关键词排名优化,福州建设公司名单,那个网站可以做视频app制作的1. 数字操作 常见的模板 // 使用一个数组判断元素是否入过队 int inqueue[N] {0}; // 层数或者可以称为深度 int step 0; // 判断是否可以入队的条件 int isvalid(){ } BFS(int x){ // 将初始的元素压入队列 // 注意每次压队的时候都要将inque[x] 1,表明入队过…

 1. 数字操作

常见的模板

// 使用一个数组判断元素是否入过队
int inqueue[N] = {0};

// 层数或者可以称为深度
int step = 0;
// 判断是否可以入队的条件
int isvalid(){
    
}

BFS(int x){
    // 将初始的元素压入队列
    // 注意每次压队的时候都要将inque[x] = 1,表明入队过
    queue<int> q;
    q.push(x);
    inqueue[x] = 1;

    //大循环 队列q不为空
    while (!q.empty()){
        // 获得这一层的所有元素 ,因为咱们是广度优先
        int cnt = q.size();
        
        //小循环
        while (cnt--){
        int temp = q.front();
        q.pop();
        
        // BFS寻找的目的,这里就是temp 是否 == n
        if (temp == n){
            return ;//视情况而定
        }
        
        // 以此节点开始寻找下一层的有效节点
        if (isvalid(temp+1)){
            q.push(temp+1);
            // 注意压队就要伴随着inqueue[]的变化
            inqueue[temp+1] = 1;
        }
        // ....同理 
    }
    // 在小循环结束后,意味着整层的元素都被遍历过了,若没有,则下一层
    step++;
    }
}

#include <cstdio>
#include <queue>
using namespace std;
const int N = 1e5+10;
int n;
int inqueue[N] = {0};
int isvalid(int x){if (x<=n && inqueue[x] == 0)return 1;else return 0;
}
int step = 0;
void BFS(){   queue<int> q;q.push(1);inqueue[1] = 1;while (!q.empty()){int cnt = q.size();while (cnt--){int temp = q.front();q.pop();if (temp == n){return;}if (isvalid(temp+1)){q.push(temp+1);inqueue[temp+1] = 1;}if (isvalid(temp*2)){q.push(temp*2);inqueue[temp*2] = 1;}}step++;}
}
int main(){scanf("%d",&n);BFS();printf("%d",step);return 0;
}

2. 矩阵的块 

题目的思路很简单,首先就是从头到尾遍历数组,当遇到1并且未如过队(证明其是一个全新的块)时进行BFS,直到周围都是0无法进展为止,在BFS过程中,遍历过的1都被压入队中,因此inqueue为1,那么经过几次BFS,证明就有几个块。

#include <cstdio>
#include <queue>
#include <utility>using namespace std;
// 由于需要压队,那么队内的元素为PII
typedef pair<int,int> PII;const int N = 110;
int n,m;
// 是否入队,位置用二维数组即可
int inqueue[N][N] = {0};// 存储整个矩阵
int A[N][N];// 块的数量
int count = 0;// 为了便于上下左右的移动,可以设置两个数组,表示上下左右的变量
int dx[4] = {-1,1,0,0};
int dy[4] = {0,0,-1,1};int isvalid(int x,int y){// 有效的压队条件,x,y未逾越矩阵的范围,未入过队,并且值为1if (x>=1 && x<=n && y>=1 && y<=m && inqueue[x][y] == 0 && A[x][y] == 1)return 1;else return 0; 
}
void BFS(int i,int j){queue<PII> q;q.push(make_pair(i,j));inqueue[i][j] = 1;while (!q.empty()){int cnt = q.size();while (cnt--){PII temp = q.front();q.pop();// 我们无需返回什么,因此这里不需要写return 的语句// 开始寻找下一个有效的节点for (int i=0;i<4;i++){int nextx = temp.first+dx[i];int nexty = temp.second+dy[i];if (isvalid(nextx,nexty)){q.push(make_pair(nextx,nexty));inqueue[nextx][nexty] = 1;}}}}
}
int main(){scanf("%d%d",&n,&m);for (int i=1;i<=n;i++)for (int j=1;j<=m;j++)scanf("%d",&A[i][j]);for (int i=1;i<=n;i++)for (int j=1;j<=m;j++)if (A[i][j] == 1 && inqueue[i][j] == 0){BFS(i,j);count++;}printf("%d",count);return 0;
}

http://www.yidumall.com/news/1341.html

相关文章:

  • 长沙微网站建设怎样建网站赚钱
  • 万维网站建设湖北网站建设制作
  • 深圳做网站开发网站推广的几种方法
  • 怎样制作网页文件优化关键词排名哪家好
  • 上海网站开发兼职引流推广广告怎么写
  • 深圳做棋牌网站建设哪家好百度推广登录
  • 免费可以看污app秋葵免费网站seo
  • 专业苏州网站建设怎样和政府交换友链
  • 新建的网站如何做seo网络营销的宏观环境
  • 任县网站建设价格信息app拉新平台有哪些
  • 同性恋色做视频网站新东方教育机构官网
  • 大连项目备案网站广州seo好找工作吗
  • 新媒体网站建设百度权重提升
  • 安乡网站制作安卓aso
  • 加快公司网站建设广告制作公司
  • 页面设计教程seo赚钱暴利
  • 简单个人网站百度网址大全旧版
  • 重庆做的好的房产网站四川seo技术培训
  • 哪个网站能帮助做试卷百度收录提交入口网址是什么
  • 吉安做网站优化友情链接购买
  • 网站开发样板好看的网站设计
  • 兰州网站制作公司哪个好十大最靠谱培训机构
  • 扫描到网站目录然后怎么做德阳网站seo
  • 搜索引擎优化pptseo职业培训班
  • 尚义网站建设wl17581国内高清视频素材网站推荐
  • 南京行业网站建设如何做品牌宣传与推广
  • 建设手机银行网站网络推广都是收费
  • 北外网院网站建设作业新手小白怎么学做运营
  • 初学者做网站的软件百度官网app下载
  • b2c网站 主要业务流程免费注册域名网站