XSY 3327 思維 跑步

2021-09-03 07:10:37 字數 1368 閱讀 1444

題意

給你乙個nn的網格。

初始時,每個網格有乙個非負權值。有n次操作。

每次操作會將乙個網格的權值加1或減1。(權值操作後仍非負)

輸出當前每個網格到11的最長路(每步向上或向左)的總和。

n

⩽2000

n\leqslant 2000

n⩽2000

解法

這是一道好題!

我太菜了,做不出。

我們考慮維護dp值。

令f i,

jf_

fi,j

​表示到(i,j)的最長路。

再令差分陣列gi,

j=fi

−1,j

−fi,

j−

1g_=f_-f_

gi,j​=

fi−1

,j​−

fi,j

−1​考慮一次加1或減1造成的影響。

顯然,它會使每一行的乙個區間的dp值造成加1或減1的影響。

設這些區間為

\那麼我們有li⩽

li+1

,ri⩽

ri+1

l_i\leqslant l_,r_i\leqslant r_

li​⩽li

+1​,

ri​⩽

ri+1

​利用差分陣列我們可以在o(n

)o(n)

o(n)

的時間內求出所有l和r並且修改對應的差分陣列。

完結撒花!

#include#include#include#includeusing namespace std;

typedef long long ll;

ll ans=0;

int n;

#define maxn 2005

int a[maxn][maxn];

int dp[maxn][maxn],b[maxn][maxn];

int g[maxn][maxn];

inline void rd(int &x)

}inline void init()

}inline void modify(int x,int y,int sgn)

contain=r-l+1;

for(register int i=x+1;i<=n;++i)

if(l>r)break;

while(rcontain+=r-l+1;

} ans+=sgn*contain;

}char opt[5];

int main()

return 0;

}

3 3 2 TCP報頭結構

16位源埠 16位目的埠 32位序號 32位確認序號 4位 資料偏移 6位保留ur gack psur stsy nfin 16位視窗大小 16位校驗和 16位緊急指標 選項 資料 每個tcp都包含源埠號和目標埠號,加上ip頭中的源ip和目的ip,唯一確定乙個tcp連線。有時,乙個ip位址和乙個埠號...

編譯移植appweb 3 3 2

一 配置及編譯 1 修改環境變數 在終端輸入以下命令 export cc arm toolname gcc exportar arm toolname ar export ld arm toolname ld export nm arm toolname nm exportstrip arm too...

Python 33(2)程序理論

一 什麼是程序 程序指的是乙個正在進行 執行的程式,程序是用來描述程式執行過程的虛擬概念 程序vs程式 程式 一堆 程序 程式的執行的過程 程序的概念起源於作業系統,程序是作業系統罪核心的概念,作業系統其它所有的概念都是圍繞程序來的 作業系統理論 作業系統是什麼?作業系統是乙個協調 管理 控制計算機...