手工木雕网站建设策划书,佛山免费建站怎样,安徽省住房建设工程信息网站,小程序制作十二、给出一个有效算法来解决 A x ⩽ b Ax⩽b Ax⩽b 的差分约束系统#xff0c;这里 b b b 的所有元素为实数#xff0c;而变量 x i x_i xi 中某个给定的子集是整数。如果要写代码#xff0c;请用go语言。
文心一言#xff1a;
差分约束系统问题通常用于解决带有约…十二、给出一个有效算法来解决 A x ⩽ b Ax⩽b Ax⩽b 的差分约束系统这里 b b b 的所有元素为实数而变量 x i x_i xi 中某个给定的子集是整数。如果要写代码请用go语言。
文心一言
差分约束系统问题通常用于解决带有约束条件的系统如 A x ⩽ b Ax \leqslant b Ax⩽b其中 A A A 是一个系数矩阵 b b b 是一个约束向量而 x x x 是我们要求解的变量向量。这些约束可以转换为图中的最短路径问题利用 Bellman-Ford 算法来求解。
以下是解决该问题的有效算法并使用 Go 语言实现
算法步骤 转换约束为边将每个不等式 a i j x j ⩽ b i a_{ij}x_j \leqslant b_i aijxj⩽bi 转换为图中的边 ( i , j ) (i, j) (i,j)其权重为 w i j b i / a i j w_{ij} b_i / a_{ij} wijbi/aij如果 a i j 0 a_{ij} 0 aij0。如果 a i j ⩽ 0 a_{ij} \leqslant 0 aij⩽0则需要根据具体情况调整例如将不等式转化为 x i ⩾ a i j x j − b i x_i \geqslant a_{ij}x_j - b_i xi⩾aijxj−bi从而边 ( j , i ) (j, i) (j,i) 的权重为 w j i − b i / a i j w_{ji} -b_i / a_{ij} wji−bi/aij。 添加超级源点引入一个超级源点 s s s从 s s s 到每个节点 i i i 添加一条权重为 0 的边以便可以处理所有节点的最短路径。 使用 Bellman-Ford 算法应用 Bellman-Ford 算法求解从超级源点 s s s 到所有其他节点的最短路径。如果存在负权环则问题无解即系统不存在满足所有约束的整数解。 判断整数解检查计算出的最短路径值是否均为整数。如果不是则问题在整数约束下无解。
Go 语言实现
package mainimport (fmtmath
)const (INF math.MaxInt32
)// BellmanFord 解决差分约束系统问题
func BellmanFord(n int, edges [][]int, weights [][]float64) ([]int, bool) {// 初始化距离数组dist[i] 表示从源点到 i 的最短距离dist : make([]int, n1)for i : range dist {dist[i] INF}dist[0] 0 // 源点到自身的距离为 0// Bellman-Ford 算法for i : 0; i n; i {for _, edge : range edges {u, v : edge[0], edge[1]w : float64(weights[u-1][v-1])if dist[u] ! INF dist[u]int(math.Round(w)) dist[v] {dist[v] dist[u] int(math.Round(w))}}}// 检查负权环for _, edge : range edges {u, v : edge[0], edge[1]w : float64(weights[u-1][v-1])if dist[u] ! INF dist[u]int(math.Round(w)) dist[v] {return nil, false // 存在负权环无解}}// 检查是否为整数解for _, d : range dist[1:] {if float64(d) ! math.Round(float64(d)) {return nil, false // 不是整数解}}return dist[1:], true // 返回从源点到各个节点的最短路径去掉源点自身
}func main() {// 示例假设 A 是一个 3x3 矩阵b 是一个长度为 3 的向量A : [][]float64{{1, -1, 0},{0, 1, 2},{-1, 0, 1},}b : []float64{4, 3, 2}n : len(b)edges : make([][]int, 0)weights : make([][]float64, n)for i : range weights {weights[i] make([]float64, n)}// 构建图和权重for i : 0; i n; i {for j : 0; j n; j {if A[i][j] 0 {edges append(edges, []int{i 1, j 1})weights[i][j] b[i] / A[i][j]} else if A[i][j] 0 {edges append(edges, []int{j 1, i 1})weights[j][i] -b[i] / A[i][j]}}}// 添加超级源点for i : 1; i n; i {edges append(edges, []int{0, i})weights[0][i-1] 0.0}// 调用 BellmanFord 算法result, ok : BellmanFord(n, edges, weights)if !ok {fmt.Println(无解)} else {fmt.Println(解:, result)}
}说明
矩阵和向量假设输入矩阵 A A A 和向量 b b b 已给出。边和权重根据 A A A 和 b b b 构建图的边和权重。超级源点引入超级源点并从该源点到每个节点添加一条权重为 0 的边。Bellman-Ford 算法实现 Bellman-Ford 算法求解最短路径并检查负权环。整数解检查确保所有最短路径值为整数。
请注意这只是一个示例实现可能需要根据具体情况进行调整。特别是对于包含浮点数除法的情况可能需要额外的处理来确保数值稳定性和准确性。 讯飞星火
解决差分约束系统 A x ≤ b Ax \leq b Ax≤b 的问题其中变量 x i x_i xi 中某个给定的子集是整数可以使用线性规划或整数规划的方法。这里我们使用 Go 语言实现一个简单的分支定界法Branch and Bound来解决这个问题。
首先我们需要定义数据结构来表示差分约束系统然后实现分支定界算法。
package mainimport (fmtmath
)// Constraint represents a single constraint in the form of Ax b
type Constraint struct {A []float64B float64
}// Node represents a node in the branch and bound tree
type Node struct {level intbound float64solution []float64
}// SolveDifferenceConstraints solves the difference constraint system using branch and bound
func SolveDifferenceConstraints(constraints []Constraint, integerVars []int) ([]float64, bool) {n : len(constraints[0].A) // Number of variablesroot : Node{level: 0,bound: math.Inf(1), // Positive infinitysolution: make([]float64, n),}var bestSolution []float64bestBound : math.Inf(1)queue : []*Node{root}for len(queue) 0 {node : queue[0]queue queue[1:]if node.level n {if node.bound bestBound {bestBound node.boundbestSolution make([]float64, n)copy(bestSolution, node.solution)}continue}if node.bound bestBound {continue}isInteger : falsefor _, i : range integerVars {if i node.level {isInteger truebreak}}if isInteger {// Integer variable caseleftChild : Node{level: node.level 1,bound: math.Inf(1),solution: make([]float64, n),}copy(leftChild.solution, node.solution)leftChild.solution[node.level] math.Floor(node.solution[node.level])rightChild : Node{level: node.level 1,bound: math.Inf(1),solution: make([]float64, n),}copy(rightChild.solution, node.solution)rightChild.solution[node.level] math.Ceil(node.solution[node.level])queue append(queue, leftChild, rightChild)} else {// Continuous variable casechild : Node{level: node.level 1,bound: math.Inf(1),solution: make([]float64, n),}copy(child.solution, node.solution)queue append(queue, child)}}return bestSolution, bestBound ! math.Inf(1)
}func main() {constraints : []Constraint{{A: []float64{1, -1}, B: 2},{A: []float64{-1, 1}, B: 0},}integerVars : []int{0} // x0 is an integer variablesolution, found : SolveDifferenceConstraints(constraints, integerVars)if found {fmt.Println(Solution found:, solution)} else {fmt.Println(No solution exists)}
}解释
数据结构Constraint 用于表示单个差分约束Node 用于表示分支定界树中的节点。SolveDifferenceConstraints这是主函数它实现了分支定界算法来解决差分约束系统。对于每个节点如果当前变量是整数变量则创建两个子节点分别代表向下取整和向上取整的情况否则创建一个子节点继续搜索。main示例代码展示了如何使用 SolveDifferenceConstraints 函数来解决一个具体的差分约束系统。
这个实现是一个基本的框架可以根据具体需求进行优化和扩展。
360智脑
解决带有整数变量的差分约束系统 ( Ax \leq b ) 可以通过混合整数线性规划 (MILP, Mixed Integer Linear Programming) 来实现。MILP 是一种优化问题其中一些变量被限制为整数。
算法步骤 定义问题 设 ( A ) 是一个 ( m \times n ) 的矩阵。( x ) 是一个 ( n )-维向量其中某些元素必须是整数。( b ) 是一个 ( m )-维向量其元素为实数。 使用MILP求解器 选择一个MILP求解器如GLPK、CPLEX、Gurobi等。将问题转换为标准形式并调用求解器。
Go语言实现
下面是一个使用 golang.org/x/sync/errgroup 和 github.com/optimization-tools/go-mip 库的示例代码。假设你已经安装了这些库。
package mainimport (fmtgithub.com/optimization-tools/go-mip
)func solveMILP(A [][]float64, b []float64, integerIndices []int) (*mip.Model, error) {// 创建一个新的MIP模型model : mip.NewModel()// 添加变量n : len(A[0])vars : make([]*mip.Var, n)for i : 0; i n; i {if contains(integerIndices, i) {// 整数变量vars[i] model.AddVar(0, mip.Infinity, 0, mip.Int)} else {// 连续变量vars[i] model.AddVar(0, mip.Infinity, 0, mip.Continuous)}}// 添加约束m : len(A)for i : 0; i m; i {expr : mip.NewLinExpr()for j : 0; j n; j {expr.AddTerm(A[i][j], vars[j])}model.AddConstr(expr, mip.LE, b[i])}// 设置目标函数这里假设没有目标函数只是求解可行性问题model.SetObjective(mip.NewLinExpr(), mip.Minimize)// 求解err : model.Optimize()if err ! nil {return nil, err}return model, nil
}func contains(slice []int, val int) bool {for _, item : range slice {if item val {return true}}return false
}func main() {// 示例数据A : [][]float64{{1, -1, 0},{0, 1, -1},{1, 0, -1},}b : []float64{1, 2, 3}integerIndices : []int{0, 2} // 假设第0和第2个变量是整数model, err : solveMILP(A, b, integerIndices)if err ! nil {fmt.Println(Error solving MILP:, err)return}// 输出结果fmt.Println(Solution:)for i, var_ : range model.Vars() {fmt.Printf(x[%d] %f\n, i, var_.X())}
}解释
创建MIP模型使用 mip.NewModel() 创建一个新的MIP模型。添加变量根据 integerIndices 判断哪些变量是整数哪些是连续变量并使用 model.AddVar 添加变量。添加约束遍历矩阵 A 和向量 b将每个约束添加到模型中。设置目标函数这里假设没有目标函数只是求解可行性问题。求解调用 model.Optimize() 求解模型。输出结果打印出每个变量的解。
注意事项
需要安装 github.com/optimization-tools/go-mip 库可以使用以下命令安装go get github.com/optimization-tools/go-mip如果需要更复杂的优化问题可以调整目标函数和约束条件。
这个示例展示了如何使用Go语言和MILP求解器来解决带有整数变量的差分约束系统。希望对你有帮助
智谱清言
差分约束系统是一类特殊的不等式系统它可以通过图论中的最短路径问题来解决。对于给定的差分约束系统 A x ≤ b Ax \leq b Ax≤b其中 A A A 是一个系数矩阵 x x x 是变量向量 b b b 是实数向量并且 x x x 中的某个子集必须是整数我们可以通过以下步骤来求解 构建图模型将每个变量 x i x_i xi 视为一个节点。对于每个不等式 a i j x j − x i ≤ b i a_{ij}x_j - x_i \leq b_i aijxj−xi≤bi从节点 j j j 到节点 i i i 建立一条边权重为 b i − a i j b_i - a_{ij} bi−aij。如果 a i j a_{ij} aij 是负数则从 i i i 到 j j j 建立边权重为 − b i − a i j -b_i - a_{ij} −bi−aij。 添加虚拟源点添加一个虚拟源点从该源点向所有其他节点建立边权重为 0。 求解最短路径使用单源最短路径算法如贝尔曼-福特算法来求解从虚拟源点出发到所有其他点的最短路径。 整数约束处理如果 x i x_i xi 必须是整数那么在图中对应节点的最短路径值需要向下取整或者向上取整取决于约束条件。 负权重循环检测如果在求解最短路径的过程中发现了负权重循环那么差分约束系统无解。 下面是用 Go 语言实现的一个简化版本只考虑整数约束并使用贝尔曼-福特算法 package main import ( “fmt” “math” ) // Edge represents an edge in the graph type Edge struct { from int to int weight int } // BellmanFord solves the single source shortest path problem func BellmanFord(edges []Edge, numVertices int, source int) ([]int, bool) { dist : make([]int, numVertices) for i : range dist { dist[i] math.MaxInt64 } dist[source] 0 for i : 0; i numVertices-1; i { for _, edge : range edges { if dist[edge.from] ! math.MaxInt64 dist[edge.from]edge.weight dist[edge.to] { dist[edge.to] dist[edge.from] edge.weight } } } // Check for negative-weight cycles for _, edge : range edges { if dist[edge.from] ! math.MaxInt64 dist[edge.from]edge.weight dist[edge.to] { return nil, false // Negative cycle detected } } return dist, true } func main() { // Example usage // A [[-1, 1], [1, 0], [0, -1]] // b [0, 3, 2] // x1, x2 are variables // x1 - x2 0 // x1 x2 3 // -x2 2 edges : []Edge{ {0, 1, 0}, // x1 - x2 0 x2 - x1 0 {1, 0, 3}, // x1 x2 3 -x1 - x2 -3 {2, 1, 2}, // -x2 2 x2 2 } numVariables : 3 source : 3 // Virtual source node dist, noNegativeCycle : BellmanFord(edges, numVariables1, source) if !noNegativeCycle { fmt.Println(“The system has no solution due to a negative-weight cycle.”) return } // Apply integer constraints for i : 0; i numVariables; i { dist[i] int(math.Floor(float64(dist[i]))) // Assuming down constraint } fmt.Println(“The solution is:”, dist[:numVariables]) } 在这个例子中我们假设了 numVariables 是变量数量并且 source 是虚拟源点的索引。dist 数组存储了从虚拟源点到每个节点的最短路径长度。注意这个代码示例没有实现整数约束的优化处理只是简单地使用了向下取整。在实际问题中可能需要更复杂的处理来满足整数约束。
天工 算法原理 差分约束系统可以转化为图论中的单源最短路径问题。对于每个约束条件(x_j - x_i\leqslant b_k)可以构建一条从节点(i)到节点(j)的有向边边的权值为(b_k)。如果要求变量(x_i)中的某个给定子集是整数可以在求最短路径的算法中进行特殊处理。这里我们可以使用Bellman - Ford算法它可以处理负权边并且能检测负权环。 Go语言实现示例 package mainimport (fmtmath
)// BellmanFord算法解决差分约束系统部分变量为整数
func BellmanFord(A [][]int, b []float64, integerVars []int) []float64 {n : len(A)dist : make([]float64, n)for i : range dist {dist[i] math.Inf(1)}dist[0] 0// 进行n - 1次松弛操作for i : 0; i n - 1; i {for j : 0; j len(A); j {for k : 0; k len(A[j]); k {if dist[A[j][k]] dist[j]b[j] {dist[A[j][k]] dist[j] b[j]}}}}// 检查负权环for j : 0; j len(A); j {for k : 0; k len(A[j]); k {if dist[A[j][k]] dist[j]b[j] {fmt.Println(存在负权环无解)return nil}}}// 处理整数变量for _, varIndex : range integerVars {dist[varIndex] math.Floor(dist[varIndex])}return dist
}你可以使用以下方式调用这个函数 func main() {// 这里只是一个简单示例实际使用时根据具体的A和b来定义A : [][]int{{1}, {0}}b : []float64{5, -3}integerVars : []int{0}result : BellmanFord(A, b, integerVars)if result! nil {fmt.Println(result)}
}在这个代码中BellmanFord函数首先初始化距离数组dist然后进行(n - 1)次松弛操作来更新最短路径距离。接着检查是否存在负权环如果存在则输出无解。最后如果有指定的整数变量将其距离值向下取整。
chatgpt
差分约束系统可以使用 Bellman-Ford 算法来求解特别是在处理有负权边的情况下。为了处理整数变量我们可以引入整数线性规划 (ILP) 的技术。这里提供一个基本的框架来解决差分约束系统 ( Ax \leq b ) 的问题同时处理整数约束。我们将使用 Go 语言进行实现。
首先我们需要解释一下算法的关键步骤
表述约束将约束表示为图中的边其中每个边具有权重。使用 Bellman-Ford 算法寻找最短路径并检测负环。处理整数变量如果有变量是整数的可以使用分支限界法或其他整数优化技术。
以下是使用 Go 语言实现的一个简单示例代码处理差分约束系统 ( Ax \leq b )。
package mainimport (fmtmath
)// Edge represents a directed edge in the graph with a weight.
type Edge struct {from, to, weight int
}// BellmanFord function to find shortest path in a graph with possible negative weights
func BellmanFord(edges []Edge, vertexCount, source int) ([]float64, error) {distances : make([]float64, vertexCount)for i : range distances {distances[i] math.MaxFloat64 // Initialize distances to infinity}distances[source] 0 // Distance to source is 0// Relax edges repeatedlyfor i : 0; i vertexCount-1; i {for _, edge : range edges {if distances[edge.from] ! math.MaxFloat64 distances[edge.from]float64(edge.weight) distances[edge.to] {distances[edge.to] distances[edge.from] float64(edge.weight)}}}// Check for negative-weight cyclesfor _, edge : range edges {if distances[edge.from] ! math.MaxFloat64 distances[edge.from]float64(edge.weight) distances[edge.to] {return nil, fmt.Errorf(negative weight cycle detected)}}return distances, nil
}// SolveDiffConstraintSystem solves Ax ≤ b using Bellman-Ford
func SolveDiffConstraintSystem(A [][]int, b []int) ([]int, error) {vertexCount : len(A)var edges []Edge// Create edges based on the constraintsfor i : 0; i vertexCount; i {for j : 0; j vertexCount; j {if A[i][j] ! 0 {edges append(edges, Edge{from: i, to: j, weight: -A[i][j]})}}}// Add edges for the inequalities b[i]for i : 0; i vertexCount; i {edges append(edges, Edge{from: i, to: vertexCount - 1, weight: b[i]})}distances, err : BellmanFord(edges, vertexCount1, vertexCount-1)if err ! nil {return nil, err}// The resulting distances can be adjusted for the integer constraintsreturn distances[:vertexCount], nil // Return the result excluding the last vertex
}func main() {A : [][]int{{0, 1, 1}, // x_1 - x_0 1{-1, 0, 2}, // x_2 - x_1 2{3, -1, 0}, // x_0 - x_2 3}b : []int{1, 2, 3}result, err : SolveDiffConstraintSystem(A, b)if err ! nil {fmt.Println(Error:, err)return}fmt.Println(Result:, result)
}代码解释
Edge 结构体用于表示图的边。BellmanFord实现了 Bellman-Ford 算法来寻找最短路径处理可能的负权重边。SolveDiffConstraintSystem构建图并调用 Bellman-Ford 算法来解决差分约束问题。main 函数定义了约束矩阵 ( A ) 和向量 ( b )并调用求解函数。
注意事项
该代码未处理整数约束需要根据实际情况进一步实现。这个实现仅是一个基础示例对于大型或复杂的差分约束系统可能需要使用更专业的 ILP 库例如 Gurobi 或其他库。
kimi
解决 (Ax \leq b) 的差分约束系统其中 (b) 的所有元素为实数而变量 (x_i) 中某个给定的子集是整数可以通过多种算法实现。这里我将介绍一种基于线性规划Linear Programming, LP的方法特别是使用分支定界Branch and Bound算法来处理整数变量的情况。这种方法适用于解决混合整数线性规划Mixed-Integer Linear Programming, MILP问题。
算法概述 线性规划松弛首先忽略整数约束将问题视为一个线性规划问题来解决。这可以通过使用单纯形法Simplex Method或其他LP求解器来完成。 分支如果线性规划的解包含非整数变量选择一个非整数变量进行分支。通常选择分数部分最大的变量。 定界对于选定的非整数变量创建两个子问题一个子问题中该变量被固定为小于或等于其整数部分另一个子问题中该变量被固定为大于或等于其下一个整数。这称为分支。 求解子问题对每个子问题重复步骤1和2直到所有变量都是整数或子问题无解。 剪枝如果某个子问题的解不满足原始约束或目标函数值超过已知的最佳解则可以剪枝即不再进一步探索该子问题。 最优解当所有变量都是整数时如果满足所有约束则该解是最优解。
Go语言实现
Go语言本身没有内置的线性规划求解器但可以使用第三方库如gonum中的mat包来构建和解决LP问题。对于MILP你可能需要使用外部求解器如CPLEX、Gurobi或COIN-OR等并通过Go语言调用它们。
以下是一个简化的Go语言代码框架展示如何设置问题并调用外部求解器假设使用CPLEX
package mainimport (fmtgonum.org/v1/gonum/mat
)func main() {// 定义矩阵A和向量bA : mat.NewDense(3, 3, []float64{1, 1, 1, 1, 2, 1, 1, 1, 3})b : []float64{10, 20, 30}// 定义变量的界限varLB : []float64{0, 0, 0} // 下界varUB : []float64{100, 100, 100} // 上界// 调用外部求解器这里只是示例实际需要调用CPLEX等solveLP(A, b, varLB, varUB)// 检查是否有非整数解并进行分支定界checkForIntegerSolution()
}func solveLP(A *mat.Dense, b, varLB, varUB []float64) {// 这里应该是调用LP求解器的代码// 例如使用CPLEX的Go接口fmt.Println(Solving LP...)
}func checkForIntegerSolution() {// 检查解是否为整数如果不是则进行分支fmt.Println(Checking for integer solution...)
}请注意这只是一个框架实际实现需要根据你选择的求解器进行调整。对于MILP问题你可能需要使用专门的MILP求解器并在Go中通过接口调用它们。这可能涉及到更复杂的设置包括设置变量类型连续或整数和处理求解器的输出。
混元
要解决一个包含整数变量的差分约束系统 (Ax \leq b)我们可以使用图论中的最短路径算法。具体来说我们可以将每个不等式 (a_{ij}x_j \leq a_{ii}x_i b_{ij}) 转换为一个有向边 ((j, i)) 的权重为 (b_{ij} / a_{ij})。然后我们可以使用Bellman-Ford算法或Dijkstra算法如果图中没有负权重边来找到从源点到所有其他点的最短路径。
以下是用Go语言实现的解决方案
package mainimport (fmtmath
)type Edge struct {to intweight float64
}func BellmanFord(edges [][]Edge, source int, n int) ([]float64, bool) {dist : make([]float64, n)for i : range dist {dist[i] math.Inf(1)}dist[source] 0for i : 0; i n-1; i {for u : 0; u n; u {for _, edge : range edges[u] {v : edge.toif dist[u]edge.weight dist[v] {dist[v] dist[u] edge.weight}}}}// Check for negative-weight cyclesfor u : 0; u n; u {for _, edge : range edges[u] {v : edge.toif dist[u]edge.weight dist[v] {return nil, false // Negative cycle detected}}}return dist, true
}func solveDifferentialConstraints(A [][]float64, b []float64, integerIndices []int) ([]float64, bool) {n : len(b)edges : make([][]Edge, n)for i : 0; i n; i {for j : 0; j n; j {if A[i][j] ! 0 {weight : b[i] / A[i][j]edges[j] append(edges[j], Edge{to: i, weight: weight})}}}// Add a source node connected to all integer variables with weight 0source : nedges append(edges, make([]Edge, n))for _, idx : range integerIndices {edges[source] append(edges[source], Edge{to: idx, weight: 0})}dist, ok : BellmanFord(edges, source, n1)if !ok {return nil, false // Negative cycle detected}result : make([]float64, n)for i : 0; i n; i {result[i] dist[i]}return result, true
}func main() {A : [][]float64{{0, 1, 0},{-1, 0, 1},{0, -1, 0},}b : []float64{3, 3, 0}integerIndices : []int{0}result, ok : solveDifferentialConstraints(A, b, integerIndices)if ok {fmt.Println(Solution:, result)} else {fmt.Println(No solution exists)}
}解释 数据结构: Edge 结构体表示图中的边包含目标节点 to 和权重 weight。edges 是一个二维切片表示图的邻接表。 Bellman-Ford算法: 初始化距离数组 dist将源点的距离设为0其他点的距离设为无穷大。进行 n-1 次松弛操作尝试更新每条边的目标节点的距离。检查是否存在负权重环如果存在则返回 false。 差分约束系统转换: 将每个不等式 (a_{ij}x_j \leq a_{ii}x_i b_{ij}) 转换为边 ((j, i)) 的权重为 (b_{ij} / a_{ij})。添加一个源节点连接到所有整数变量权重为0。 主函数: 定义矩阵 A 和向量 b以及整数变量的索引。调用 solveDifferentialConstraints 函数求解差分约束系统并输出结果。
这个算法可以处理包含整数变量的差分约束系统并且能够检测负权重环的情况。 文章转载自: http://www.morning.gbjxj.cn.gov.cn.gbjxj.cn http://www.morning.nqgds.cn.gov.cn.nqgds.cn http://www.morning.tpxgm.cn.gov.cn.tpxgm.cn http://www.morning.wqkfm.cn.gov.cn.wqkfm.cn http://www.morning.jfbrt.cn.gov.cn.jfbrt.cn http://www.morning.kmldm.cn.gov.cn.kmldm.cn http://www.morning.kmrgl.cn.gov.cn.kmrgl.cn http://www.morning.jjsxh.cn.gov.cn.jjsxh.cn http://www.morning.nnpfz.cn.gov.cn.nnpfz.cn http://www.morning.ydxwj.cn.gov.cn.ydxwj.cn http://www.morning.huxinzuche.cn.gov.cn.huxinzuche.cn http://www.morning.mmjqk.cn.gov.cn.mmjqk.cn http://www.morning.kflbf.cn.gov.cn.kflbf.cn http://www.morning.qgwpx.cn.gov.cn.qgwpx.cn http://www.morning.hnkkm.cn.gov.cn.hnkkm.cn http://www.morning.yxmcx.cn.gov.cn.yxmcx.cn http://www.morning.zmtrk.cn.gov.cn.zmtrk.cn http://www.morning.hbxnb.cn.gov.cn.hbxnb.cn http://www.morning.kwhrq.cn.gov.cn.kwhrq.cn http://www.morning.ppdr.cn.gov.cn.ppdr.cn http://www.morning.qyxnf.cn.gov.cn.qyxnf.cn http://www.morning.jbztm.cn.gov.cn.jbztm.cn http://www.morning.bpxmw.cn.gov.cn.bpxmw.cn http://www.morning.mpngp.cn.gov.cn.mpngp.cn http://www.morning.qrksj.cn.gov.cn.qrksj.cn http://www.morning.beiyishengxin.cn.gov.cn.beiyishengxin.cn http://www.morning.mxnfh.cn.gov.cn.mxnfh.cn http://www.morning.qxmys.cn.gov.cn.qxmys.cn http://www.morning.bhdtx.cn.gov.cn.bhdtx.cn http://www.morning.bwmq.cn.gov.cn.bwmq.cn http://www.morning.rknjx.cn.gov.cn.rknjx.cn http://www.morning.skdrp.cn.gov.cn.skdrp.cn http://www.morning.kxbry.cn.gov.cn.kxbry.cn http://www.morning.mftdq.cn.gov.cn.mftdq.cn http://www.morning.trwkz.cn.gov.cn.trwkz.cn http://www.morning.sflnx.cn.gov.cn.sflnx.cn http://www.morning.kwyq.cn.gov.cn.kwyq.cn http://www.morning.cgtrz.cn.gov.cn.cgtrz.cn http://www.morning.tnnfy.cn.gov.cn.tnnfy.cn http://www.morning.nrqnj.cn.gov.cn.nrqnj.cn http://www.morning.xjwtq.cn.gov.cn.xjwtq.cn http://www.morning.guofenmai.cn.gov.cn.guofenmai.cn http://www.morning.xtrnx.cn.gov.cn.xtrnx.cn http://www.morning.rhjhy.cn.gov.cn.rhjhy.cn http://www.morning.ybyln.cn.gov.cn.ybyln.cn http://www.morning.zdkzj.cn.gov.cn.zdkzj.cn http://www.morning.jpfpc.cn.gov.cn.jpfpc.cn http://www.morning.dkzwx.cn.gov.cn.dkzwx.cn http://www.morning.bsghk.cn.gov.cn.bsghk.cn http://www.morning.jmdpp.cn.gov.cn.jmdpp.cn http://www.morning.dyzbt.cn.gov.cn.dyzbt.cn http://www.morning.rrbhy.cn.gov.cn.rrbhy.cn http://www.morning.brmbm.cn.gov.cn.brmbm.cn http://www.morning.hwhnx.cn.gov.cn.hwhnx.cn http://www.morning.dppfh.cn.gov.cn.dppfh.cn http://www.morning.zcqbx.cn.gov.cn.zcqbx.cn http://www.morning.mgskc.cn.gov.cn.mgskc.cn http://www.morning.tdwjj.cn.gov.cn.tdwjj.cn http://www.morning.qpsxz.cn.gov.cn.qpsxz.cn http://www.morning.nwclg.cn.gov.cn.nwclg.cn http://www.morning.jbxmb.cn.gov.cn.jbxmb.cn http://www.morning.cwkcq.cn.gov.cn.cwkcq.cn http://www.morning.zlces.com.gov.cn.zlces.com http://www.morning.lnsnyc.com.gov.cn.lnsnyc.com http://www.morning.htfnz.cn.gov.cn.htfnz.cn http://www.morning.qxljc.cn.gov.cn.qxljc.cn http://www.morning.jydky.cn.gov.cn.jydky.cn http://www.morning.ssgqc.cn.gov.cn.ssgqc.cn http://www.morning.ktmpw.cn.gov.cn.ktmpw.cn http://www.morning.jlqn.cn.gov.cn.jlqn.cn http://www.morning.qmbtn.cn.gov.cn.qmbtn.cn http://www.morning.rnkq.cn.gov.cn.rnkq.cn http://www.morning.nlwrg.cn.gov.cn.nlwrg.cn http://www.morning.dkqr.cn.gov.cn.dkqr.cn http://www.morning.rgnq.cn.gov.cn.rgnq.cn http://www.morning.ktntj.cn.gov.cn.ktntj.cn http://www.morning.nkbfc.cn.gov.cn.nkbfc.cn http://www.morning.jsljr.cn.gov.cn.jsljr.cn http://www.morning.qzglh.cn.gov.cn.qzglh.cn http://www.morning.srbsr.cn.gov.cn.srbsr.cn