摘要: 前言 luogu 数据是真的水,我在 luogu 一遍交过的代码,loj 上又是 TLE 又是 WA。TLE 一下解决了,WA 改了我 $2$ 个小时,一直 $91$ 分。最后的结论是 hash 的自然溢出应当开 $\operatorname{unsigned long long}$,以前一直就只用 阅读全文
posted @ 2022-07-12 19:27 Epoch_L 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 原题链接 Title 一个字符串被复制加倍了一遍后,被插入一个字符,求原来的字符串。 Solution 由于被复制了一遍,还被加入了一个字符,所以最后的字符数量一定可以表示为 $2n+1$,即奇数。如果不是奇数,直接输出无解。 然后把字符串分为前后半段,令 $mid=n/2+1$。然后分别讨论插入字 阅读全文
posted @ 2022-07-11 18:02 Epoch_L 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 原题链接 跟这题差不了多少,改个方向数组的事 Code: #include<bits/stdc++.h> using namespace std; void read(int &x) { char ch=getchar(); int r=0,w=1; while(!isdigit(ch))w=ch= 阅读全文
posted @ 2022-07-06 11:40 Epoch_L 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 我们用 $a[i][j]$ 表示坐标 $(i,j)$ 最先在哪一时刻被撞击,分两种情况: 如果没有陨石撞击,我们将其赋上极值1001,因为 $0 \le T_i \le 1000$。 如果有陨石撞击,因为可能会有多次,我们取最小的时间。 所以,初始化坐标系代码如下: for(int 阅读全文
posted @ 2022-07-06 11:39 Epoch_L 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 本题一看就是一道裸的BFS,但是有一个大坑点 所有的x,y,n,m坐标都是反的!!! 所以把 $x$ 改成 $y$,把 $n$ 改成 $m$ 即可 Code: #include<bits/stdc++.h> using namespace std; const int N=150; 阅读全文
posted @ 2022-07-06 11:38 Epoch_L 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 二分枚举答案,然后用单调队列求最大值最小值即可 Code: #include<bits/stdc++.h> #define int long long using namespace std; void read(int &x) { char ch=getchar(); int r= 阅读全文
posted @ 2022-07-06 11:35 Epoch_L 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 观察数据范围,发现 $k$ 的值只为 $1$ 或 $-1$,所以每行填的数只能是 $1$ 或 $-1$,而 $-1$ 又可以直接改变当前乘积的符号,所以,在矩阵 $(n-1,m-1)$ 中,填 $1$ 或 $-1$ 均可,然后在最后一行和最后一列填上 $1$ 或 $-1$ 使其乘积等 阅读全文
posted @ 2022-07-06 11:34 Epoch_L 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 一道区间dp裸题,跟模板题石子合并差不多,但是这里是在玩2048,所以要一样才能合并,而且记录的是出现过的最大值,所以答案不一定是 $f[1][n]$,因为可能出现无法合并的情况。 转移方程: $$ f[i][j]=max(f[i][j],f[k+1][j]+1)(i \le k < 阅读全文
posted @ 2022-07-06 11:31 Epoch_L 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 设 $f[i][j]$ 表示对 $i$ 到 $j$ 的字串染色最少多少次,设字符串为 $c$,有 $3$ 种情况: 当 $i=j$ 时,也就是只有一个字符,染色一次就可以了。转移方程为 $f[i][i]=1(1 \le i \le n)$。 当 $i\not=j$ 且 $c[i]=c 阅读全文
posted @ 2022-07-06 11:29 Epoch_L 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 首先本题只从左边和右边取,所以剩下的必然是区间,妥妥的区间DP,直接设状态: $f[i][j][0]$ 表示第 $i$ 人从左边插入区间 $i+1,j$ $f[i][j][1]$ 表示第 $j$ 人从右边插入区间 $i,j-1$ 因为第 $i$ 个人从左边插入,根据题意,他就会小于前 阅读全文
posted @ 2022-07-06 11:26 Epoch_L 阅读(12) 评论(0) 推荐(0) 编辑