07 2022 档案

摘要:Problem 原题链接 Solution 首先我们考虑如果廊桥足够用我们应当怎样安排飞机,是不是每一次来一架飞机,我们就安排它到空闲的且编号最小的廊桥,这就可以保证廊桥使用率最高,这是可以用堆去搞的。 然后如果有了限制,我们假设远机位也是廊桥,那么就是按照上面分配方法来分,如果有 m 个廊桥, 阅读全文 »
posted @ 2022-07-28 23:24 Epoch_L 阅读(369) 评论(0) 推荐(0) 编辑
摘要:A-交换小球 Problem 给你 N 个球,从左到右,球的编号从 1N。 现在进行 Q 次操作。 每个操作给出一个数字 a,代表找到编号为 a 的球,如果这个球没在最后一个位置,则将其与它右边的球进行交换位置;否则与其左边的球交换位置。 请输出 Q 次操作后,球的 阅读全文 »
posted @ 2022-07-24 16:33 Epoch_L 阅读(24) 评论(0) 推荐(0) 编辑
摘要:原题链接 Problem 有一个全为 0 的数组,修改操作把区间 [l,r] 中每个元素反转(即 1001)。询问操作问数组第 x 位的值。 Solution 如果一个点被修改偶数次,那它的值就为 0,奇数次就是 1,这就很像异或,所以我们用一个区间 阅读全文 »
posted @ 2022-07-21 19:31 Epoch_L 阅读(50) 评论(0) 推荐(0) 编辑
摘要:原题链接 Problem 加入和查询 2 个操作,加入操作每次加入一个区间,询问操作询问一个区间与多少个区间有交。 Solution 考虑使用 2 个树状数组维护,一个 c 数组记左端点数,另一个 c1 数组记右端点数。当询问 [l,r] 区间时,在 [1,r] 找左端点数, 阅读全文 »
posted @ 2022-07-21 19:23 Epoch_L 阅读(63) 评论(0) 推荐(0) 编辑
摘要:原题链接 Problem 给出长度为 n 的序列 a 以及一个 k,让你求一个 x,使得满足 aixk 的数量最多。 1n,k,ai1×106 Solution 看到异或,我们就会想到 Trie 树,还有按位比较 阅读全文 »
posted @ 2022-07-16 15:27 Epoch_L 阅读(34) 评论(0) 推荐(0) 编辑
摘要:前言 luogu 数据是真的水,我在 luogu 一遍交过的代码,loj 上又是 TLE 又是 WA。TLE 一下解决了,WA 改了我 2 个小时,一直 91 分。最后的结论是 hash 的自然溢出应当开 unsignedlonglong,以前一直就只用 阅读全文 »
posted @ 2022-07-12 19:27 Epoch_L 阅读(21) 评论(0) 推荐(0) 编辑
摘要:原题链接 Title 一个字符串被复制加倍了一遍后,被插入一个字符,求原来的字符串。 Solution 由于被复制了一遍,还被加入了一个字符,所以最后的字符数量一定可以表示为 2n+1,即奇数。如果不是奇数,直接输出无解。 然后把字符串分为前后半段,令 mid=n/2+1。然后分别讨论插入字 阅读全文 »
posted @ 2022-07-11 18:02 Epoch_L 阅读(28) 评论(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 阅读(26) 评论(0) 推荐(0) 编辑
摘要:原题链接 题解 我们用 a[i][j] 表示坐标 (i,j) 最先在哪一时刻被撞击,分两种情况: 如果没有陨石撞击,我们将其赋上极值1001,因为 0Ti1000。 如果有陨石撞击,因为可能会有多次,我们取最小的时间。 所以,初始化坐标系代码如下: for(int 阅读全文 »
posted @ 2022-07-06 11:39 Epoch_L 阅读(18) 评论(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 阅读(21) 评论(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 阅读(15) 评论(0) 推荐(0) 编辑
摘要:原题链接 题解 观察数据范围,发现 k 的值只为 11,所以每行填的数只能是 11,而 1 又可以直接改变当前乘积的符号,所以,在矩阵 (n1,m1) 中,填 11 均可,然后在最后一行和最后一列填上 11 使其乘积等 阅读全文 »
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 阅读(14) 评论(0) 推荐(0) 编辑
摘要:原题链接 题解 设 f[i][j] 表示对 ij 的字串染色最少多少次,设字符串为 c,有 3 种情况: 当 i=j 时,也就是只有一个字符,染色一次就可以了。转移方程为 f[i][i]=1(1in)。 当 ij 且 $c[i]=c 阅读全文 »
posted @ 2022-07-06 11:29 Epoch_L 阅读(30) 评论(0) 推荐(0) 编辑
摘要:原题链接 题解 首先本题只从左边和右边取,所以剩下的必然是区间,妥妥的区间DP,直接设状态: f[i][j][0] 表示第 i 人从左边插入区间 i+1,j f[i][j][1] 表示第 j 人从右边插入区间 i,j1 因为第 i 个人从左边插入,根据题意,他就会小于前 阅读全文 »
posted @ 2022-07-06 11:26 Epoch_L 阅读(16) 评论(0) 推荐(0) 编辑
摘要:原题链接 题解 考点:带权并查集。 设 d[x] 表示 x 节点前面的战舰数量,s[x] 表示以 x 节点为首的那一列战舰的总数,合并操作如下: void add(int x,int y) { int a=find(x),b=find(y); fa[a]=b; d[a]=s[b]; 阅读全文 »
posted @ 2022-07-06 11:22 Epoch_L 阅读(43) 评论(0) 推荐(0) 编辑
摘要:原题链接 前言 蓝题祭。。。 题解 本题最大的难点就是判两个星系是否相似,根据数学知识,如果两个星系中的每个点之间的距离之和相等,则可以判断它们 similar。这样就简单了。 代码 1625B90 行。。。真的超长 Code: #include<bits/stdc++.h> usin 阅读全文 »
posted @ 2022-07-06 11:20 Epoch_L 阅读(138) 评论(0) 推荐(0) 编辑
摘要:原题链接 题解 考虑DP,我们设 f[i] 表示前 i 头奶牛所能取到的最大值,则在 (ik,i) 区间中必须有一头奶牛不取,假设它是 j,则 f[i]=max(f[j1]+s[i]s[j]) 其中 s 数组表示前缀和。 观察转移方程,发现 s[i]阅读全文 »
posted @ 2022-07-06 11:00 Epoch_L 阅读(14) 评论(0) 推荐(0) 编辑
摘要:原题链接 题解 设 f[i] 表示跳到 i 所能取到的最大价值,则我们需要取一个 j(j<i) 使 f[j]+sum[i]sum[j]i100 最大,其中 sum 数组表示前缀和,所以转移方程即为: $$ f[i]=\max(f[j]+sum[i]-sum[j]-i100) 阅读全文 »
posted @ 2022-07-06 10:57 Epoch_L 阅读(11) 评论(0) 推荐(0) 编辑
摘要:原题链接 序言 本题下面将给出 3 种做法,分别为: O(n3) 暴力算法。 O(n2) 费用提前计算,小优化。 O(nlogn) 斜率优化。 洛谷数据很水,O(n2) 就可以过,加强版的链接贴上 loj10186 题解 Part 1:暴力算法 设 f[i][j] 表示 阅读全文 »
posted @ 2022-07-06 10:56 Epoch_L 阅读(23) 评论(0) 推荐(0) 编辑
摘要:巨佬学长 zyf 写的一份高精。 使用方法:使用 bign 定义高精度,maxlen 代表最大位数,好像最大 20000,不然 MLE+TLE+RE+CE。 读入高精要在快读时处理。 namespace zyf{ struct bign{ static const int maxlen=200,wi 阅读全文 »
posted @ 2022-07-02 17:39 Epoch_L 阅读(142) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示