題意
給你乙個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程式 程式 一堆 程序 程式的執行的過程 程序的概念起源於作業系統,程序是作業系統罪核心的概念,作業系統其它所有的概念都是圍繞程序來的 作業系統理論 作業系統是什麼?作業系統是乙個協調 管理 控制計算機...