0x02 枚舉、模擬、遞推
阿新 • • 發佈:2018-05-13
-- ID 包含關系 條件 cli ring 而且 als tyvj
1、TYVJ1266(這站是不是已經倒閉了啊) USACO陳年老題,對於這種開關問題啊,最多只按一次,而且第一行隨便按完下面的就全確定了,類似的還有固定翻轉一個長度的區間,這個也是最多翻一次的而且翻的次數為n-L
2、POJ1958 四塔的漢諾塔問題。但是好像是弱化的二維DP遞推,馬馬虎虎吧
3、bzoj1218 陳年老題,二維前綴和+老古董套路容斥
4、POJ3263 有點意思的題,假如我做的話就會強行差分約束,但是我不能確定類spfa的做法能否滿足。正解是對於兩個個可以相互看到的點,當然先是看作一個約束條件,他們之間的點一定比他們要至少小1。那麽就是區間修改-1,用差分數組。(想到GDOI左老師的題,不定區間用差分轉化) 這題還有個小點要註意。
對於兩個約束區間,要麽是包含關系,要麽是不相交,否則矛盾。
細節還挺多
#include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> #include<map> using namespace std; map<int,bool>mp[11000]; int c[11000]; int main() {POJ3263int n,T_T,H,Q; scanf("%d%d%d%d",&n,&T_T,&H,&Q); while(Q--) { int l,r; scanf("%d%d",&l,&r); if(l>r)swap(l,r); l++,r--; if(r>=l&&mp[l][r]==false) { mp[l][r]=true; c[l]--;c[r+1]++; } } for(int i=1;i<=n;i++) c[i]+=c[i-1], printf("%d\n",H+c[i]); return 0; }
0x02 枚舉、模擬、遞推