自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 Hash & String 学习笔记

咕咕咕。

2024-06-07 16:59:51 471 1

原创 CF1553F Pairwise Modulo

【代码】CF1553F Pairwise Modulo。

2024-06-07 08:45:52 150

原创 P6397 [COI2008] GLASNICI

当人数增加的时候,由于每个人相互之间不会影响,所以前面的人向前移动传递消息,就可以看做把整个系列向前移动,对后续传递是不会又影响的。但通过观察样例2,不难发现,存在前一个信使往前移动,且后一个不动的情况下依然可以满足距离小于k的情况。此时,后一个信使就可以在满足距离小于k的条件下向后移动,这样可以缩小该信使与他的下一个之间的距离,一定不会更劣。换句话说,设 𝑖 号信使的的坐标为 𝑑𝑖​,则对于 1≤𝑖

2024-05-13 21:32:12 443 1

原创 P6883 [COCI2016-2017#3] Kroničan

Mislav 有 𝑁个玻璃杯,从 1∼𝑁 编号,每个玻璃杯中都有一定的水。你需要通过倒水(将某个杯子中的水倒入另一个杯子),使这些杯子中只有 𝐾 个有水。已知将第 𝑖号玻璃杯中的水倒入第 𝑗号,需要消耗 𝐶𝑖,𝑗的代价。Mislav 想知道,经过倒水后满足只有 𝐾个(或更少)玻璃杯中有水时,消耗的代价总和的最小值。

2024-05-13 13:50:46 359 1

原创 P6170 [USACO16FEB] Circular Barn G

一定为0(感性理解一下),并且任意一个点到起点的总个数应该小于等于当前已经经过的位置数(否则多余的牛一定会对起点前的位置产生影响)。现在 FJ 有 n 头奶牛,他的目标是让每个房间恰好有一头奶牛。然而不幸的是,现在奶牛们随意呆在某个房间里,第 i 个房间里有。于是,现在的问题就在于怎么求起点(起点的定义为以该点出发,最后在不回到该点的情况下,可以完成交换)。设a,b间距离为x, b,c间距离为y。,每个房间都有通往与其相邻的左右房间的门,还有一扇门通往外面。有一个比较明显的贪心,设a,b,c为3个位置,

2024-04-12 16:21:09 340 2

原创 Codeforces Round 530 (Div. 2)

注意如果雪球的重量变成一个非正数,我们认为雪球仍然是存在的,并且依然在向下滚动。同时在滚动的路线上有 2 块石头,第 i 块石头的高度为 hi​,即雪球会在 hi​ 的位置碰到第 i 块雪球。树上原本每个节点都有一个非负权值 ai​,记 si​ 表示从 i 号节点到根节点的路径上所有点的权值和,包括根节点及其本身。由图不难发现,将下一个正方形拼在上和左都已拼的后面一定最优,且尽量拼成大正方形一定最优,(面积相同,求周长最小),证明略。深度为偶数的节点的 si​ 为 −1,表示该节点的 si​ 未知。

2024-02-21 12:30:20 1218

原创 Codeforces Global Round 6

能被 10 整除的数末尾一定是0,所以原数中一定存在0 能被 2 整除的数末尾一定是偶数,所以原数中一定存在偶数(0,2,4,6,8) 能被 3 整除的数各数位上的和一定为3的倍数。现实中,我们只关心自己借出去了多少钱,拿回来了多少钱,至于这些钱是谁给的,其实并不重要,在这道题里面也一样。

2024-02-19 15:18:46 957

原创 Lowbit 运算

用来取一个二进制最低位的一与后边的0组成的数(即为能被概数整除的最大非负整数次幂)

2024-02-08 21:37:37 251

原创 CF1891B Deja Vu

给你一个长度为 n 的数组 a,接下来依次进行 q 次修改,第 i 次会给你一个数 x,你需要将 a 中所有是的倍数的数加上,最后输出这个序列。共有 t 组数据。

2024-02-08 21:26:46 515

原创 POJ 1160 Post Office

而g[1][5](建在3)=(a[5]-a[3])+(a[4]-a[3])+(a[3]-a[2])+(a[3]-a[1]) =a[5]+a[4]-a[2]-a[1]用 f [i][j]表示从1到j个村庄建立第i个邮局时的最优解,则有f[i][j]=min(f[i][j],f[k][j-1]+g[k+1][i])[j]);一个村庄和里面的邮局有相同的位置。g[1][4](建在2或者3)=(a[4]-a[3])+(a[3]-a[2])+(a[3]-a[1]) =a[4]+a[3]-a[2]-a[1]

2024-01-31 20:52:30 1398

原创 P1663 山

然后,我们来思考如何进行check,要想被照到,那么该点一定在线上或者线的上面,因为是直线,且两点的坐标知道,那么解析式也能求出来,于是点与线的关系也可以求出来。当 k > 0 时,可以确定灯所在区间的右端点(再右就在线下了)当 k = 0 时,若当前线高度低于(或等于)灯高,则无影响。对于每条线,当 k < 0 时,可以确定灯所在区间的左端点(再左就在线下了)给出最小的 y 坐标,如图的 - 号处就是 y 坐标最小的安装灯的地方。不难发现y越大,越易满足“使得这座山的任何一个部位都能够被看到”的条件(

2024-01-25 09:28:00 406

原创 CF1878E Iva & Pav

因为是 &,所以当前位上只要有一个0就为0,不难发现,l相同时,r越小越易满足大于k的条件 那么可以二分 r,然后进行check。看到位运算,很多人应该会想到拆位,于是我们可以用num[i][j]来表示第i个数的第j位是0还是1, 然后对每一位进行前缀求和。我们定义 f(l,r)(1≤l≤r≤n) 表示 al​&al+1​&…&ar−1​&ar​ 的结果。请你找到最大的 r 使得f(l,r)≥k。前缀和的用途就是可以快速求出 [ l , r ] 中1是否连续 若连续,则对k的贡献为。

2024-01-24 15:55:46 473 1

原创 CF1873E Building an Aquarium

我们发现,当h越小时,所需的水越少;当h越大时,所需的水越多;h大小与所需水量的关系满足单调性,故可以使用二分。每次二分时,设mid代入,进行check,满足则表示h可以取到更大,继续二分。对于第 i 格,需要向其注水 h−ai​ 个单位的水,如果 a[i] ​>h,则不用注水。你需要修一个水池,水池的底部高低不一,第 i 格高 a [i] ​。水可以有剩余,但不能少,少了就无法修建高度为 h 的水池。你一共有 x 个单位的水,问 h 最大能是多少。

2024-01-24 15:13:46 364 1

原创 CF1614C Divan and bitwise operations

已知一个含n个元素的序列,m个限制,l,r,x 表示 a[l] or a[l+1] or ...or a[r-1] or a[r] 求一种合法序列每个子集的异或和的和,保证至少存在一种合法序列,保证序列中每个数至少被一个限制覆盖,若有多个合法序列,则输出任意一种的答案即可,有多组数据。由于题目保证每个 a[i] 至少被一个限制条件所覆盖,所以只要某一个二进制位所有 a[i] 值均为 0,那么所有 x 在此位上也均为 0。显然首先我们每一位能取 1 就取 1 是一定满足条件的。

2024-01-22 11:07:17 568

原创 P6659 [POI 2019] Najmniejsza wspólna wielokrotność

有z组数据,每组数据 给定一个整数 M,求一个区间 [a,b] 使得 M 为这个区间所有数的最小公倍数。对于 100% 的数据,如有多组解: 输出a最小的。如果还有多组解输出b最小的。

2024-01-18 16:48:46 514 1

原创 CF706E Working routine

每个任务,会获得六个正整数x1,y1,x2,y2,h,w,x1,y1 代表了第一个矩阵 左上角的行列位置(即在第x1 行第y1 列);最后,输出n行m个数,表示完成q次交换后的矩阵。通过分析可以发现,在一个矩阵中,除了边框(第一行,第一列,最后一行,最后一列)以外的位置,上下左右的元素是不发生变化的,所以可以通过链表维护,只改变边框对元素进行维护。这里我们来分析一下原因。,主程序没法保证没法确保(x1,y1)在若干次交换后还是b[x1][y1],所以需要查找(x1,y1)时应该从头通过链表寻找。

2024-01-17 14:29:53 612

原创 CF1446C Xor Tree

④当要处理倒数第二层以上的点时,就必须要让两棵子树的其中一棵只保留一个数字。(因为 TrieTrie 树中一个子树内任意两个数的异或值一定比一个子树内的数与一个子树外的数异或值小。所以没删除前一定是 TrieTrie 树中如下图所示的点所表示的数会连边,不难发现他们是不连通的。⑤ 所以为了让这棵子树内的树与另一棵子树上的树连边,只能令这棵子树只留下它一个数。为了让它跟优,所以取个数较大的子树的个数和另一个子树中的一个作为答案。异或值最小的数(越低位不同,对异或值的影响越小)⑥ 爆搜(干就完了)

2024-01-16 15:11:38 479 1

原创 P5514 [MtOI2019] 永夜的报应(洛谷)

你需要将这些数分成若干组,满足 n 个数中的每一个数都恰好被分到了一个组中,且每一组至少包含一个数。因为 a^b<=a+b(可将异或理解为相加不进位),所以讲所有数异或起来一定最优。请求出一种分组方案,使得分出的所有组数的权值之和最小,输出权值之和的最小值。定义一组数的权值为该组内所有数的。

2024-01-12 09:17:36 416 1

原创 P2695 骑士的工作

每个人都可以砍掉一个大小不超过 z 的头,需要 z 个金币,求最小花费。看完题目,很明显的贪心思路,用第一个大于等于头大小且没用过的,一定最优。所以,可将头大小与所需金币数分别排序,枚举即可。

2024-01-12 08:54:10 391 1

原创 CF1178D Prime Graph

手玩时容易发现将两个不相邻且度为2的结点相连,边数增加1,点度数变为3,任为素数。④ 每个点的度都是素数 (0,1不是素数)① 图是简单无向图(即没有重边和自环)注意:图可以不连通,给出任意一张符合上述要求的图即可。将相邻两点相连(n与1连)可满足每个点度为二,且连了n条边。而且素数之间差距不大,不用担心把所有度为2的结点连完的情况。② 点的编号为1~n。因为0,1不是素数,所以每个点最小的度为2。给出n个点,求一个图。

2024-01-11 15:14:58 341 1

原创 CF1178C Tiles

③所以只有图形的第一行与第一列能发生变化,且在一边确定的情况下有2种情况。① 我们知道一个格子只有4种状态:左上黑,右上黑,左下黑和右下黑。②通过手算,不难发现:当一个格子的左侧和上侧确定时,该格子唯一确定。

2024-01-11 14:50:03 361 1

原创 CF1178B WOW Factor

给定一个只含“v”和"o"字符串s(长度最大为106106) 求字符串中有多少个wow(一个“w”即为连续的两个“v”)② 题中说一个“w”即为连续的两个“v” --> 若当前位置位i,当且仅当是s[i]=s[i-1]='v'是可组成w。① wow中只有一个‘o’,故可以通过枚举+乘法原理(左边w个数*右边w个数)得出wow总数。故可以通过前缀和维护当前位置以前w个数。如 vvvovvv中存在4个wow。③当前位置右侧w个数同理。

2024-01-11 14:37:10 322 1

原创 CF1178D Prime Graph

②由题中“Alice的政党所拥有的选票必须至少是联盟中任意其他政党的两倍”,可知能被选的条件是票数小于等于。③对于Alice原本就拥有的票数已经满足条件的,可以直接进行特判。① 由题,选的更多更易满足 “联盟的总票数必须严格大于总票数的一半”的要求。她的政党获得的票数必须大于联盟中任意一个政党获得的票数。Alice的政党所拥有的选票。由此,可通过枚举选择。一道挺简单的题,模拟题意即可。

2024-01-11 14:14:43 347 1

原创 P1392 取数

在一个 n 行 m 列的数阵中,你须在每一行取一个数(共 n 个数),并将它们相加得到一个和。对于给定的数阵,请你输出和前 k 小的取数方法。先对一二两行进行处理,取前k小的数,再与下一行运算 用优先队列实现。

2024-01-09 22:21:45 420

原创 P1007 独木桥

L-A(min)+1 -->最左到最右 A(max) -->最右到最左]故最大值为 max(L-A(min)+1,A(max))①对于最小值,很容易想到每个人都往最近的一遍走,一定最优,且不会想撞。L-A(min)+1 是会计算出 1。③应对L=0,n=0的情况进行特判(否则#1WA)

2024-01-09 08:21:59 188

原创 CF1203F2 Complete the Projects (hard version)

用贪心决定顺序,对于b[i]>=0的部分直接取,对b[i]

2024-01-08 19:21:25 465

原创 P8736 [蓝桥杯 2020 国 B] 游园安排

②由题,题目中的字符串比较方式与字符串的直接比较相同。③综上,可将题目化简为求字符串的最长上升子序列。①通过简单的字符串处理,将名字存储到数组中。

2024-01-08 18:16:44 351

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除