炸了。。
T1
其实算是一个矩阵乘法的板子题。是
A
A
A矩阵乘上一个
B
B
B矩阵,再
m
o
d
mod
mod一个值,最后和给出的
C
C
C矩阵比较。
普通的做是
n
3
n^3
n3的。但是我这题炸掉的根本原因是因为我没清空内存。
这个故事告诉我们,在赛场中不要用没学过的语法。
N
3
N^3
N3的矩阵乘法!↓
inline void Mul_Matrix(int p[N][N],int t[N][2],int res[N][2])
{
for(int i=1;i<N;++i) res[i][1]=0;
for(int i=1;i<=n;++i)
for(int j=1;j<=1;++j)
for(int k=1;k<=n;++k)
res[i][j]=(res[i][j]+(LL)p[i][k]*t[k][j]%mod)%mod;
}
T2
很毒瘤的一个DP。
原题。而且是刚考过的AGC。
20pts n <= 8 是暴力。主要是DFS搜出答案。
long long DFS(char State[]){
string pp = State + 1;
if(MAP[pp]) return 0;
MAP[pp] = 1;
LL Ans = 1;
for(int i = 1; i < n; i ++)
if(State[i] != State[i + 1]){
if(State[i] > State[i + 1]){
char c = State[i + 1];
State[i + 1] = State[i];
Res += DFS(State);
State[i + 1] = c;
}
else{
c = State[i];
State[i] = State[i + 1];
Res += DFS(State);
State[i] = c;
}
}
return Ans;
}
其实如果现在是80pts的话,成绩就应该挺好看的了。
唉
谁让我是fw呢
100pts的话。是一个究其复杂的DP。涉及到的是一个染色的问题。(暂时还没写出来)
T3
树形态是链的话,答案就是区间长度。
这个签到居然没拿到分,我真想给自己一巴掌。
n , m < = 100 n,m<=100 n,m<=100时候,是 N 2 N^2 N2暴力求 LCA。
正解是回滚莫队,显然不太可做,因为我甚至没有学过莫队。
T4
我考场上认为此题可做,但是就是没调出来。
我的思路是类似于树链剖分的东西,肯定要根据树边被经过次数排个小序。然后经过最多的点肯定就是要变成1的点。BFS一下。
怎么硕呢。我觉得这个结论太真了。但是就是在实现上有一些问题。
不过我这个做法最多只能得 20 20 20pts。
这个其他分是 t a r j a n tarjan tarjan和基环树。我基环树掌握的并不好,所以这题就不太可做了。
警醒
(·)一定要再训练训练搜索和打暴力的能力。
(·)不要用一些自己都没学过的东西。
(·)要细心更细心。最后10分钟一定要检查一下代码。
(·)多学不如学精。多开题不如把前面两道题能拿的分拿完。
TO-DO LIST
(·)莫队
(·)树论(LCA,虚树,各种操作等等等等吧)
(·)数学(纳尼?向量也是OI考纲里的??)
(·)训练代码能力(多做做模拟,多做做码农题)