自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CodeForces - 1459D - Glass Half Spilled

Glass Half Spilled题意在编号为 111 的桌子上有 nnn 个玻璃杯,第 iii 个杯子可以容纳最多 aia_iai​ 单位水,当前包含 bib_ibi​ 单位水。选择 kkk 个玻璃杯,并尽可能多地收集水。为了达到这个效果,你可以把水从一个玻璃杯倒到另一个玻璃杯,想倒多少次就倒多少次 然而,每次你试图转移任何数量的水时,都会有一半的水洒在地板上。对于每个 k=1、2、3、…nk=1、2、3、\dots nk=1、2、3、…n,确定在零次或多次在玻璃杯之间转移水后,任意选择的k个玻璃

2021-01-30 16:50:08 3034

原创 CodeForces - 1469C - Building a Fence (思维)

Building a Fence题意用 nnn 个宽度为 111 高度为 kkk 的木板构建一段栅栏 第 iii 个木板下面的地面高度等于 hih_ihi​ 第一个和最后一个木板必须在地面上 其他的木板 底端 可能位于地面或者不高于地面 k−1k - 1k−1的高度上 相邻的两个木板必须有公共边 也即有重合的部分 问有没有可能建造一个符合所有规则的围栏思路设 lll rrr 分别为当前栅栏下端的最小高度和最大高度 因为每段栅栏高度都为 kkk 可知 下一段栅栏底边高度的范围为 [l−k+1,r+k

2021-01-30 16:32:12 3233

原创 Educational Codeforces Round 103 D - Journey (思维 + 前后缀)

Journey题意一条链上分布有 0~n 个点,每一个点中间有一条单向边连接,并用字母 ‘L’ 和 ‘R’表示若为 L 说明该边方向向左,若为 R 说明该边方向向右你可以在任意一点开始移动,并且每移动一步,上述边的方向改变一次要求求出每一个点能够到达的最多点数(若一个点被多次走到,那么仅算一次)思路当某一点左边或者右边出现 RLRLRL 交替时 可以一直走下去 并且可以原路返回只需要求出当前点左边和右边 RLRLRL 或者 LRLRLR 交替出现的次数即可 (顺序不重要)即if (s[i

2021-01-30 16:24:08 3074 1

原创 Educational Codeforces Round 103 C - Longest Simple Cycle (思维 + 贪心)

Longest Simple Cycle题意有 nnn 条链,第 iii 条链上有 c[i]c[i]c[i] 个点,a[i]a[i]a[i] 为第 iii 条链的顶点与第 i−1i-1i−1 条链的连接点,b[i]b[i]b[i] 为第i条链的最后一个点与第 i−1i-1i−1 条链的连接点。找这样的一个环,环上的每个点都只被访问一次,问该环的最大长度为多少。思路反向遍历 c[i]c[i]c[i]设 res1res1res1 和 res2res2res2res1res1res1 表示 每条链

2021-01-30 14:39:53 2925

原创 CodeForces - 1465D.Grime Zoo (贪心+思维)

Grime Zoo题意给出一个包含 0 1 ?0 \ 1 \ ?0 1 ? 的序列 每个子序列 010101会增加xxx点愤怒值,每个子序列101010会增加yyy点愤怒值用 0 10 \ 10 1代替所有的 ??? 使得最终的愤怒值最小思路先用 111 代替所有的 ??? 求出每个位置前缀和后缀中 1 0 ?1 \ 0 \ ?1 0 ? 的数量 计算得到当前愤怒值 $re如果 x<yx

2021-01-29 13:50:48 3034

原创 CodeForces - 1459C Row GCD (思维+数学)

Row GCD题意对于两个正整数序列 a!、a2、a3、…ana_!、a_2、a_3、 \dots a_na!​、a2​、a3​、…an​ 和 b1、b2、b3…bmb_1、b_2、b_3 \dots b_mb1​、b2​、b3​…bm​ 对于每个 j=1、2、…jj = 1、2、\dots jj=1、2、…j 找到 a1+bj、a2+bj+a3+bj、…an+bja_1 + b_j、a_2+b_j + a_3+b_j、\dots a_n+b_ja1​+bj​、a2​+bj​+a3​+bj​、…an​+

2021-01-27 22:05:38 2843

原创 AcWing 125. 耍杂技的牛 (推公式)

AcWing 125. 耍杂技的牛农民约翰的N头奶牛(编号为1..N1..N1..N)计划逃跑并加入马戏团,为此它们决定练习表演杂技。奶牛们不是非常有创意,只提出了一个杂技表演:叠罗汉,表演时,奶牛们站在彼此的身上,形成一个高高的垂直堆叠。奶牛们正在试图找到自己在这个堆叠中应该所处的位置顺序。这N头奶牛中的每一头都有着自己的重量wiw_{i}wi​以及自己的强壮程度sis_{i}si​一头牛支撑不住的可能性取决于它头上所有牛的总重量(不包括它自己)减去它的身体强壮程度的值,现在称该数值为风险值,

2021-01-27 02:02:13 3087

原创 AcWing 104. 货仓选址 (绝对值不等式)

AcWing 104. 货仓选址在一条数轴上有 NNN 家商店,它们的坐标分别为 Ai−ANA_{i}-A_{N}Ai​−AN​。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。输入格式第一行输入整数NNN.第二行NNN个整数Ai−ANA_{i}-A_{N}Ai​−AN​。输出格式输出一个整数,表示距离之和的最小值。数据范围1≤N≤1000001 \leq N \leq 1000001≤N≤1

2021-01-27 02:01:01 2800

原创 AcWing 913. 排队打水 (排序不等式)

AcWing 913. 排队打水有 nnn 个人排队到 111 个水龙头处打水,第 iii 个人装满水桶所需的时间是 tit_{i}ti​,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小?输入格式第一行包含整数 nnn。第二行包含 nnn 个整数,其中第 iii 个整数表示第 iii 个人装满水桶所花费的时间 tit_{i}ti​输出格式输出一个整数,表示最小的等待时间之和。数据范围1≤n≤1051 \leq n \leq 10^{5}1≤n≤1051≤ti≤1041 \leq

2021-01-27 01:59:34 2849

原创 AcWing 907. 区间覆盖 (区间贪心)

AcWing 907. 区间覆盖给定NNN个闭区间[ai,bi][ai,bi][ai,bi]以及一个线段区间[s,t][s,t][s,t],请你选择尽量少的区间,将指定线段区间完全覆盖。输出最少区间数,如果无法完全覆盖则输出−1-1−1。输入格式第一行包含两个整数sss和ttt,表示给定线段区间的两个端点。第二行包含整数NNN,表示给定区间数。接下来N行,每行包含两个整数ai,biai,biai,bi,表示一个区间的两个端点。输出格式输出一个整数,表示所需最少区间数。如果无解,则输出-1。

2021-01-27 01:58:07 2945

原创 一些奇怪的数论知识

gcd(a1,a2...,an)gcd(a_{1},a_{2}...,a_{n})gcd(a1​,a2​...,an​) ====== gcd(a1,a2−a1...,an−an−1)gcd(a_{1},a_{2}-a_{1}...,a_{n}-a{n-1})gcd(a1​,a2​−a1​...,an​−an−1)

2021-01-27 01:30:03 2683

原创 AcWing 906. 区间分组 (区间贪心问题)

AcWing 906. 区间分组给定NNN个闭区间[ai,bi][ai,bi][ai,bi],请你将这些区间分成若干组,使得每组内部的区间两两之间(包括端点)没有交集,并使得组数尽可能小。输出最小组数。输入格式第一行包含整数NNN,表示区间数。接下来N行,每行包含两个整数ai,biai,biai,bi,表示一个区间的两个端点。输出格式输出一个整数,表示最小组数。数据范围1≤N≤1051 \leq N \leq 10^{5}1≤N≤105−109≤ai≤bi≤109-10^{9} \leq

2021-01-27 01:29:54 2877

原创 AcWing 908. 最大不相交区间数量 (区间贪心问题)

AcWing 908. 最大不相交区间数量给定NNN个闭区间[ai,bi][ai,bi][ai,bi],请你在数轴上选择若干区间,使得选中的区间之间互不相交(包括端点)。输出可选取区间的最大数量。输入格式第一行包含整数N,表示区间数。接下来NNN行,每行包含两个整数ai,biai,biai,bi,表示一个区间的两个端点。输出格式输出一个整数,表示可选取区间的最大数量。数据范围1≤N≤1051 \leq N \leq 10^{5}1≤N≤105−109≤ai≤bi≤109-10^{9} \

2021-01-27 01:28:29 2755

原创 AcWing 905. 区间选点 (区间贪心问题)

AcWing 905. 区间选点给定NNN个闭区间[ai,bi][ai,bi][ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量。位于区间端点上的点也算作区间内。输入格式第一行包含整数N,表示区间数。接下来NNN行,每行包含两个整数ai,biai,biai,bi,表示一个区间的两个端点。输出格式输出一个整数,表示所需的点的最小数量。数据范围1≤N≤1051 \leq N \leq 10^{5}1≤N≤105−109≤ai≤bi≤109

2021-01-27 00:12:16 2757

原创 AcWing243. 一个简单的整数问题2 (区间修改 + 区间查询)

AcWing243. 一个简单的整数问题2给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1、“C l r d”,表示把 A[l],A[l+1],…,A[r] 都加上 d。2、“Q l r”,表示询问 数列中第 l~r 个数的和。对于每个询问,输出一个整数表示答案。输入格式第一行两个整数N,M。第二行N个整数A[i]。接下来M行表示M条指令,每条指令的格式如题目描述所示。输出格式对于每个询问,输出一个整数表示答案。每个答案占一行。数据范围1≤N,M≤105,1≤

2021-01-26 20:54:35 2580

原创 AcWing. 246 区间最大公约数 (区间修改 + 区间查询)

AcWing. 246区间最大公约数gcd(a1,a2...,an)gcd(a_{1},a_{2}...,a_{n})gcd(a1​,a2​...,an​) = gcd(a1,a2−a1...,an−an−1)gcd(a_{1},a_{2}-a_{1}...,a_{n}-a{n-1})gcd(a1​,a2​−a1​...,an​−an−1)给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1、“C l r d”,表示把 A[l],A[l+1],…,A[r] 都加上 d。2、“Q l

2021-01-26 20:53:03 2641

原创 AcWing. 245 你能回答这些问题吗 (区间查询 + 单点修改)

AcWing. 245你能回答这些问题吗(最大连续区间子段和)给定长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1、“1 x y”,查询区间 [x,y] 中的最大连续子段和,即 maxx≤l≤r≤ymax_{x \leq l \leq r \leq y}maxx≤l≤r≤y​∑i=lrA[i]{\sum^{r}_{i = l}A[i]}∑i=lr​A[i]。2、“2 x y”,把 A[x] 改成 y。对于每个查询指令,输出一个整数表示答案。输入格式第一行两个整数N,M。第二行N个

2021-01-26 20:51:27 2548

原创 AcWing. 1275 最大数 (单点修改 + 区间查询)

AcWing. 1275最大数给定一个正整数数列 a1,a2,…,an,每一个数都在 0∼p−1 之间。可以对这列数进行两种操作:添加操作:向序列后添加一个数,序列长度变成 n+1;询问操作:询问这个序列中最后 L 个数中最大的数是多少。程序运行的最开始,整数序列为空。写一个程序,读入操作的序列,并输出询问操作的答案。输入格式第一行有两个正整数 m,p,意义如题目描述;接下来 m 行,每一行表示一个操作。如果该行的内容是 Q L,则表示这个操作是询问序列中最后 L 个数的最大数是多少

2021-01-26 16:25:39 2868

原创 线段树基本操作

线段树基本操作query()int query(int u, int l, int r) { //查询操作 if (tr[u].l >= l && tr[u].r <= r)return tr[u].v; //树中节点已经被完全包含在[l,r]中 int mid = tr[u].l + tr[u].r >> 1; int v = 0; if(l > mid)return query(u << 1 | 1,l,r); else i

2021-01-26 16:20:16 2460

原创 欧拉函数

欧拉函数1 - N中与N互质的数的个数被称为欧拉函数,记为φ(x)\varphi \left( x\right)φ(x)若在算术基本定理中N=p1a1p2a2…pnanN=p_{1}^{a_{1}}p_{2}^{a_{2}}\ldots p_{n}^{a_{n}}N=p1a1​​p2a2​​…pnan​​,则:ϕ(N)=N∗p1−1p1∗p2−1p2∗…∗pm−1pm\phi(N)=N * \frac{p_{1}-1}{p_{1}} * \frac{p_{2}-1}{p_{2}} * \ldots *

2021-01-26 01:52:48 2498

原创 素数筛

素数筛1.朴素筛法O(nlogn)void get_primes(int n){ for(int i = 2;i <= n; ++i){ if(!st[i]){ prime[cnt++] = i; } //把i的倍数全部筛掉 for(int j = i + i;j <= n;j += i)st[j] = true; }}2.埃氏筛法O(nloglognnloglognnloglogn

2021-01-26 01:52:24 2466

原创 质因数分解

质因数分解#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<algorithm>#define ll long long#define maxn 1005using namespace std;int p[maxn],c[maxn],tot;void devide(int n){

2021-01-26 01:52:05 3129

原创 欧几里得与扩欧

欧几里得算法gcd⁡(a,b)=gcd⁡(b,a%b)\operatorname{gcd}(a, b)=\operatorname{gcd}(b, a \% b)gcd(a,b)=gcd(b,a%b)裴蜀定理对于给定的正整数a,ba,ba,b方程ax+by=cax + by = cax+by=c有解的充要条件为c是gcd(a,b)gcd(a,b)gcd(a,b)的整数倍扩展欧几里得在求a、b最大公约数的同时,能找到整数x、y使得ax+by=gcd⁡(a,b)a x+b y=g\operatorna

2021-01-26 01:51:41 2390

原创 CodeForces - 1463D. Pairs (二分)

CodeForces - 1463D. Pairs题意将 2n2n2n 个数,分成 nnn 对。其中 xxx对进行取小操作,剩下的数进行取大操作。给你一个 nnn 个元素的序列 aaa 。问你 xxx 可以为多少种数,能得到 aaa 数组。思路将出现过的数字放在 aaa 数组 未出现过的数放在 bbb 数组设 RRR 为 最多可以取多少次小 二分求 RRR设 LLL 为 最多可以取多少次大 二分求 LLL 则 n−Ln - Ln−L 为最少可以取多少次小最终 xxx 范围为 R−(n−L

2021-01-26 01:49:35 2505

原创 AcWing244. 谜一样的牛 (树状数组+二分)

AcWing 244. 谜一样的牛(二分)思路初始化所有数为1 代表没有用过从后往前计算 找到还未用过的前k小的数是几 使得sum(x) == k成立的最小x即为答案然后将这个数置为0 表示已经用过有n头奶牛,已知它们的身高为 1~n 且各不相同,但不知道每头奶牛的具体身高。现在这n头奶牛站成一列,已知第i头牛前面有AiA_{i}Ai​头牛比它低,求每头奶牛的身高。输入格式第1行:输入整数n。第2…n行:每行输入一个整数AiA_{i}Ai​,第i行表示第i头牛前面有AiA_{i}Ai​头

2021-01-25 00:14:37 2597

原创 AcWing 243. 一个简单的整数问题2(树状数组实现区间修改+区间查询)

AcWing243. 一个简单的整数问题2(树状数组实现区间修改+区间查询)a1+a2+a3+a…axa_{1}+a_{2}+a_{3}+a\dots a_{x}a1​+a2​+a3​+a…ax​ ====== ∑i=1x∑j=1ibj\sum^{x}_{i = 1}\sum^{i}_{j = 1}b_{j}∑i=1x​∑j=1i​bj​给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1、“C l r d”,表示把 A[l],A[l+1],…,A[r] 都加上 d。2、“Q l

2021-01-25 00:13:55 2323

原创 AcWing242. 一个简单的整数问题 (树状数组+差分)

AcWing242. 一个简单的整数问题()给定长度为N的数列A,然后输入M行操作指令。第一类指令形如“C l r d”,表示把数列中第l~r个数都加d。第二类指令形如“Q X”,表示询问数列中第x个数的值。对于每个询问,输出一个整数表示答案。输入格式第一行包含两个整数N和M。第二行包含N个整数A[i]。接下来M行表示M条指令,每条指令的格式如题目描述所示。输出格式对于每个询问,输出一个整数表示答案。每个答案占一行。数据范围1≤N,M≤1051≤N,M≤10_{5}1≤N,M≤10

2021-01-25 00:12:18 2347

原创 AcWing241. 楼兰图腾 (树状数组)

AcWing241. 楼兰图腾在完成了分配任务之后,西部314来到了楼兰古城的西部。相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀(‘V’),一个部落崇拜铁锹(‘∧’),他们分别用V和∧的形状来代表各自部落的图腾。西部314在楼兰古城的下面发现了一幅巨大的壁画,壁画上被标记出了N个点,经测量发现这N个点的水平位置和竖直位置是两两不同的。西部314认为这幅壁画所包含的信息与这N个点的相对位置有关,因此不妨设坐标分别为(1,y1),(2,y2),…,(n,yn)(1,y_{1}

2021-01-25 00:11:29 2379 1

原创 树状数组原理

功能:①快速求前缀和O(logn)O(logn)O(logn)②修改某一个数O(logn)O(logn)O(logn)操作:①:建树void add(int x, int c) { //树状数组的插入操作 for (int i = x;i <= n;i += lowbit(i))tr[i] += c;}②:区间查询:1 ~ x 前缀和for(int i = x;i <= n;i += lowbit(i))res += c;③:单点修改:for(int i = x;i;

2021-01-25 00:10:54 2244

原创 树形dp原理

树形DP没有上司的舞会状态表示f[u][0]f[u][0]f[u][0] : 所有从以u为根的子树中选择,并且不选择这个点的方案f[u][1]f[u][1]f[u][1]: 所有从以u为根的子树中选择,并且选择这个点的方案状态计算uuu为当前节点 jjj为子节点f[u][0]f[u][0]f[u][0]:不选当前节点 f[u][0]=∑max(f[j][0],f[j][1])f[u][0] = ∑max(f[j][0],f[j][1])f[u][0]=∑max(f[j][0],f[j][1

2021-01-25 00:09:05 2343

原创 状压dp原理

状压DP蒙德里安的梦想求把N∗MN*MN∗M的棋盘分割成若干个1*2的的长方形,有多少种方案。先考虑横着放的情况 竖着放的自然唯一确定状态表示f[i][j]f[i][j]f[i][j]表示第iii列的每一行小方格被占用的情况 jjj为二进制数 111表示占用状态计算用jjj表示iii列的状态 kkk表示i−1i - 1i−1列的状态能从i−1i-1i−1列转移到iii列的条件① 两列没有冲突的情况 j&k==0j \& k == 0j&k==0②第i−1i-

2021-01-25 00:08:30 2268

原创 数位dp

数位统计DP给定两个整数 a 和 b,求 a 和 b 之间的所有数字中0 ~ 9的出现次数。假设n=abcdefgn = abcdefgn=abcdefg 计算ddd位上xxx出现的次数 resresres记录答案1、(001——abc−1)(001——abc-1)(001——abc−1) xxx (000——999)(000——999)(000——999) res+=abc∗1000res += abc * 1000res+=abc∗10002、abcabcabc xxx​ 2.1、d&l

2021-01-25 00:07:49 2189

原创 计数dp原理

计数DP整数划分一个正整数nnn可以表示成若干个正整数之和 我们将这样的一种表示称为正整数n的一种划分。现在给定一个正整数n,请你求出n共有多少种不同的划分方法。完全背包写法状态表示类似完全背包 1~i1~i1~i分为iii个物品 每个物品的体积为iii 并且不限制数量 求总体积为jjj的方案数f[i][j]f[i][j]f[i][j]表示从1~i1~i1~i选总体积恰好为jjj的数量状态计算f[i][j]=f[i−1][j]+f[i−1][j−i]+f[i−1][j−i∗2]+⋯+f[i

2021-01-25 00:07:24 2318 4

原创 区间dp原理

区间DP石子合并设有N堆石子排成一排,其编号为1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。问题是:找出一种合理的方法,使总的代价最小,输出最小代价。状态表示f[i][j]f[i][j]f[i][j]所有将第iii堆石子到第jjj堆石子合并成一堆石子的合并方式状态计算f[l][r]=Min(f[

2021-01-25 00:06:48 2141

原创 线性dp原理

线性DP数字三角形给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8 8 1 0 2 7 4 44 5 2 6 5状态表示f[i][j]f[i][j]f[i][j] : 所有从起点走到(i,j)(i,j)(i,j)的路径最大值状态计算f[i][j]=Max(f[i−1][j−1],f[i−1

2021-01-24 22:59:12 2132

原创 分组背包原理

分组背包类似多重背包,只是将每件物品选几个变成每组物品选哪一个状态转移方程f[i][j]=Max(f[i−1][j],f[i−1][j−v[i][k]]+w[i][k])f[i][j] = Max(f[i-1][j],f[i-1][j-v[i][k]] + w[i][k])f[i][j]=Max(f[i−1][j],f[i−1][j−v[i][k]]+w[i][k])所以优化成一维时需要从大到小枚举jjjint n, m;int f[N];int v[N][N], w[N][N], s[N];

2021-01-24 22:56:10 2107

原创 多重背包原理

多重背包每件物品的个数有限制朴素算法与完全背包的朴素算法类似 时间复杂度O(N∗V∗S)O(N*V*S)O(N∗V∗S)状态转移方程f[i][j]=max(f[i][j],f[i−1][j−k∗v[i]]+k∗w[i])f[i][j] = max(f[i][j], f[i - 1][j - k * v[i]] + k * w[i])f[i][j]=max(f[i][j],f[i−1][j−k∗v[i]]+k∗w[i])优化成一维时需要从大到小枚举jjjfor (int i = 1;i <=

2021-01-24 22:55:34 2127

原创 01背包原理

01背包每件物品只有一个朴素算法分为两种情况:①不选第i个物品f[i−1][j]f[i-1][j]f[i−1][j]​ ②选第i个物品 状态方程可以由f[i−1][j−v]+wf[i-1][j-v] + wf[i−1][j−v]+w得到f[i−1][j−v]+wf[i-1][j-v] + wf[i−1][j−v]+w表示前i−1i - 1i−1个物品取总体积不超过j−vj - vj−v的最大价值加上第iii个物品的价值(v,wv,wv,w)分别表示第iii个物品的体积和价值for (

2021-01-24 22:54:38 2296 2

原创 AcWing239. 奇偶游戏

AcWing239. 奇偶游戏思路si=a1+a2+⋯+ais_{i} = a_{1} + a_{2} +\dots +a_{i}si​=a1​+a2​+⋯+ai​ 前i个数中1的个数s[l−r]s[l-r]s[l−r]中有奇数个1  ⟺  \iff⟺ sr−sl−1s_{r} - s_{l-1}sr​−sl−1​为奇数  ⟺  \iff⟺ srs_{r}sr​与sl−1s_{l-1}sl−1​奇偶性不同偶数个1   ⟺  \iff⟺ srs_{r}sr​与sl−1s_{l - 1}sl−1​奇

2021-01-24 22:52:20 2099

原创 AcWing238. 银河英雄传说

AcWing238. 银河英雄传说有一个划分为N列的星际战场,各列依次编号为1,2,…,N。有N艘战舰,也依次编号为1,2,…,N,其中第i号战舰处于第i列。有T条指令,每条指令格式为以下两种之一:1、M i j,表示让第i号战舰所在列的全部战舰保持原有顺序,接在第j号战舰所在列的尾部。2、C i j,表示询问第i号战舰与第j号战舰当前是否处于同一列中,如果在同一列中,它们之间间隔了多少艘战舰。现在需要你编写一个程序,处理一系列的指令。输入格式第一行包含整数T,表示共有T条指令。接下来T行

2021-01-24 22:51:39 2113

空空如也

空空如也

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

TA关注的人

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