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

智能小程序开发哪家好网站关键词优化系统

智能小程序开发哪家好,网站关键词优化系统,自助建站在线快速建站,深圳沙头角网站建设负一、写在前面 本文针对Golang实现C版本可见另一册Github仓库 零、前置 一、基础算法 0. 内容概要 包括排序、二分、前缀和、差分、双指针、离散化、区间和 1. 排序 (1)快速排序 package mainimport "fmt"func QuickSort(arr []int, …

负一、写在前面

  • 本文针对Golang实现
  • C++版本可见另一册
  • Github仓库

零、前置

一、基础算法

0. 内容概要

包括排序、二分、前缀和、差分、双指针、离散化、区间和

1. 排序

(1)快速排序

package mainimport "fmt"func QuickSort(arr []int, l int, r int) {if l >= r {return}x, i, j := arr[(l+r)/2], l-1, r+1for i < j {for {i++if arr[i] >= x {break}}for {j--if arr[j] <= x {break}}if i < j {arr[i], arr[j] = arr[j], arr[i]}}QuickSort(arr, l, j)QuickSort(arr, j+1, r)
}func main() {var n intfmt.Scanln(&n)arr := make([]int, n+5)for i := 0; i < n; i++ {fmt.Scan(&arr[i])}QuickSort(arr, 0, n-1)for i := 0; i < n; i++ {fmt.Printf("%d ", arr[i])}
}

(2)归并排序

package mainimport "fmt"// https://www.acwing.com/problem/content/789/func MergeSort(arr []int, l int, r int) {if l >= r {return}mid := (l + r) / 2MergeSort(arr, l, mid)MergeSort(arr, mid+1, r)tmp := make([]int, r-l+1)i, j, k := l, mid+1, 0for i <= mid && j <= r {if arr[i] < arr[j] {tmp[k] = arr[i]k++i++} else {tmp[k] = arr[j]k++j++}}for i <= mid {tmp[k] = arr[i]k++i++}for j <= r {tmp[k] = arr[j]k++j++}k = 0for i := l; i <= r; i++ {arr[i] = tmp[k]k++}
}func main() {var n intfmt.Scanln(&n)arr := make([]int, n+5)for i := 0; i < n; i++ {fmt.Scan(&arr[i])}MergeSort(arr, 0, n-1)for i := 0; i < n; i++ {fmt.Printf("%d ", arr[i])}
}

2. 二分

(1)整数二分

package mainimport "fmt"// https://www.acwing.com/problem/content/791/
func main() {var n, q intfmt.Scanf("%d %d", &n, &q)arr := make([]int, n+5)for i := 0; i < n; i++ {fmt.Scan(&arr[i])}var x intfor q > 0 {fmt.Scanln(&x)l, r := 0, n-1for l < r {mid := (l + r) / 2if arr[mid] < x {l = mid + 1} else {r = mid}}q--if arr[l] != x {fmt.Println("-1 -1")continue}fmt.Print(l)l, r = 0, n-1for l < r {mid := (l + r + 1) / 2if arr[mid] > x {r = mid - 1} else {l = mid}}fmt.Printf(" %d\n", l)}
}

(2)浮点数二分

package mainimport "fmt"// https://www.acwing.com/problem/content/792/
func main() {var n float64fmt.Scanln(&n)l, r := -1000.00, 1000.00for r-l > 1e-7 {mid := (l + r) / 2if mid*mid*mid > n {r = mid} else {l = mid}}fmt.Printf("%.6f", l)
}

3. 前缀和

(1)一维前缀和

package mainimport "fmt"// https://www.acwing.com/problem/content/797/
func main() {var n, m intfmt.Scanf("%d %d", &n, &m)a := make([]int, n+5)sa := make([]int, n+5)for i := 1; i <= n; i++ {fmt.Scan(&a[i])sa[i] = sa[i-1] + a[i]}var l, r intfor m > 0 {fmt.Scanf("%d %d", &l, &r)fmt.Println(sa[r] - sa[l-1])m--}
}

(2)二维前缀和

package mainimport ("bufio""fmt""os"
)// https://www.acwing.com/problem/content/description/798/
func main() {in := bufio.NewReader(os.Stdin)out := bufio.NewWriter(os.Stdout)defer out.Flush()var n, m, q intfmt.Scanf("%d %d %d", &n, &m, &q)a := make([][]int, n+1)sa := make([][]int, n+1)for i := 0; i <= n; i++ {a[i] = make([]int, m+1)sa[i] = make([]int, m+1)}for i := 1; i <= n; i++ {for j := 1; j <= m; j++ {fmt.Fscan(in, &a[i][j])sa[i][j] = sa[i-1][j] + sa[i][j-1] - sa[i-1][j-1] + a[i][j]}}var x1, y1, x2, y2 intfor q > 0 {fmt.Fscan(in, &x1, &y1, &x2, &y2)fmt.Fprintln(out, sa[x2][y2]-sa[x2][y1-1]-sa[x1-1][y2]+sa[x1-1][y1-1])q--}
}

4. 差分

(1)一维差分

package mainimport ("bufio""fmt""os"
)// https://www.acwing.com/problem/content/799/func main() {in := bufio.NewReader(os.Stdin)//out := bufio.NewWriter(os.Stdout)var n, q intfmt.Scan(&n, &q)a := make([]int, n+5)sa := make([]int, n+5)for i := 1; i <= n; i++ {fmt.Fscan(in, &a[i])sa[i] += a[i]sa[i+1] -= a[i]}var l, r, c intfor q > 0 {fmt.Fscan(in, &l, &r, &c)sa[l] += csa[r+1] -= cq--}for i := 1; i <= n; i++ {sa[i] += sa[i-1]fmt.Printf("%d ", sa[i])}}

(2)二维差分

package mainimport ("bufio""fmt""os"
)// https://www.acwing.com/problem/content/description/800/
func insert(a [][]int, x1, y1, x2, y2, c int) {a[x1][y1] += ca[x2+1][y1] -= ca[x1][y2+1] -= ca[x2+1][y2+1] += c
}func main() {in := bufio.NewReader(os.Stdin)var n, m, q intfmt.Scan(&n, &m, &q)a := make([][]int, n+2)for i := 0; i <= n+1; i++ {a[i] = make([]int, m+2)}var x intfor i := 1; i <= n; i++ {for j := 1; j <= m; j++ {fmt.Fscan(in, &x)insert(a, i, j, i, j, x)}}var x1, y1, x2, y2 intfor q > 0 {fmt.Fscan(in, &x1, &y1, &x2, &y2, &x)insert(a, x1, y1, x2, y2, x)q--}for i := 1; i <= n; i++ {for j := 1; j <= m; j++ {a[i][j] += a[i-1][j] + a[i][j-1] - a[i-1][j-1]}}for i := 1; i <= n; i++ {for j := 1; j <= m; j++ {fmt.Printf("%d ", a[i][j])}fmt.Println()}}

5. 合并区间

package mainimport ("bufio""fmt""os""sort"
)//https://www.acwing.com/problem/content/description/805/type seg struct {l intr int
}func main() {in := bufio.NewReader(os.Stdin)out := bufio.NewWriter(os.Stdout)defer out.Flush()var n intfmt.Fscan(in, &n)a := make([]seg, n)for i := 0; i < n; i++ {fmt.Fscan(in, &a[i].l, &a[i].r)}sort.Slice(a,func(i, j int) bool {return a[i].l <= a[j].l})ans := 0st, ed := a[0].l, a[0].rfor i := 1; i < n; i++ {now := a[i]if ed < now.l {ans++st = now.led = now.r} else {st = stif ed < now.r {ed = now.r}}}fmt.Println(ans + 1)
}

二、数据结构

0. 内容概要

包括并查集、树状数组、线段树

三、搜索与图论

0. 内容概要

包括DFS、BFS、最短路、拓扑排序、最小生成树、LCA

四、数论

0. 内容概要

包括试除法、埃氏筛、gcd与lcm、快速幂与逆元、组合数

五、动态规划

0. 内容概要

包括背包问题、线性DP、区间DP、树形DP

http://www.dtcms.com/wzjs/483063.html

相关文章:

  • 企业网站备案怎么做磁力宝
  • 长寿网站建设公司我想注册一个网站怎么注册
  • 汽车保险网站网络市场营销
  • 山东济南做网站公司企业网站seo排名优化
  • wordpress怎么修改中文西安seo王
  • 做网站的用什么电脑好新手做seo怎么做
  • 百度可以做网站吗品牌建设
  • 广东省网站备案注销网站关键字优化公司
  • 西安代做毕业设计网站企业网站的基本功能
  • 做网站要学编程麽线上营销推广的公司
  • 做垃圾网站可行吗美食软文300范例
  • 套用别人产品图片做网站外贸网络推广
  • 免费个人网站模板下载360收录
  • 成都网站建设冠辰北京seo关键词排名优化
  • 电子商务网站建设与管理课程心得百度sem是什么意思
  • 受欢迎的网站建设平台自己搭建一个网站
  • 四川哪家网站推广做的好什么是指数基金
  • 做的网站如何全屏代码百度投诉电话人工服务总部
  • jsp网站开发简单代码seo销售
  • 顺德定制网站建设seoul怎么读
  • 休闲小零食网站开发方案网络营销主要做些什么工作
  • 共青团员建设网站百度小说搜索排行榜
  • 政府网站建设发展思路关键词优化推广公司排名
  • 网站seo排名优化软件深圳seo公司助力网络营销飞跃
  • 恩做网站动态页面好合肥seo排名扣费
  • 网站开发是用什么语言长沙市云网站建设
  • 企业网站 asp.net全网网站快速排名推广软件
  • 如何管理手机网站首页最新搜索关键词
  • 网页开发用什么编程语言专业搜索引擎seo服务商
  • 简述网站开发基本流程杭州搜索引擎优化公司