Describe a Monte Carlo algorithm for the Triangle Packing problem
Although I agree with Yuval, I'll try to get you started on the connection to their longest path approach. The goal is, given a graph $G$, to define a polynomial $P_G$ which is nonzero iff $G$ has $k$ disjoint triangles. If you could evaluate $P_G$ on an arbitrary point in the underlying field $\mathbb{F}$ in time $2^{3k}n^{O(1)}$ then Schwartz-Zippel gives you the desired result (assuming that the degree of $P_G$ is low enough compared to $|\mathbb{F}|)$.
Denote by $T$ the set of all length $3k$ vertex sequences $(v_1,...,v_{3k})$ such that for all $i$ satisfying $i=1\pmod 3$,  the triplet $(v_i,v_{i+1},v_{i+2})$ is a triangle in $G$. Now, it is not hard to see that if $\mathbb{F}$ has characteristic 2 then the following polynomial (over $|E|+3k|V|$ variables) is nonzero (i.e. has a nonzero coefficient) iff $G$ contains $k$ disjoint triangles:
$P_G(\pmb{x_e},\pmb{y_{(v,j)}})=\sum\limits_{(v_1,...,v_{3k})\in T}\sum\limits_{l\in S_{[3k]}}\prod\limits_{i\in[3k]}x_{(v_i,v_{i+1})}\prod\limits_{i\in[3k]} y_{i,l(i)}$
Where $S_n$ is the symmetric group. The hard part is evaluating $P_G$ without going over all possible sequences in $T$. The fact that we don't care about repetitions in sequences in $T$ will allow (after some considerable work in rewriting $P_G$) efficient dynamic programming to come into play. The rest pretty much follows the proof for the longest path case (after extending the sum to functions whose range is a subset of $[3k]$, the dynamic programming part would look a bit different, e.g. you would probably want to shorten the sequence by three elements at a time).