細數一下這兩天做過的值得總結的一些題orz......
hdu 2571 簡單dp,但是一開始wa了一發。原因很簡單:沒有考慮仔細。
如果指向該點的所有點權值都為負數,那就錯了(我一開始預設初始值為0)
這是非常基礎的典型dag模型,好久不做,手明顯生了……
1 #include 23using
namespace
std;45
#define rep(i,n) for(int i(0); i < (n); ++i)
6#define rep(i,a,b) for(int i(a); i <= (b); ++i)
7#define dec(i,a,b) for(int i(a); i >= (b); --i)
8#define for_edge(i,x) for(int i = h[x]; i; i = x[i])910
#define ll long long
11#define ull unsigned long long
12#define mp make_pair
13#define pb push_back
14#define fi first
15#define se second
16#define inf 1 << 30
1718
const
int n = 100000 + 10;19
const
int m = 10000 + 10;20
const
int q = 1000 + 10;21
const
int a = 30 + 1;22
23int
f[a][q], c[a][q];
24int
t;25
intn, m;
2627
intmain()
4445 rep(i, 2, n) f[i][1] = c[i][1] + f[i - 1][1
];46 rep(i, 2, n) rep(j, 2
, m)
52//
rep(i, 1, n)
53 printf("
%d\n
", f[n][m]);54}
5556
5758
return0;
5960 }
還有就是記憶化搜尋,很裸的一道題。 hdu1579
題目也說了大資料時直接遞迴會超時,所以除了記憶化搜尋,別無選擇。
1 #include 23using
namespace
std;45
#define rep(i,n) for(int i(0); i < (n); ++i)
6#define rep(i,a,b) for(int i(a); i <= (b); ++i)
7#define dec(i,a,b) for(int i(a); i >= (b); --i)
8#define for_edge(i,x) for(int i = h[x]; i; i = x[i])910
#define ll long long
11#define ull unsigned long long
12#define mp make_pair
13#define pb push_back
14#define fi first
15#define se second
16#define inf 1 << 30
1718
const
int n = 100000 + 10;19
const
int m = 10000 + 10;20
const
int q = 1000 + 10;21
const
int a = 30 + 1;22
23int
f[a][a][a];
24int
x, y, z;
2526
int cal(int x, int y, int
z)33
3435
intmain()
4647
4849
50return0;
5152 }
還有一道並查集裸題……hdu1232
直接yy乙個就a了……
1 #include 23using
namespace
std;45
#define rep(i,n) for(int i(0); i < (n); ++i)
6#define rep(i,a,b) for(int i(a); i <= (b); ++i)
7#define dec(i,a,b) for(int i(a); i >= (b); --i)
8#define for_edge(i,x) for(int i = h[x]; i; i = x[i])910
#define ll long long
11#define ull unsigned long long
12#define mp make_pair
13#define pb push_back
14#define fi first
15#define se second
16#define inf 1 << 30
1718
const
int n = 100000 + 10;19
const
int m = 10000 + 10;20
const
int q = 1000 + 10;21
const
int a = 30 + 1;22
23int
f[n];
24int
n, m;
25int
x, y;
2627
int getfather(int x)
2829
intmain()
4344
int ans = 0
;45 rep(i, 1, n - 1) rep(j, i + 1
, n)
51if (ans >= n) break;52
}5354 printf("
%d\n
", ans);55}
5657
5859
return0;
6061 }
剩下的一些水題都不好意思拿出來……之後要加大難度了……
the end.
PAT乙級考試記錄做題感想
到今天已經刷了很多題了,愈加感覺到乙級的題目不是很難,但有的地方很細節,讀題目一定要仔細不然又是白費功夫,常常是某個極限條件未考慮導致錯誤實在可惜,且刷題時也 感覺語言的優越性,用c實在比不上python來的輕巧,不過 更加能體會題目用意,想想python的字典等在乙級題目上一用 就能很快過了,但c...
HDU 4352做題筆記
聽說是多校的題,難怪做自閉了 參考了網上各種題解終於大概懂了,這裡放幾個我參考的 i.ii.iii.首先本題要求l到r範圍內,在2進製下,lis長度為k的數的個數,於是想到數字dp,那麼怎麼處理lis呢,以及如何記錄狀態呢 首先看到l和r的大小,要求乙個數的lis,通常想法是把這個數存下來。但是由於...
c 行程長度編碼 題解與做題感想
時間限制 1 sec 記憶體限制 128 mb 在資料壓縮中,乙個常用的途徑是行程長度壓縮。對於乙個待壓縮的字串而言,我們可以依次記錄每個字元及重複的次數。這種壓縮,對於相鄰資料重複較多的情況比較有效。例如,如果待壓縮串為 aaabbbbcbb 則壓縮的結果是 a,3 b,4 c,1 b,2 當然,...