日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

work1

發布時間:2025/7/25 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 work1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考書選擇

我選擇的是 [代碼大全2英文版(完整清晰版)].chm

問題分析

對于一維的情況,經典的方式是使用前綴數組s[i]表示a[0]至a[i]的加和,區間最大和若是a[i]至a[j]則等價于s[j]-s[i-1]。以j結尾的區間的最大和必然等于s[j]減去j之前的s中的最小值,而這這個位置是單調遞增的。因此時間復雜度為O(n)。

那么我們進入二維的。

?

同理:

設s[x][y]為以坐標(0,0)為左上角,(x,y)為右下角的點所形成的的矩形的加和。以(a,b)(x,y)構成的矩形的值為,(s[x][y] - s[a-1][y])-(s[x][b-1] - s[a-1][b-1]),不具備一維時的單調性,只能通過在此枚舉一行。時間復雜度為O(m*n*n),無法達到最好的O(m*n)。

?

f = open("num.txt", "r")

a = []#數組

for line in f.readlines():

????? a.append(int(line))

n = len(a)

ss = 0

s = []#前綴數組

for i in range(0,n):

????? ss += a[i]

????? s.append(ss)

small = 65535

big = -65535

for i in range(0,n):

????? if s[i] < small:

?????????? small = s[i]

????? if s[i] - small > big:

?????????? big = s[i] - small

print big

?

x=raw_input("row number\n")

y=raw_input("line number\n")

f=open("num.txt","r")

num=[]

for i in range(0,int(x)):

??? for j in range(0,int(y)):

?? ?????l=f.readline()

??????? l=l.strip('\n').split(",")

??????? num.append(l)

temp=[0]*int(x)

s=0

a=-1000000

for i in range(0,int(y1)):

??? for j in range(i,int(y1)):

??????? for k in range(0,int(x)):

??????????? temp[k]+=int(num[j][k])

??????????? if(s+temp[k]<temp[k]):

??????????????? s=0

??????????? s+=temp[k]

??????????? if(a<s):

??????????????? a=s

??????? s=0

??? s=0

??? temp=[0]*int(x)

print a

?

代碼二,已測試過。

轉載于:https://www.cnblogs.com/yuzuka/p/3330260.html

總結

以上是生活随笔為你收集整理的work1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。