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

进服务器编辑网站怎么做北京网站推广营销策划

进服务器编辑网站怎么做,北京网站推广营销策划,优化裁员,使用ftp软件连接到网站空间ACM- 其他算法 一、前缀和模板例题1、区间余数求K倍区间个数:AcWing 1230. K倍区间例题2、前缀和哈希求最长个数平分子串:Leetcode 面试题 17.05 字母与数字 二、差分1、一维差分2、二维差分 一、前缀和 模板 //一维前缀和 S[i] a[1] a[2] ... a[i] a[l] ... …

ACM- 其他算法

  • 一、前缀和
    • 模板
    • 例题1、区间余数求K倍区间个数:AcWing 1230. K倍区间
    • 例题2、前缀和+哈希求最长个数平分子串:Leetcode 面试题 17.05 字母与数字
  • 二、差分
    • 1、一维差分
    • 2、二维差分

一、前缀和

模板

//一维前缀和
S[i] = a[1] + a[2] + ... a[i]
a[l] + ... + a[r] = S[r] - S[l - 1]//二维前缀和
S[i, j] = 第i行j列格子左上部分所有元素的和
以(x1, y1)为左上角,(x2, y2)为右下角的子矩阵的和为:
S[x2, y2] - S[x1 - 1, y2] - S[x2, y1 - 1] + S[x1 - 1, y1 - 1]

例题1、区间余数求K倍区间个数:AcWing 1230. K倍区间

原题链接: https://www.acwing.com/problem/content/1232/

(原题来源: 第八届蓝桥杯省赛C++B组,第八届蓝桥杯省赛JAVAB组)
在这里插入图片描述

import java.util.Scanner;public class Main{public static int[] sum = new int[100010];  //前缀和取模后public static int[] cnt = new int[100010];  //个数public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int k = sc.nextInt();long ans = 0;cnt[0] = 1;for (int i = 1; i <= n; ++ i) {sum[i] = sum[i - 1] + sc.nextInt(); //计算前缀和sum[i] %= k;  //求出k的整数次倍剩下的数ans += cnt[sum[i]];  //相当于减去前面的余数,得出以i为终点的合法子序列的种数++ cnt[sum[i]];     //更新}System.out.println(ans);}
}

例题2、前缀和+哈希求最长个数平分子串:Leetcode 面试题 17.05 字母与数字

原题链接:https://leetcode-cn.com/problems/find-longest-subarray-lcci/
在这里插入图片描述

思路

字母+1,数字-1,获得array的前缀和数组arr,同时记录和维护当前的sum的最远索引位置,比如对于A 1 A A 1 1 A 1 1 1 A 1 1 A,可以获得前缀和数组:1 0 1 2 1 0 1 0 -1 -2 -1.
我们可以发现对于第一个A来说,能和它匹配的最长子数组是最后一个0的位置.
以此类比,假如当前位置是字母,其前缀和为a,那么最远能匹配的位置一定是最远的前缀和为a-1的地方;
反之,假如当前位置是数字,其前缀和为a,那么最远能匹配的位置一定是最远的前缀和为a+1的地方.

class Solution {
public:static const int N = 100000;int book[N * 2 + 20], arr[N + 20];vector<string> findLongestSubarray(vector<string>& array) {int num = 0, length = array.size();for (int i = 0; i < length; ++ i) {if (isNum(array[i][0])) -- num;else ++ num;book[num + N] = i;arr[i] = num;}vector<string> ans;int maxx = 0, l = -1, r = -1;for (int i = 0; i < length; ++ i) {if (isNum(array[i][0])) { int a = book[N + arr[i] + 1];if (a > i && a - i > maxx) {maxx = a - i;l = i, r = a;}}else {int a = book[N + arr[i] - 1];if (a > i && a - i > maxx) {maxx = a - i;l = i, r = a;}}}if (maxx == 0) return ans;else {for (int i = l; i <= r; ++ i) {ans.push_back(array[i]);}return ans;}}bool isNum(char c) {return c >= '0' && c <= '9';}
};

二、差分

1、一维差分

AcWing 797. 差分

原题链接:https://www.acwing.com/problem/content/799/
在这里插入图片描述
差分定义

首先给定一个原数组a:a[1], a[2], a[3]……a[n];

然后我们构造一个数组b : b[1] ,b[2] , b[3]…… b[i];

使得 a[i] = b[1] + b[2 ]+ b[3] +…… + b[i]

也就是说,a数组是b数组的前缀和数组,反过来我们把b数组叫做a数组的差分数组。
换句话说,每一个a[i]都是b数组中从头开始的一段区间和。

解法

给区间[l, r]中的每个数加上c:B[l] += c, B[r + 1] -= c

代码

#include<bits/stdc++.h>using namespace std;const int N = 100010;//add为差分数组,表示当前位置的变化
int nums[N], add[N];int main() {int n, m;cin >> n >> m;for (int i = 1; i <= n; ++ i) cin >> nums[i];while (m --) {int l, r, c;cin >> l >> r >> c;add[l] += c;add[r + 1] -= c;}for (int i = 1; i <= n; ++ i) {add[i] += add[i - 1];nums[i] += add[i];cout << nums[i] << " ";}return 0;
}

2、二维差分

AcWing 798. 差分矩阵
原题链接:https://www.acwing.com/problem/content/800/
在这里插入图片描述
在这里插入图片描述
看代码应该就差不多了。

#include <bits/stdc++.h>using namespace std;const int N = 1010;int nums[N][N], add[N][N];  //add为差分矩阵void insert(int x1, int y1, int x2, int y2, int c) {add[x1][y1] += c;add[x1][y2 + 1] -= c;add[x2 + 1][y1] -= c;add[x2 + 1][y2 + 1] += c;
}int main() {int n, m, q;cin >> n >> m >> q;for (int i = 1; i <= n; ++ i) {for (int j = 1; j <= m; ++ j) {cin >> nums[i][j];}}while (q --) {int x1, y1, x2, y2, c;cin >> x1 >> y1 >> x2 >> y2 >> c;insert(x1, y1, x2, y2, c);}for (int i = 1; i <= n; ++ i) {for (int j = 1; j <= m; ++ j) {add[i][j] += add[i - 1][j] + add[i][j - 1] - add[i - 1][j - 1];nums[i][j] += add[i][j];cout << nums[i][j] << " ";}cout << endl;}return 0;
}
http://www.hengruixuexiao.com/news/6552.html

相关文章:

  • 外贸公司网站模板免费seo神器
  • seo推广原理深圳市seo上词多少钱
  • 国内新冠最新消息网络营销推广seo
  • 程序员兼职接单平台贵州二级站seo整站优化排名
  • 西城上海网站建设网页设计收费标准
  • 网站建设 淄博 兼职cms网站模板
  • 宝鸡营销型网站国家市场监督管理总局
  • 上海网站设计开发优化设计数学
  • 手机网站报价单模板下载广西壮族自治区
  • wordpress 浮动按钮沈阳seo顾问
  • 成都网站建站高质量外链代发
  • 做网站在后台如何添加链接淘宝关键词搜索排行榜
  • 重庆的做网站公司热搜榜上能否吃自热火锅
  • 在网站留外链怎么做免费发布信息网
  • b2b电子商务网站建设方案网站排名优化怎样做
  • 在百度上怎么建立网站做个公司网站大概多少钱
  • 注册网站时手机号格式不正确搜索引擎推广试题
  • 济南网站设计建设长沙seo代理
  • 微信网站建设流程电商培训大概多少学费
  • 交通部基本建设质量监督总站网站热点营销案例
  • 企业如何在自己的网站上做宣传搜索引擎推广方式有哪些
  • 怎么建立网站文件夹新闻媒体发稿平台
  • 兼职做Ppt代抄论文的网站网站排名优化推广
  • 温州做网站费用seo关键词排名网络公司
  • 陕西省西安市网站建设公司昆明关键词优化
  • 专业做网站哪家正规企业在线培训系统
  • 简洁文章类织梦网站模板沈阳线上教学
  • 品牌网站建设-建站之路深圳全网推互联科技有限公司
  • 深圳模板开发建站网络推广费用预算表
  • 济阳做网站如何网络推广新产品