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

开发网站实时监控火车头wordpress 4.6

开发网站实时监控,火车头wordpress 4.6,网站建设 6万,滕州网站建设 助企网络文章目录 前言什么是前缀和算法1.【模板】前缀和1.1 题目要求1.2 做题思路1.3 Java代码实现 2. 【模板】二维前缀和2.1 题目要求2.2 做题思路2.3 Java代码实现 3. 寻找数组的中心下标3.1 题目要求3.2 做题思路3.3 Java代码实现 4. 除自身以外的数组的乘积4.1 题目要求4.2 做题思… 文章目录 前言什么是前缀和算法1.【模板】前缀和1.1 题目要求1.2 做题思路1.3 Java代码实现 2. 【模板】二维前缀和2.1 题目要求2.2 做题思路2.3 Java代码实现 3. 寻找数组的中心下标3.1 题目要求3.2 做题思路3.3 Java代码实现 4. 除自身以外的数组的乘积4.1 题目要求4.2 做题思路4.3 Java代码实现 5. 和为 k 的子数组5.1 题目要求5.2 做题思路5.3 Java代码实现 6.和可被 k 整除的子数组6.1 题目要求6.2 做题思路6.3 Java代码实现 7.连续数组7.1 题目要求7.2 做题思路7.3 Java代码实现 8.矩阵区域和8.1 题目要求8.3 做题思路8.3 Java代码实现 总结 前言 前缀和算法是一种常用的优化技术用于加速某些涉及连续子数组或子序列求和的问题。它基于一个简单但强大的思想通过提前计算并存储数组的前缀和以便在后续查询中可以快速获取任意区间的和。 在许多算法问题中我们需要频繁地查询子数组的和例如最大子数组和、连续子数组的平均值等。传统的方法是在每次查询时遍历数组并计算所需区间的和这样会导致时间复杂度较高。 而前缀和算法通过预处理数组计算出每个位置的前缀和并将其保存在一个额外的数组中。这样在查询时我们只需要简单地减去两个前缀和即可得到所需子数组的和从而将查询时间降低为O(1)的常数复杂度。 什么是前缀和算法 前缀和算法Prefix Sum Algorithm是一种用于高效计算数组前缀和的算法。前缀和是指数组中某个位置之前包括该位置所有元素的和。 前缀和算法的基本思想是通过一次遍历数组计算每个位置的前缀和并将其存储在一个新的数组中。然后可以通过查询新数组中的元素快速计算出任意子数组的和。 具体步骤如下 创建一个新的数组prefixSum长度与原数组相同。初始化prefixSum[0]为原数组的第一个元素。从原数组的第二个元素开始依次计算prefixSum[i] prefixSum[i-1] nums[i]其中nums为原数组。完成后prefixSum数组中的每个元素即为对应位置之前所有元素的和。 通过前缀和算法可以在O(1)的时间复杂度内计算出任意子数组的和。例如要计算原数组中从位置i到位置j的子数组和只需计算prefixSum[j] - prefixSum[i-1]即可。如果i为0则直接返回prefixSum[j]。 前缀和算法在解决一些与子数组和相关的问题时非常有用例如求解子数组和等于目标值的个数、求解最大子数组和、求解最长连续子数组和等。 1.【模板】前缀和 https://www.nowcoder.com/practice/acead2f4c28c401889915da98ecdc6bf?tpId230tqId2021480ru/exam/ojqru/ta/dynamic-programming/question-rankingsourceUrl%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D196 1.1 题目要求 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextInt()) { // 注意 while 处理多个 caseint a in.nextInt();int b in.nextInt();System.out.println(a b);}} }1.2 做题思路 按照暴力解法的思路每次查询 l 到 r 之间的和的时候就需要遍历一次数组那么这样的时间复杂度就是 O(q*n) 了因为进行了较多的重复计算导致时间效率较低那么是否有一种方法可以减少重复计算呢答案是有的这就是前缀和的思路其实有点类似于前面我为大家分享的滑动窗口中进窗口的操作每次进窗口更新数据的时候只需要用前面已经计算了的数字的和加上进窗口的那个数据就得到了当前位置之前所有元素的和。通过这样的思路就大大减少了重复计算。 然后这个求 l 到 r 之间元素的和的时候就只需要用 r 和 r 之前所有元素的和减去 l 之前所有元素的和就可以了。 并且仔细的人可能会发现为什么 l 和 r 都是从1开始而不是0呢因为从下标为0开始的话就需要求0 ~ -1 之间元素的和但是这个区间是不合法的所以数组从 1 开始就可以防止出现这种的情况。 在开始求 l 到 r 之间元素的和的时候可以先对数组进行一个预处理求出数组中每个位置之前的前缀和。 1.3 Java代码实现 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextInt()) { // 注意 while 处理多个 caseint n in.nextInt(),q in.nextInt();int[] arr new int[n 1];for(int i 1; i n; i) arr[i] in.nextInt();//创建一个同样大小的前缀和数组并且因为是多个元素的和//可能会超出int所能表示的最大范围这里用long来表示long[] dp new long[n 1]; for(int i 1; i n; i) {dp[i] dp[i-1] arr[i];}for(int i 0; i q; i) {int l in.nextInt(),r in.nextInt();System.out.println(dp[r] - dp[l-1]);}} } }2. 【模板】二维前缀和 https://www.nowcoder.com/practice/99eb8040d116414ea3296467ce81cbbc?tpId230tqId2023819ru/exam/ojqru/ta/dynamic-programming/question-rankingsourceUrl%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D196 2.1 题目要求 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextInt()) { // 注意 while 处理多个 caseint a in.nextInt();int b in.nextInt();System.out.println(a b);}} }2.2 做题思路 二维前缀和和一维前缀和的思路基本上相同的只是一个是一维数组一个是二维数组一些处理细节不同。 当求 dp[i][j] 的时候可以将 dp 数组分成 A、B、C、D 四个部分A 部分是从 00 位置开始到 i - 1j - 1 位置之间的矩阵元素的和。dp[i][j] A B C D 之间的元素的和但是这里 B 和 C 区间之间的元素不是很容易求和所以我们可以用 (A B) (A C) D - A 来求 dp[i][j] 的值。 然后(x1,y1) 到 (x2,y2)之间的矩阵的和我们可以使用 dp[x2][y2] - (A B) - (A C) A也就是 dp[x2][y2] - dp[x1-1][y2] - dp[x2][y1-1] dp[x1-1][y1-1]。 2.3 Java代码实现 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextInt()) { // 注意 while 处理多个 caseint n in.nextInt(),m in.nextInt(),q in.nextInt();int[][] arr new int[n 1][m 1];for(int i 1; i n; i) {for(int j 1; j m; j) {arr[i][j] in.nextInt();}}//构造二维前缀和数组long[][] dp new long[n 1][m 1];for(int i 1; i n; i) {for(int j 1; j m; j) {dp[i][j] dp[i - 1][j] dp[i][j - 1] arr[i][j] - dp[i - 1][j - 1];}}for(int i 0; i q; i) {int x1 in.nextInt(),y1 in.nextInt(),x2 in.nextInt(),y2 in.nextInt();System.out.println(dp[x2][y2] - dp[x1-1][y2] - dp[x2][y1-1] dp[x1 - 1][y1 - 1]);}}} }3. 寻找数组的中心下标 https://leetcode.cn/problems/find-pivot-index/description/ 3.1 题目要求 给你一个整数数组 nums 请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端那么左侧数之和视为 0 因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。 如果数组有多个中心下标应该返回 最靠近左边 的那一个。如果数组不存在中心下标返回 -1 。 示例 1 输入nums [1, 7, 3, 6, 5, 6] 输出3 解释 中心下标是 3 。 左侧数之和 sum nums[0] nums[1] nums[2] 1 7 3 11 右侧数之和 sum nums[4] nums[5] 5 6 11 二者相等。示例 2 输入nums [1, 2, 3] 输出-1 解释 数组中不存在满足此条件的中心下标。示例 3 输入nums [2, 1, -1] 输出0 解释 中心下标是 0 。 左侧数之和 sum 0 下标 0 左侧不存在元素 右侧数之和 sum nums[1] nums[2] 1 -1 0 。提示 1 nums.length 104-1000 nums[i] 1000 class Solution {public int pivotIndex(int[] nums) {} }3.2 做题思路 这个题目要求我们找到一个元素这个元素的左边所有元素的和等于该元素右边所有元素的和通过前面的两个题目我们做这道题目应该是会有一点思路的。 因为要求的是某一元素左边部分和前面部分的元素的和所以我们可以使用两个数组分别记录数组中每一个元素的前缀和以及后缀和前缀和数组从前往后插入数据后缀和数组从后往前插入数据并且前缀和的第一个数据为0后缀和的最后一个数据为0。最后再遍历一次数组判断数组某一位置的前缀和是否等于后缀和。 3.3 Java代码实现 class Solution {public int pivotIndex(int[] nums) {int n nums.length;int[] f new int[n]; //前缀和数组int[] g new int[n]; //后缀和数组for(int i 1; i n; i) {f[i] f[i-1] nums[i - 1];}for(int i n - 2; i 0; i--) {g[i] g[i 1] nums[i 1];}for(int i 0; i n; i) {if(f[i] g[i]) return i;}return -1;} }4. 除自身以外的数组的乘积 https://leetcode.cn/problems/product-of-array-except-self/ 4.1 题目要求 给你一个整数数组 nums返回 数组 answer 其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请不要使用除法且在 O(n) 时间复杂度内完成此题。 示例 1: 输入: nums [1,2,3,4] 输出: [24,12,8,6]示例 2: 输入: nums [-1,1,0,-3,3] 输出: [0,0,9,0,0]提示 2 nums.length 105-30 nums[i] 30保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内 class Solution {public int[] productExceptSelf(int[] nums) {} }4.2 做题思路 这个题目跟上面的 寻找数组的中心下标 思路基本上差不多只是判断前缀和和后缀和相等的操作换成了前缀积和后缀积的乘积这里我就不过多介绍了大家可以直接看代码。 4.3 Java代码实现 class Solution {public int[] productExceptSelf(int[] nums) {int n nums.length;int[] f new int[n];int[] g new int[n];//这里需要注意前缀积的第一个元素和后缀积的最后一个元素要初始化为1因为是乘法f[0] 1;g[n-1] 1;for(int i 1; i n; i) {f[i] f[i - 1] * nums[i - 1];}for(int i n-2; i 0; i--) {g[i] g[i 1] * nums[i 1];}int[] ret new int[n];for(int i 0; i n; i) {ret[i] f[i] * g[i];}return ret;} }5. 和为 k 的子数组 https://leetcode.cn/problems/subarray-sum-equals-k/description/ 5.1 题目要求 给你一个整数数组 nums 和一个整数 k 请你统计并返回 该数组中和为 k 的连续子数组的个数 。 示例 1 输入nums [1,1,1], k 2 输出2示例 2 输入nums [1,2,3], k 3 输出2提示 1 nums.length 2 * 104-1000 nums[i] 1000-107 k 107 class Solution {public int subarraySum(int[] nums, int k) {} }5.2 做题思路 还是先来看看暴力解法是怎样解决的遍历数组以数组的每一元素为起始位置然后看以该元素为起始位置的子数组是否和为 k 暴力解法的时间复杂度为 O(N*2)。 很多人看到这个题目首先想到的可能是 滑动窗口 但是我们需要仔细看题目使用滑动窗口需要保证窗口具有单调性这里题目没有说数组全为非负数或者非整数所以不能保证窗口的单调性不能使用滑动窗口。 换个思路它既然求的是和为 k 的子数组我们仍然可以使用前缀和的思想在数组的某个位置之前找到 该位置的前缀和 - k 该位置之前的某一位置的前缀和并且这个题目求的是 子数组的个数我们可以配合着哈希表来进行计数。哈希表中存储的是某一位置的前缀和以及该前缀和出现的次数。 与暴力解法的思路有些许的区别在构建前缀和数组的时候我们不以数组中每个元素作为起始位置而是将每个元素作为结束位置这样更贴合我们的前缀和思想。 5.3 Java代码实现 class Solution {public int subarraySum(int[] nums, int k) {MapInteger,Integer map new HashMap();//为了防止从0开始到某一位置的子数组的和为k所以提前放入一个前缀和为0的键值对map.put(0,1); int n nums.length;int ret 0,sum 0;for(int i 0; i n; i) {sum nums[i];ret map.getOrDefault(sum-k,0);map.put(sum,map.getOrDefault(sum,0) 1);}return ret;} }6.和可被 k 整除的子数组 https://leetcode.cn/problems/subarray-sums-divisible-by-k/description/ 6.1 题目要求 给定一个整数数组 nums 和一个整数 k 返回其中元素之和可被 k 整除的连续、非空 子数组 的数目。 子数组 是数组的 连续 部分。 示例 1 输入nums [4,5,0,-2,-3,1], k 5 输出7 解释 有 7 个子数组满足其元素之和可被 k 5 整除 [4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]示例 2: 输入: nums [5], k 9 输出: 0提示: 1 nums.length 3 * 104-104 nums[i] 1042 k 104 class Solution {public int subarraysDivByK(int[] nums, int k) {} }6.2 做题思路 在做这个题目之前我们需要知道两个额外的知识点 同余定理 如果 (a - b) % n 0 那么我们可以得到⼀个结论 a % n b % n 。⽤⽂字叙述就是如果两个数相减的差能被n整除那么这两个数对n取模的结果相同。 在c和Java中对负数取模的话结果会是一个负数所以需要修正负数取模的结果 (a % n n) % na为负数 当知道这两个定理之后那么这个题目的思路就跟上面的 和为 k 的子数组 思路是类似的。 6.3 Java代码实现 class Solution {public int subarraysDivByK(int[] nums, int k) {MapInteger,Integer map new HashMap();//同样为了防止从0开始到某一位置的子数组的乘积都能被k整除map.put(0 % k,1);int n nums.length;int sum 0,ret 0;for(int i 0; i n; i) {sum nums[i];int r (sum % k k) % k;ret map.getOrDefault(r,0);map.put(r,map.getOrDefault(r,0) 1);}return ret;} }7.连续数组 https://leetcode.cn/problems/contiguous-array/description/ 7.1 题目要求 给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组并返回该子数组的长度。 示例 1: 输入: nums [0,1] 输出: 2 说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。示例 2: 输入: nums [0,1,0] 输出: 2 说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。提示 1 nums.length 105nums[i] 不是 0 就是 1 class Solution {public int findMaxLength(int[] nums) {} }7.2 做题思路 因为数组中只有二进制数也就是0和1我们可以将0当成是-1当子数组中0和1的数量相同的时候子数组的和为0。所以这个题目也就相当于求长度最长的和为0的子数组。所以我们哈希表中存储的就是前缀和以及数组的下标。 7.3 Java代码实现 class Solution {public int findMaxLength(int[] nums) {MapInteger,Integer map new HashMap();map.put(0,-1);int n nums.length;int ret 0,sum 0;for(int i 0; i n; i) {sum (nums[i] 0 ? -1 : 1);if(map.containsKey(sum)) ret Math.max(ret,i-map.getOrDefault(sum,0));else map.put(sum,i);}return ret;} }8.矩阵区域和 https://leetcode.cn/problems/matrix-block-sum/description/ 8.1 题目要求 给你一个 m x n 的矩阵 mat 和一个整数 k 请你返回一个矩阵 answer 其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和 i - k r i k,j - k c j k 且(r, c) 在矩阵内。 示例 1 输入mat [[1,2,3],[4,5,6],[7,8,9]], k 1 输出[[12,21,16],[27,45,33],[24,39,28]]示例 2 输入mat [[1,2,3],[4,5,6],[7,8,9]], k 2 输出[[45,45,45],[45,45,45],[45,45,45]]提示 m mat.lengthn mat[i].length1 m, n, k 1001 mat[i][j] 100 class Solution {public int[][] matrixBlockSum(int[][] mat, int k) {} }8.3 做题思路 这个题目跟上面的【模板】二维前缀和是类似的只是这个题目需要我们找到对应的矩阵。 需要注意的是题目中的 r 和 c 都是从0开始的也就是说可能会出现数组越界的情况这道题题目的重点就是需要处理下标越界的情况。那么如何处理下标越界的情况呢很简单前面的不是有从下标1开始的吗当我们构建前缀和数组的时候我们也可以将数组下标以1开始然后在最终结果的数组中填入数据的时候注意下标的映射关系就行了。 8.3 Java代码实现 class Solution {public int[][] matrixBlockSum(int[][] mat, int k) {int n mat.length;int m mat[0].length;int[][] dp new int[n 1][m 1];for(int i 1; i n; i) {for(int j 1; j m; j) {dp[i][j] dp[i - 1][j] dp[i][j - 1] mat[i - 1][j - 1] - dp[i - 1][j - 1];}}int[][] ret new int[n][m];for(int i 0; i n; i) {for(int j 0; j m; j) {//处理下标越界问题并且解决了下标的映射关系int x1 Math.max(0,i-k) 1,y1 Math.max(0,j - k) 1;int x2 Math.min(n - 1,i k) 1,y2 Math.min(m - 1,j k) 1;ret[i][j] dp[x2][y2] - dp[x1 - 1][y2] - dp[x2][y1 - 1] dp[x1 - 1][y1 - 1];}}return ret;} }总结 通过前缀和算法我们可以在O(1)的时间复杂度内计算出任意区间的元素和。这在处理大规模数据时非常有用可以大大提高计算效率。 总结起来前缀和算法是一种高效计算数组区间和的方法。它通过计算数组的前缀和可以在O(1)的时间复杂度内得到任意区间的元素和。在实际应用中前缀和算法经常用于解决数组区间和相关的问题例如子数组的最大和、子数组的平均值等。通过掌握前缀和算法我们可以更加高效地解决这类问题。
文章转载自:
http://www.morning.fdhwh.cn.gov.cn.fdhwh.cn
http://www.morning.hphqy.cn.gov.cn.hphqy.cn
http://www.morning.ycwym.cn.gov.cn.ycwym.cn
http://www.morning.ddgl.com.cn.gov.cn.ddgl.com.cn
http://www.morning.ggxbyhk.cn.gov.cn.ggxbyhk.cn
http://www.morning.cpljq.cn.gov.cn.cpljq.cn
http://www.morning.yqndr.cn.gov.cn.yqndr.cn
http://www.morning.xjkr.cn.gov.cn.xjkr.cn
http://www.morning.bbtn.cn.gov.cn.bbtn.cn
http://www.morning.rlkgc.cn.gov.cn.rlkgc.cn
http://www.morning.lnsnyc.com.gov.cn.lnsnyc.com
http://www.morning.mrccd.cn.gov.cn.mrccd.cn
http://www.morning.pqppj.cn.gov.cn.pqppj.cn
http://www.morning.wrtsm.cn.gov.cn.wrtsm.cn
http://www.morning.fpzz1.cn.gov.cn.fpzz1.cn
http://www.morning.ljygq.cn.gov.cn.ljygq.cn
http://www.morning.qkqpy.cn.gov.cn.qkqpy.cn
http://www.morning.zrhhb.cn.gov.cn.zrhhb.cn
http://www.morning.prqdr.cn.gov.cn.prqdr.cn
http://www.morning.pltbd.cn.gov.cn.pltbd.cn
http://www.morning.fmry.cn.gov.cn.fmry.cn
http://www.morning.mfsjn.cn.gov.cn.mfsjn.cn
http://www.morning.wdlyt.cn.gov.cn.wdlyt.cn
http://www.morning.txfzt.cn.gov.cn.txfzt.cn
http://www.morning.ktskc.cn.gov.cn.ktskc.cn
http://www.morning.cmldr.cn.gov.cn.cmldr.cn
http://www.morning.ydgzj.cn.gov.cn.ydgzj.cn
http://www.morning.lzqnj.cn.gov.cn.lzqnj.cn
http://www.morning.vtbtje.cn.gov.cn.vtbtje.cn
http://www.morning.wmdqc.com.gov.cn.wmdqc.com
http://www.morning.kgslc.cn.gov.cn.kgslc.cn
http://www.morning.pqypt.cn.gov.cn.pqypt.cn
http://www.morning.xhhzn.cn.gov.cn.xhhzn.cn
http://www.morning.lhrwy.cn.gov.cn.lhrwy.cn
http://www.morning.jgcyn.cn.gov.cn.jgcyn.cn
http://www.morning.xctdn.cn.gov.cn.xctdn.cn
http://www.morning.xysxj.com.gov.cn.xysxj.com
http://www.morning.zmlnp.cn.gov.cn.zmlnp.cn
http://www.morning.qbjrf.cn.gov.cn.qbjrf.cn
http://www.morning.xkpjl.cn.gov.cn.xkpjl.cn
http://www.morning.nlysd.cn.gov.cn.nlysd.cn
http://www.morning.mrnnb.cn.gov.cn.mrnnb.cn
http://www.morning.xtqr.cn.gov.cn.xtqr.cn
http://www.morning.crsqs.cn.gov.cn.crsqs.cn
http://www.morning.lzwfg.cn.gov.cn.lzwfg.cn
http://www.morning.xnqwk.cn.gov.cn.xnqwk.cn
http://www.morning.dmcxh.cn.gov.cn.dmcxh.cn
http://www.morning.txtzr.cn.gov.cn.txtzr.cn
http://www.morning.mnwb.cn.gov.cn.mnwb.cn
http://www.morning.mxhgy.cn.gov.cn.mxhgy.cn
http://www.morning.pkggl.cn.gov.cn.pkggl.cn
http://www.morning.jbhhj.cn.gov.cn.jbhhj.cn
http://www.morning.rnzgf.cn.gov.cn.rnzgf.cn
http://www.morning.nmfwm.cn.gov.cn.nmfwm.cn
http://www.morning.rmqmc.cn.gov.cn.rmqmc.cn
http://www.morning.kjcll.cn.gov.cn.kjcll.cn
http://www.morning.wmdbn.cn.gov.cn.wmdbn.cn
http://www.morning.mlnbd.cn.gov.cn.mlnbd.cn
http://www.morning.fwcnx.cn.gov.cn.fwcnx.cn
http://www.morning.mspqw.cn.gov.cn.mspqw.cn
http://www.morning.supera.com.cn.gov.cn.supera.com.cn
http://www.morning.dyxlj.cn.gov.cn.dyxlj.cn
http://www.morning.fwkq.cn.gov.cn.fwkq.cn
http://www.morning.trqhd.cn.gov.cn.trqhd.cn
http://www.morning.hlkxb.cn.gov.cn.hlkxb.cn
http://www.morning.rpzth.cn.gov.cn.rpzth.cn
http://www.morning.rtsd.cn.gov.cn.rtsd.cn
http://www.morning.fppzc.cn.gov.cn.fppzc.cn
http://www.morning.tqygx.cn.gov.cn.tqygx.cn
http://www.morning.zdydj.cn.gov.cn.zdydj.cn
http://www.morning.xhftj.cn.gov.cn.xhftj.cn
http://www.morning.kbgzj.cn.gov.cn.kbgzj.cn
http://www.morning.srrrz.cn.gov.cn.srrrz.cn
http://www.morning.ljwyc.cn.gov.cn.ljwyc.cn
http://www.morning.nckzt.cn.gov.cn.nckzt.cn
http://www.morning.xhhqd.cn.gov.cn.xhhqd.cn
http://www.morning.hyxwh.cn.gov.cn.hyxwh.cn
http://www.morning.zxfdq.cn.gov.cn.zxfdq.cn
http://www.morning.xltdh.cn.gov.cn.xltdh.cn
http://www.morning.bsplf.cn.gov.cn.bsplf.cn
http://www.tj-hxxt.cn/news/256366.html

相关文章:

  • 昆山网站建设价格大型地方门户网站源码
  • 长春网站制作长春万网wordpress python 自动
  • 济南seo网站排名关键词优化中国公关公司排行榜
  • 响应式网站微博视频怎么建设一个外国网站
  • 电子商城 网站开发 支持手机端外贸网站建设推广优化
  • 做食物网站站外推广方式有哪些
  • 绿化公司网站建设asp网站密码
  • 自己做国外网站买衣服邯郸市搞网站服务务的吗
  • 网站上报名系统怎么做苏州网络推广建网站
  • wordpress商业网站在线制作图片纹身
  • 哈尔滨优质的建站销售价格delphi xe10网站开发
  • 濮阳市网站建设企业网络推广方法
  • 布吉网站建设哪家技术好网站建设专员一定要会网站建设吗
  • dedecms 旅游网站模板媒体网络推广价格优惠
  • 株洲网站建设的企业二级学院网站制度建设
  • 网站开发名片怎么做付公司制作网站费怎么做凭证
  • 那网站做问答品牌策划公司招聘
  • 沈阳建站多少钱凡科建站网址
  • 深圳做积分商城网站公司40个界面ui外包多少钱
  • 做网站499泰安肥城网站建设
  • 北流网站建设wordpress加一个字段
  • 淮安汽车网站制作适合女生的长久职业
  • 请问做卖东西网站怎么wordpress div layer
  • 网站开发中网页之间的链接形式seo的推广技巧
  • 大家都在哪些网站做宣传wordpress get tags
  • 电子商务网站开发的预期目标网站在百度搜索不到
  • 静态html网址网站导航源码wordpress获取文章图片
  • 机械类产品网站做优化网络营销项目策划方案
  • 关于网站备案的公告做联轴器的网站
  • 企石镇做网站做网站的优化价格