自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2019.11.12 接触ACM以来的一些感受

本来是在熬夜刷题的,在搜题解的时候看到了一个前ACMer的退役贴,借此想了很多很多其实对于ACM这个比赛,相对于很多NOIP选手,我的起步真的算很晚了,因为我的高中不重视信息奥赛,我也没有更多的途径去了解到这类比赛,直到大学才真正意义上的接触到了ACM这里还是非常感谢我的大一C语言老师姜老师,多亏了姜老师的一路引导,让我在编程语言学习的道路上少走了许多弯路,也是感谢姜老师让我提前了解到了有...

2019-11-12 03:18:33 1246 21

转载 c++中std::set自定义去重和排序函数

c++中的std::set,是基于红黑树的平衡二叉树的数据结构实现的一种容器,因为其中所包含的元素的值是唯一的,因此主要用于去重和排序。这篇文章的目的在于探讨和分享如何正确使用std::set实现去重和排序功能。方法一:使用std::set内置的less比较函数(直接定义内置类型的set对象)这种方法适用于:1)比较int、char等内置类型。2)只能针对某一个内置类型去重和排序:如果想通过id(int)去重,并通过hot(int)排序,该种方法就束手无策了。代码如下:#include <ios

2021-04-07 16:22:48 30 2

原创 更改Android Studio中AVD的默认路径

用了几天Android Studio,配置的时候明明是将SDK和JDK都放在了D盘,今天突然发现C盘容量少了很多,经过排查之后发现是因为AVD的默认路径仍然在C盘,且是以GB为单位在增长,在我电脑上的默认路径是这样的:(Falcon是我的用户名)C:\Users\Falcon\.android从网上找到了一种有效的解决办法,故在此记录一下,参考至:https://blog.csdn.net/kirikayakazu/article/details/78236985首先在D盘建立一个android

2021-02-21 10:37:48 1134 12

原创 Java GridBagConstraints的帮助类:GBC

一些API:int gridx, gridy:指定单元格的起始行和列。默认值为 0。int gridwidth, gridheight:指定单元格的行和列的范围。默认值为 1。double weightx, weighty:指定单元格扩大的容量。默认值为 0。int anchor:表示组件在单元格内的对其方式。可以选择的绝对位置包括:NORTHWESTNORTHNORTHEASTWESTCENTEREASTSOUTHWESTSOUTHSOUTHEA

2021-01-25 19:25:09 137 2

原创 Java中关于Arrays.sort的两种重载方法的理解

前言在java中重载排序方法的方法目前有两种,一种是实现Comparable接口的compareTo方法,还有一种是用比较器(comparator) 作为参数,其中比较器是实现了Comparator接口的类的实例类比于C++来看,重载排序方法实质上就是重载类的小于号,但是java标准中没有规定可以重载运算符,所以需要用接口实现这个过程同样是类比C++,上述的两种方法分别对应着重载小于号的函数作为成员函数和友元函数的区别,而其各自的优点分别是:覆盖compareTo函数:可以用于比较父子类之间的大小

2021-01-19 18:57:51 124

原创 2021.01.11 一些胡言乱语

不知道能有多少有缘人看到这篇文章负能量预警,真的超多的负能量,如果你也在不开心的话不建议继续阅读其实这篇博客十二月三十一号就想写来着,但是回想起那天:实验室电闸出问题导致我们那一排的电脑没电以及没有空调吹挨了一天冻 + 当天没有完成复习任务 + 晚上又被张老师熊了一顿,导致心情极差,不过跨年的时候还是有同学送来了新年祝福,算是一点小温暖吧,欢迎对号入座,谢谢你们!所谓物极必反,从新年的第一天开始慢慢就好起来了,尤其是前一天还莫名其妙出问题的电闸,第二天竟然自己就好了?颓废的时间真的消逝的特别快呀,距

2021-01-11 02:05:56 1101 22

原创 CodeForces - 1469D Ceil Divisions(构造+思维)

题目链接:点击查看题目大意:给出一个初始时 ai=ia_i=iai​=i 的序列,现在要求操作最多不超过 n+5n+5n+5 次,使得最终序列有 n−1n-1n−1 个 111 和 111 个 222,每次操作可以执行:ax=⌈axay⌉a_x = \left\lceil \frac{a_x}{a_y} \right\rceilax​=⌈ay​ax​​⌉题目分析:正解是辗转求根号,因为 nnn 的上限是 2e52e52e5,辗转求根号的话最多需要执行五次,对于每次 (n,n)(\sqrt{n},n)(

2020-12-29 10:56:57 255 4

原创 CodeForces - 724C Ray Tracing(扩展欧几里得解方程)

题目链接:点击查看题目大意:在 n∗mn*mn∗m 的矩阵中,从点 (0,0)(0,0)(0,0) 发射一个小球,以四十五度的方向出发,速度是 2\sqrt{2}2​,当碰到壁时,会进行反射;当碰到底角时,会被吸收。现在给出 kkk 次询问,每次询问需要回答点 (x,y)(x,y)(x,y) 是在什么时间第一次到达,如果无法到达输出 −1-1−1题目分析:模拟也是可以做的,同样也可以从数论的角度去思考考虑将矩形进行平面无限展开后,每一个点 (x,y)(x,y)(x,y) 都可以被表示为 (2∗n∗k1

2020-12-28 12:22:57 97

原创 牛客 - Pass Through With One Breath(中位数)

题目链接:点击查看题目大意:给出一个环,初始时每个数为 aia_iai​,现在可以对每个数执行加一或者减一的操作,问最少进行多少次操作可以使得整个环存在着一个起点,开始逐渐递增题目分析:因为 nnn 不算大,可以考虑枚举起点,当起点确定后,又因为每个位置的偏移量都是确定的,所以不难求出...

2020-12-26 18:22:59 47

原创 CodeForces - 897E Willem, Chtholly and Seniorious(珂朵莉树)

题目链接:点击查看题目大意:给出一个长度为 nnn 的数列,现在需要执行 mmm 次操作,每次操作分为下列四种情况:1 l r x1 \ l \ r \ x1 l r x:[l,r][l,r][l,r] 内的位置都加上 xxx2 l r x2 \ l \ r \ x2 l r x:[l,r][l,r][l,r] 内的数都变为 xxx3 l r x3

2020-12-26 12:51:28 63

原创 CodeForces - 236D Let‘s Play Osu!(概率dp)

题目链接:点击查看题目大意:给出一个长度为 nnn 的字符串,第 iii 个位置有 pip_ipi​ 的概率为 OOO,有 1−pi1-p_i1−pi​ 的概率为 XXX,本题的贡献指的是,连续 OOO 的个数的平方,问贡献的期望是多少题目分析:如果按照正常思路不难想到一个 n2n^2n2 的 dpdpdp,大概就是 dpi,jdp_{i,j}dpi,j​ 表示到了第 iii 个位置结束,选还是不选第 iii 个位置的期望,转移的话一层枚举位置,另一层枚举最后一个 OOO 的长度即可,不过很可惜这个题没

2020-12-25 22:30:02 46

原创 CodeForces - 830C Bamboo Partition(数学+推公式)

题目链接:点击查看题目大意:给出 nnn 个位置可以种竹子,每个位置的竹子的高度需要到达 aia_iai​,所有竹子每天都会长高一个单位高度,同样每个竹子可以在任意位置砍一次,砍过之后竹子将不再长高,现在需要每隔 ddd 天来砍一次竹子,问在保证砍下来的总高度小于等于 kkk 的前提下,ddd 的最大值是多少题目分析:首先不难看出,在 ddd 确定的前提下,所有竹子都应该长到 ddd 的一个整数倍,写成公式的形式如下:∑i=1n(d∗⌈aid⌉−ai)≤k⇒∑i=1n(d∗⌈aid⌉)≤k+∑i=1n

2020-12-25 17:06:17 38

原创 CodeForces - 1055C Lucky Days(数论)

题目链接:点击查看题目大意:给出两个人的幸运日期,问交集最大可以是多少,两个人幸运日期的形式如下:[l1,r1,t1][l_1,r_1,t_1][l1​,r1​,t1​]:[l1+kt1,r1+kt1][l_1+kt_1,r_1+kt_1][l1​+kt1​,r1​+kt1​] 是幸运日期,其余日期为不幸运日期[l2,r2,t2][l_2,r_2,t_2][l2​,r2​,t2​]:[l2+kt2,r2+kt2][l_2+kt_2,r_2+kt_2][l2​+kt2​,r2​+kt2​] 是幸运日期

2020-12-25 16:00:27 56 1

原创 CodeForces - 787D - Legacy(线段树优化建图+最短路)

题目链接:点击查看题目大意:给出 nnn 个点和 mmm 条边,现在需要求从 ststst 开始到所有点的最短路是多少,mmm 条边的给出方式如下:1 u v w1 \ u \ v \ w1 u v w:点 uuu 向点 vvv 连一条权值为 www 的边2 u l r w2 \ u \ l \ r \ w2 u l r w:点 uuu 向点 i∈[l,r]i

2020-12-24 17:48:31 79 3

原创 牛客 - 共鸣问题(贪心+思维)

题目链接:点击查看题目大意:给出 nnn 个点,每个点都有点权,再给出 mmm 个关系,以 (x,y,z)(x,y,z)(x,y,z) 的形式给出,规定如下:同时选择点 xxx 和点 yyy 将获得 zzz 的代价选择点 xxx 或点 yyy 将不获得代价同时不选择点 xxx 和点 yyy 将获得 −z-z−z 的代价问如何选择可以使得总代价最大题目分析:假设把上述情况三去掉就是一个最大权闭合子图的裸题了,导致想了半个小时的网络流解法,虽然明知道是错误的但却并没有什么新思路赛后看了题解发现

2020-12-23 21:20:23 1025 10

原创 2020ICPC(南京) - Just Another Game of Stones(吉司机线段树+博弈)

题目链接:点击查看题目大意:给出一个长度为 nnn 的数列 aaa,现在需要执行 mmm 次操作,每次操作分为两种类型:1 l r x1 \ l \ r \ x1 l r x:对于所有 i∈[l,r]i \in [l,r]i∈[l,r] 执行 ai=max(ai,x)a_i=max(a_i,x)ai​=max(ai​,x)2 l r x2 \ l \ r \ x2 l r x:对于

2020-12-23 16:42:12 223 4

原创 CodeForces - 1465E Poman Numbers(推公式+贪心)

题目链接:点击查看题目大意:给出一个长度为 nnn 的字符串,每个字符串实质上代表一个数字,例如:a=20,b=21,⋯,z=225a=2^0,b=2^1,\cdots,z=2^{25}a=20,b=21,⋯,z=225,现在需要寻找一种递归顺序,使得每个位置非负即正,递归规则如下:f(S)=−f(S[1,m])+f(S[m+1,∣S∣])f(S) = -f(S[1, m]) + f(S[m + 1, |S|])f(S)=−f(S[1,m])+f(S[m+1,∣S∣])其中 mmm 是 [l,r]

2020-12-22 22:36:31 129

原创 CodeForces - 1207F Remainder Problem(分块)

题目链接:点击查看题目大意:给出一个长度为 500000500000500000 的数组,初始时全部为 000,需要执行 nnn 次操作,每次操作分为两种类型:1 x y1 \ x \ y1 x y:ax+=ya_x+=yax​+=y2 x y2 \ x \ y2 x y:统计∑i∈R(x,y)ai\sum_{i \in R(x,y)}a_i∑i∈R(x,y)​ai​,其中 R(x,y)R(x,y)R(x,y) 是 [1

2020-12-22 21:48:43 46

原创 CodeForces - 1217F Forced Online Queries Problem(线段树分治+并查集撤销)

题目链接:点击查看题目大意:给出 nnn 个点,初始时互相不存在连边,需要执行 mmm 次操作,每次操作分为两种类型:1 x y1 \ x \ y1 x y:如果 (x,y)(x,y)(x,y) 之间没有连边,则增加连边;如果 (x,y)(x,y)(x,y) 之间存在连边,则删除连边2 x y2 \ x \ y2 x y:询问点 xxx 和点 yyy 之间是否联通询问需要强制在线题目分析:关于强制在线实现连边与加边

2020-12-22 14:06:20 45 1

原创 CodeForces - 916D Jamie and To-do List(主席树+模拟)

题目链接:点击查看题目大意:模拟实现 nnn 次操作,每次操作共有四种类型:set ai xiset \ a_i \ x_iset ai​ xi​:设置 aia_iai​ 的优先级为 xix_ixi​remove airemove \ a_iremove ai​:删除 aia_iai​query aiquery \ a_iquery ai​:查询有多少个事情的优先级小于 aia_iai​ 的优先级,如果 aia_iai

2020-12-21 22:37:04 42

原创 CodeForces - 484E Sign on Fence(主席树区间合并+二分)

题目链接:点击查看题目大意:给出一个长度为 nnn 的数列,需要回答 mmm 次询问,每次询问的格式如下:l r kl\ r\ kl r k,需要回答区间 [l,r][l,r][l,r] 内,所有长度为 kkk 的子区间中,最小值的最大值是多少,即在 [l,r][l,r][l,r] 中选择一段长度为 kkk 的子区间,使得其最小值最大题目分析:求最小值的最大值不难想到二分,所以现在问题转换为了对于询问l r kl\ r\ kl r&n

2020-12-21 17:46:21 46

原创 CodeForces - 504B Misha and Permutations Summation(线段树模拟康托展开与逆展开)

题目链接:点击查看题目大意:给出两个排列 ppp 和 qqq,现在要求输出其中,Prem(x)Prem(x)Prem(x) 是第 xxx 个排列,Ord(p)Ord(p)Ord(p) 是排列 ppp 是第 Ord(p)Ord(p)Ord(p) 个排列题目分析:线段树模拟康托展开参考:https://www.luogu.com.cn/blog/yummy-loves-114514/huoxingren当得出数组 aaa 和 bbb 后分别代表排列 ppp 和 qqq 的康拓展开表达式,虽然得到的是变进

2020-12-21 11:16:28 54 2

原创 CodeForces - 813E Army Creation(主席树+思维)

题目链接:点击查看题目大意:给出一个长度为 nnn 的数列和一个整数 kkk,现在有 qqq 次询问,每次询问给出一个区间 [l,r][l,r][l,r],设 cnticnt_icnti​ 为数字 iii 在区间内出现的次数,需要输出 ∑min(cnti,k)\sum min(cnt_i,k)∑min(cnti​,k),其中 iii 是区间内所有出现过的数字,所有询问强制在线题目分析:看到强制在线加上区间问题不难想到主席树,有个思维点必须要想到才行,一开始我想的是对于每个种类的数字维护一个前缀和,然后对

2020-12-20 22:00:16 68 2

原创 CodeForces - 1459C Row GCD(数论+推公式)

题目链接:点击查看题目大意:给出一个长度为 nnn 的数组 aaa,再给出一个长度为 mmm 的数组 bbb,现在要求输出,当 j=1,2,...,mj = 1,2,...,mj=1,2,...,m 时的答案:gcd(a1+bj,a2+bj,...,an+bj)gcd(a_1+b_j,a_2+b_j,...,a_n+b_j)gcd(a1​+bj​,a2​+bj​,...,an​+bj​)题目分析:一个公式 gcd(x,y)=gcd(x,x−y)gcd(x,y)=gcd(x,x-y)gcd(x,y)=gc

2020-12-20 13:54:01 132

原创 CodeForces - 1463E Plan of Lectures(拓扑排序+并查集缩点)

题目链接:点击查看题目大意:给出一棵有根树,树边都是有向边,再给出 kkk 个关系 (x,y)( x , y )(x,y),其意义是访问完点 xxx 后需要立即访问点 yyy,问是否存在一种合适的拓扑序题目分析:因为题目说明了 kkk 个关系实际上也是一种绑定关系,在访问点 xxx 后需要立即访问点 yyy,所以不妨直接将点 yyy 与点 xxx 合并在一起,更具体的说,可以将 xxx 和 yyy 进行缩点,然后对缩点后的图进行拓扑,稍微画一下样例的图就能明白了:剩下的注意一下细节直接实现就可以

2020-12-20 13:20:41 126

原创 CodeForces - 1459D Glass Half Spilled(dp)

题目链接:点击查看题目大意:给出 n 个水杯,每个水杯最大容量为 aia_iai​,每个水杯初始时有 bib_ibi​ 的水,两个水杯之间可以互相倒水,不过每次会损失一半水量,更具体的说,假设第 iii 个水杯向第 jjj 个水杯中倒 xxx 单位的水(xxx可以为任意实数),那么操作之后两个杯子中的水会变为:bi−x,bj+x2b_i-x,b_j+\frac{x}{2}bi​−x,bj​+2x​,现在可以执行任意次数的倒水操作。假设最终需要选则 kkk 个杯子,使得其水量之和尽量大,问最大可以是多少

2020-12-19 22:00:30 1592 8

原创 CodeForces - 628D Magic Numbers(数位dp)

题目链接:点击查看题目大意:首先规定一个不含前导零的数字如果满足:从最高位开始,偶数位置全为 ddd从最高位开始,奇数位置不能出现 ddd则称该数字为 d−magicd-magicd−magic 数字。现在给出一个区间 [l,r][ l , r ][l,r] ,问区间内有多少个可以整除 mmm 的 d−magicd-magicd−magic 数字,lll 和 rrr 同阶且 l,r∈[1,102000]l,r \in [ 1 , 10^{2000} ]l,r∈[1,102000]题目分析:数位

2020-12-19 17:06:46 59 1

原创 CodeForces - 1076D Edge Deletion(最短路+贪心/最短路树+bfs)

题目链接:点击查看题目大意:给出一张 n 个点 m 条边的带权无向图,设 d[i]d[ i ]d[i] 为从点 1 到点 i 的最短路,现在要求保留最多 k 条边,使得新图中 d′[i]=d[i]d'[ i ] = d[ i ]d′[i]=d[i] 的点尽量多题目分析:仍然是两种思路,比较简单的一种思路就是先用迪杰斯特拉求出最短路树,此时树上有 n - 1 条边,每选择一条边,就会使得满足d′[i]=d[i]d'[ i ] = d[ i ]d′[i]=d[i]的点加一,所以直接在最短路树上 dfs 或

2020-12-19 15:41:44 62 1

原创 CodeForces - 160D Edges in MST(思维+tarjan/树链剖分+线段树)

题目链接:点击查看题目大意:给出一张 n 个点 m 条边组成的带权无向图,现在对于每条边来说,确定一下其分类:一定是最小生成树上的边可能是最小生成树上的边一定不是最小生成树的边题目分析:两种思路,一种是比较好想,但是写起来比较麻烦,还有点卡常,另一种是需要一定的思维,相应的实现起来也是比较简单先说需要思维的方法,参考克鲁斯卡尔的实现方法,不难看出权值较大的边一定不可能有机会去替换掉权值较小的边,所以如果一条边可能出现在多个最小生成树上时,一定是可能会被其他同权值的边替换,所以在实现克鲁斯卡尔

2020-12-18 17:43:00 65 1

原创 CodeForces - 577B Modulo Sum(dp+bitset优化)

题目链接:点击查看题目大意:给出一个长度为 n 的数列,现在问能否选出一个子序列,满足其累加之和可以整除 m题目分析:可以当做背包去思考,dpi,jdp_{i,j}dpi,j​代表的是选了前 i 个数后是否可以组合出累加之和对 m 取余等于 j 的数,那么答案显然就是看一下 dpn,mdp_{n,m}dpn,m​ 是否为 1 即可不过时空复杂度都是 n * m 级别的,因为是 01 背包,所以可以将空间复杂度优化掉一维,到此为止分支出了两种做法:因为 dp 数组只有 0 或 1 两种状态,所以不难想

2020-12-18 16:05:42 1034 2

原创 CodeForces - 1102F Elongated Matrix(哈密顿路径+状压dp)

题目链接:点击查看题目大意:给出一个 n∗mn * mn∗m 的数字矩阵,现在可以对 行 进行重新排列,现在对排列后的矩阵按列展开成线性:s1,s2,…,snm=maze1,1,maze2,1,...mazen,1,maze2,1,...,mazen,ms_1, s_2, \dots, s_{nm}=maze_{1,1},maze_{2,1},...maze_{n,1},maze_{2,1},...,maze_{n,m}s1​,s2​,…,snm​=maze1,1​,maze2,1​,...mazen,1

2020-12-16 22:02:53 54 1

原创 CodeForces - 933A A Twisty Movement(dp)

题目链接:点击查看题目大意:给出一个长度为 n 的数列,只由 1 和 2 组成,现在允许反转一段区间,问反转后的不下降子序列最长是多少题目分析:因为 n 只有 2000,所以考虑n2n^2n2去枚举所有的子区间进行反转然后维护答案,不过我们需要预处理出两个dp数组备用:dp1[ l ][ r ][ st ][ ed ]:区间 [ l , r ] 中首项为 st,末项为 ed 时最长不下降子序列的长度dp2[ l ][ r ][ st ][ ed ]:意义同上,只不过是反转之后的答案在枚举子区间

2020-12-16 21:45:18 42

原创 2020ICPC(上海) - Walker(分类讨论+二分)

题目链接:点击查看题目大意:在长度为 n 的数轴上给出两个人的初始位置和速度,问使得每个位置至少被一个人走过的时间是多少题目分析:分类讨论题目,分四种情况讨论即可,初始时设 p1 < p2:p1 走完全程 p2 走完全程 p1 向右走,p2 向左走 p1 向左走,p2 向右走,最后共同走完 p1 ~ p2 这段区间前三种都可以推出公式快速得出,对于第四种需要二分确定答案,可以二分断点位置 x,这样问题就变成了:p1 走完 [ 0 , x ] 这段区间,p2 走完 [ x , n ]

2020-12-16 11:35:43 225

原创 CodeForces - 1272E Nearest Opposite Parity(多源起点的最短路)

题目链接:点击查看题目大意:给出 n 个点,每个点都有一个权值 a[ i ],且每个点可以到达 ( i - a[ i ]) 和 ( i + a[ i ] ) 两个位置,花费为 1,问每个点到达与其本身奇偶不同的点的最小花费是多少题目分析:看到网上那么多假算法的题解真的人傻了,写了个 spfa 恩说是 bfs ,不过这题好像真的没法卡掉 spfa,但也不能指鹿为马吧因为每个偶数权值的点的终点是奇数权值,同理每个奇数权值的点的终点是偶数权值,如此一来可以反向建边,按照奇偶分别跑一次多源起点的最短路.

2020-12-15 12:55:21 65

原创 2020ICPC(上海) - Sum of Log(数位dp)

题目链接:点击查看题目大意:给出X 和 Y,求题目分析:因为涉及到了位运算且看似可以递推,所以考虑数位dp,因为统计答案时的 i 和 j 的与为 0,所以 i + j = i & j,那么取 log 其实就是最高位,也就是 max( highbit_i , highbit_j )最简单的状态就是:dp[ pos ][ highbit_x ][ highbit_y ][ x <= X ][ y <= Y ],不过很可惜会 TLE因为我们到达终点后,我们只关心 max( ..

2020-12-14 15:37:45 1381 4

原创 CodeForces - 551C GukiZ hates Boxes(二分+贪心)

题目链接:点击查看题目大意:给出一个长度为 n 的数列 a,表示每个位置的障碍物数量,现在有 m 个学生可以来搬走障碍物,每一秒钟可以做出的行为如下:从位置 i 移动到位置 i + 1 从当前位置搬走一个障碍物问搬走所有的障碍物最少需要多长时间题目分析:不难看出时间越多,越有可能完成任务,所以可以二分时间然后贪心去check最初的思想是让学生从前向后去搬,发现不好处理,看了题解后发现可以让学生从后向前去搬具体思想如下,因为搬走所有的箱子所需要的时间是固定的,唯一不同的就是花费在路上的

2020-12-14 10:44:58 66

原创 CodeForces - 967D Resource Distribution(贪心+二分+构造)

题目链接:点击查看题目大意:给出 n 个机器,每个机器可以处理 a[ i ] 的工作,现在有两个工作需要处理,工作量分别为 x1 和 x2,可以将一个工作分配给 k 个机器同时完成,需要满足:k 个机器都需要满足 每个机器只能处理一个工作题目要求输出一种合适的构造方案,如果无解输出 No题目分析:首先预处理出 a[ i ] 和 b[ i ] ,分别代表将 x1 和 x2 分配给 i 个机器所需要的最低下限然后设题目中的 a[ i ] 为 c[ i ] (避免与上面的两个变量重名),代表

2020-12-13 21:55:17 52

原创 CodeForces - 1174D Ehab and the Expected XOR Problem(构造+思维+位运算)

题目链接:点击查看题目大意:给出一个 n,再给出一个 x,要求构造一个数列,满足该数列的所有子串的异或和都不等于 0 且都不等于 x,在满足上面的条件下尽可能长题目分析:因为这个题目最终的目标是需要让所有的“子串”的异或和都不等于某个值,因为是连续的,所以不难想到可以对于答案数组求一下前缀异或和,此时所有的“子串”都可以通过前缀异或和的任意两个数字表示出来,如 (a[ l ] xor a[ l + 1 ] xor ... xor a[ r - 1 ] xor a[ r ] )= sum[ r ]..

2020-12-10 22:26:03 40

原创 CodeForces - 364A Matrix(思维+数学)

题目链接:点击查看题目大意:给出一个长度为 n 的,只由十进制数字组成的字符串 s,可以构造出一个大小为 n * n 的矩阵,构造方法如下:b[ i ][ j ] = s[ i ] * s[ j ],现在问有多少个子矩阵的权值和等于 sum题目分析:虽然 n 比较小,但如果模拟出数组 b 然后再求二维前缀和的话就有点麻烦了,这个题的模型和昨天做的那个题差不多:CodeForces - 1425D上面的那个题是需要将完全平方和拆开,而这个题恰恰相反,是需要将完全平方和合起来,考虑一个区间内的权值和

2020-12-10 22:03:17 62

原创 CodeForces - 1425D Danger of Mad Snakes(容斥+组合数学)

题目链接:点击查看题目大意:初始时有一个二维平面, 平面上给出 n 条蛇,现在可以选择 m 条不同的蛇进行捕杀,当选择了某条蛇,其所在的坐标可以覆盖到的半径为 r 的范围内的蛇都会被捕杀,更确切的说,选择了位置 ( x , y ) 的蛇,那么 ( x - r , y - r ) ~ ( x + r , y + r ) 这个矩形内的蛇都会被捕杀,每条蛇都有自己的价值,每次捕杀的价值是(所有被捕杀的蛇的价值和)的平方,问所有方案的价值和是多少题目分析:比较巧妙的一道容斥题目,首先看到平方应该顺着去思考,

2020-12-09 22:05:12 872 8

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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