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