- 博客(76)
- 收藏
- 关注
原创 团体程序设计天梯赛-练习集
思路:先假设为二叉搜索树,先设isMirror=false,根据二叉搜索树的性质由先序得到后序遍历的结果,若后序遍历数组的长度小于n,则说明出现矛盾。设定下标idx表示节点在二叉树顺序遍历中的下标,将存入map,利用map有序的特点即为顺序遍历的结果。思路: 已知后序遍历的结果,按照后序遍历的规则(左右根)去dfs,将后序遍历的元素存到对应的下标处。,可以反过来考虑,从根节点到所有子节点的路径全经历2次,然后删掉最长的一条从根节点到子节点的路径。
2024-07-16 23:41:20 833
原创 ResNet网络结构及Pytorch复现
ResNet的网络结构有:ResNet18、ResNet34、ResNet50、ResNet101、ResNet152.其中ResNet18和ResNet34属于浅层网络,ResNet50、ResNet101、ResNet152属于深层网络。
2024-04-09 15:32:26 3506
原创 2019ICPC南京站
题意:给定一个正整数 n ,你需要找出最小整数 k,满足:从{1,2,⋯,n}中任意选择长度为k的子集,存在两个不同的整数 u,v∈T, 且 u 是 v 的因数。思路:打表找规律。
2023-11-21 20:35:07 578
原创 2022ICPC济南站
题意:给你一个长度为n的排列,设有m个栈,你需要将这n个数按出现顺序入栈,每次入栈操作从m个栈中选择一个栈从栈顶入栈。当所有元素入栈完成后,需要不断选择栈,将栈中元素弹空。需满足出栈顺序为1 2 3 ... n,问完成上述任务所需最少栈的个数为多少。思路:遍历数组,设当前元素为x,我们就看是否存在栈顶为x+1的栈,若存在则入该栈;否则新开一个栈将x入栈。
2023-11-09 20:51:48 750
原创 Codeforces Round 888 (Div. 3)
题意:有一个长度为n的前缀和数组,现在该数组丢了一个元素,问该数组能否匹配一个长度为n的排列。思路:求出该数组的差值后,只有两种情况是YES:①1~n之间恰好有两个数的位置上是空的,并且恰好有一个数多余的数,等于这两个位置加起来,这样就能使得1~n填满。②1~n之间恰好有一个数的位置上是空的。此时只需将这缺的数放到数组最后面,就能令数组合法。
2023-09-18 20:37:00 232
原创 2020ICPC南京站
题意:给定n和k,让你构造n的排列,满足gcd(pi, i)=1的个数为k。思路:因为x和x-1互质,1和任何数互质,任何数和它本身不互质当k为奇数时,p1=1,后面k-1个数两两互换当k为偶数时,后面k个数两两互换。
2023-09-01 21:12:07 1934
原创 Codeforces Round 860 (Div. 2)
题意:给你两个长度为n的数组a和b,每次操作你可以互换a[i]与b[i],问最终能否满足思路:若a[i]>b[i],我们就进行操作。这样数组b元素都是较大的, 一定比不操作更优。最后判断是否满足条件即可。
2023-05-22 22:57:37 745
原创 2020 CCPC Henan Provincial Collegiate Programming Contest
注意:1. 出现多只与狂热者距离相同的异虫时,需要选取最早出现的那只。但是注意到距离之间只需要比较大小,因而可将所有距离平方,在长整型范围内进行运算,避免精度误差。思路:答案若出现在区间内,则答案也可以出现在该区间端点,因此我们只需要考虑端点。思路: 考虑DP,但注意到人数是整除,取值只有O(sqrt(m))种。f[i][j]表示观看第i集有j个人的最大收益,所以i需要处理到n+1。思路:n
2023-05-11 20:28:15 281
原创 Codeforces Round 853 (Div. 2)
题意:定义一个数组是good的当且仅当所有元素的gcd=2的前缀数组都是good的。给定长度为n的数组,问能否通过重排序的方式让该数组变beautiful。思路:题意可以简化为,数组经过排列后前两个数的小于等于2即为美丽的数组。暴力,若存在两个元素的gcd
2023-04-27 20:47:26 508
原创 Educational Codeforces Round 143 (Rated for Div. 2)
题意:有两座高分别为n,m的塔,塔是由多个高为1的红/蓝方块搭成。告诉你两座塔的颜色组成,问能否可以经过若干次操作使两座塔都没有相邻块颜色相同。每次操作,可以把其中一座塔顶移到另一座塔上。思路:我们可以把A串和B串反向连接起来,只要相邻方块颜色相同的次数不超过1,就是YES,否则No。
2023-04-26 19:53:48 620
原创 天梯赛练习题集
find函数,Nt用集合关系求思路:f[i]表示以第i个字符结尾的最长对称子串的长度。注意初始化:若s[i]==s[i-1] ,f[i]=f[i-1]+1;否则f[i]=1题意:思路:二维数组g表示两者之间的朋友和敌对关系。将存在朋友的关系的合并在一块,做一个并查集。题意:思路:根据中序遍历和前序遍历还原二叉树,反转后输出答案。中序遍历:LDR,可以划分出左右子树前序遍历:DLR,可以找到子树的根。题意:思路:模拟堆,注意up的写法。
2023-04-21 23:06:11 346
原创 Codeforces Round 846 (Div. 2)
题意:给定长度为n的数组,你可以将该数组分成k段(k>1),最终分数为 k段区间和的gcd。问最大分数。思路:设我们分成3段,那么最终分数=gcd(a*k,b*k,c*k)=gcd( (a+b)*k, c*k ).那么我们可以将k段合成两端,我们只需要分成两段即可,其gcd一定不会变小。
2023-04-13 20:33:07 119
原创 The 2022 ICPC Asia Xian Regional Contest(2022西安站)
题意:给定长度为n的数组,从中选择元素(可以不选),若选择元素ai,则每个长度为i的区间内至多只能选择2个元素。思路:设我们选择下标最大的元素a[p],那么[1,p]区间内也最多只能选2个。所以我们最多只能选2个。
2023-04-09 21:53:16 1542
原创 D. Lucky Chains.Educational Codeforces Round 139 (Rated for Div. 2)
思路:考虑gcd的性质,gcd(x,y)=gcd(x,y-x).那么gcd(x+k,y+k)=gcd(x+k,y-x),我们发现y-x是一个定值,所以我们可以枚举每一个y-x的质因子p,求(x+k)%p==0时的最小的k,也就是求p-x%p的最小值.筛质数时只需要筛到3200就可以,因为3200*3200>1e7。题意:给定x和y,执行下面的代码,求cnt。
2023-03-19 20:26:59 157
原创 [CF-EDU]Segment Tree, part 1 » Step 2 » Practice
题意:给定长度为n的数组,查询最大子段和。每次操作将下标为i的改成v思路:线段树维护sum,lmax,rmax,tmax:区间和,区间最大前缀和,区间最大后缀和,区间最大子段和。如何维护父节点的区间最大前缀和:(1)左儿子的最大前缀和(2)左儿子的区间和+右儿子的最大前缀和如何维护父节点的区间最大后缀和:(1)右儿子的最大后缀和(2)右儿子的区间和+左儿子的最大前缀和如何维护父节点最大子段和:(1)左儿子的最大子段和(2)右儿子的最大子段和(3)左儿子的最大后缀和+右儿子的最大前缀和。
2023-03-15 20:44:42 336
原创 Codeforces Round 843 (Div. 2)
题意:给定一个由字母a和b组成的字符串,将该串分成3部分,使得中间部分字典序最小或最大。思路:在除了两端的位置找一个a,若存在,此时中间部分字典序最小。否则,去掉头和尾,中间部分全b,字典序最大。
2023-03-15 18:54:28 422
原创 Codeforces Round 848 (Div. 2)
思路:注意到数据范围最多有10个不同的字符,我们可以二进制枚举替换哪些字符。贪心的策略是能替换就替换,相同的不需要替换。一个长度为n的子串对答案的贡献是n*(n+1)/2。题意:给定长度均为n的字符串a和b,最多可以替换k个字母,求替换后最多有多少个区间[l,r]满足a[l,r]等于b[l,r]
2023-03-14 20:25:21 174
原创 Educational Codeforces Round 144 (Rated for Div. 2) C
情况1的总贡献:我们计算r到l之间多少个元素左移(cnt-1)后仍然小于等于r即可,即((r>>(cnt-1))-l+1).情况2:因为存在一个3,我们可以/3*2,转化成情况1,即(((r/3*2)>>(cnt-1))-l+1)*(cnt-1).注意第二种情况还要与0取最大值,因为可能不存在3。第二问一共两种情况,i*2^k
2023-03-14 20:12:57 169
原创 Codeforces Round 852 (Div. 2)
题意:要买n千克物品,第一天的价格为a,第二天的价格为b。第一天有促销活动,每买m千克物品,可以额外获得1千克物品。问最少花费多少可以获得至少n千克的物品。思路:分类讨论,当ab时,又可能第二天的价格特别低,因此全在第二天买;或者第一天的平均价格比较低,先尽可能用第一天去买,没凑齐的用第二天买。
2023-03-09 21:40:59 423
原创 Lucky Permutation(置换环)
例如排列为[1,7,5,8,2,6,3,4],就会产生4个置换环,分别为[1->1],[2->7->3->5->2],[4->8->4],[6->6].我们先让每一个环变成单调递增序列,即每一个p[i]都等于i的。例如环是[3,4,5,2]时,第一次操作变成[3,4,2,5],第二次操作变成[3,2,4,5],此时已经存在一个逆序对[3,2]了,就不必在还原后再进行额外操作了。我们可以先把排列变成[1,2,3...n]这样,再进行一次交换就可以让逆序数为1了。考虑置换环,即在a[i]与i之间连边。
2023-03-08 21:46:34 554
原创 D. Constant Palindrome Sum(差分数组维护)
题意:给定长度为n的数组,每次操作可以选择一个数令a[i]变成[1,k]范围内的一个数,问最少需要多少次操作可以让a[i]+a[n-i+1]==x (1
2023-03-06 19:34:09 435
原创 Codeforces Round #841 (Div. 2) and Divide by Zero 2022
题意:给你长度为n的数组a,问(i,j)对数满足ai^...^aj有偶数个因子。思路:注意到一个数x=p1^a1 * p2^a2 * ...,则因子个数为(a1+1)*(a2+1)*....,只有所有ai为偶数时(此时x是完全平方数),因子个数为奇数。我们用总的对数减去奇数的对数即为答案。我们可以预处理前缀异或和,枚举平方数来统计数量。对于每个前缀异或和sum[i],枚举平方数,若满足sum[i]^(j*j)==sum[k],就说明sum[i]^sum[k]==j*j是非法答案。
2023-02-27 21:10:47 307
原创 Educational Codeforces Round 140 (Rated for Div. 2)
题意:给定三角形三点坐标,只能从三角形顶点横向或纵向进行切割,问能否切成两个三角形思路:只要有横坐标或纵坐标在其余两点之间即可。
2023-02-24 20:31:43 278
原创 Codeforces Round #837 (Div. 2)
题意:给定长度为n的数组,问有多少对(i,j)满足|a[i]-a[j]|=max|a[p]-q[q]|(1
2023-02-23 21:00:08 428
原创 Codeforces Round #836 (Div. 2)
题意:告诉你一个字符串。若该串上每一位上的字母都可以出现两次,求回文串思路:正向再反向输出s即可。
2023-02-22 21:25:11 341
原创 2023牛客寒假算法基础集训营1
题意:A、B两队轮流罚球,共10局,告诉你罚球的结果,进球多的队伍获胜,问在哪一局就可以知道最终结果。思路:枚举每一轮i,计算后面A、B队最好得分,若A最差>B最好||B最差>A最好,则可以判断胜负了。
2023-01-17 22:19:59 971
原创 Codeforces Round #824 (Div. 2)
题意:告诉你一周的长度n,其中有三天是休息日,其中一天固定在第n天,让你选择另外两天在哪,规定:休息日不能相邻。求出最大的其中l为工作日的长度。思路: 我们在第2天和第n天定为休息日,然后在中间再确定一个休息日。最优的情况就是尽量构造一个等差数列,找到最大的公差d满足等差数列的前3项和小于等于n-3。前两项构成公差d的等差数列,剩余天数放到第三项,再计算答案即可。
2022-10-21 21:18:00 526
原创 Codeforces Round #783 (Div. 2)
题意: 给定n*m的方格,每次向上下左右任意方向移动,但同一个方向不能连续走两次。开始位于(1,1),要走到(n,m),问最少多少步走到,无法走到输出-1。
2022-10-16 19:28:39 359
原创 Codeforces Round #826 (Div. 3)
题意:给你长度为n的数组,让你将数组切分,切分后每段数组元素和相等,记录价值为最长一段的区间长度,问最小的价值是多少。,然后保证后面每一段元素和都等于第一段即可,当刚好可以将数组划分时,更新答案。
2022-10-13 19:57:04 77
原创 Codeforces Round #825 (Div. 2)
题意:给你长度为n的a,b数组,其中只含0和1,有两种操作:(1)将某元素反转(2)将数组任意排列。问最少需要多少次操作使得a等于b思路:我们用cnt记录 a[i]!= b[i] 的次数,那么经过cnt次操作一定可以使a等于b,但不一定是最优;用cnta,cntb分别记录a,b中1的个数,那么经过| cnta - cntb |操作可以让a,b中0,1个数相同,再用一次排列操作即可让a等于b,总操作数为| cnta - cntb |+1;只需要对这两种情况取一个最小值即可。
2022-10-12 20:36:07 51
原创 Codeforces Round #812 (Div. 2)
题意:给出n个箱子的坐标,保证这些箱子只出现在x和y轴上,问收集箱子过程从(0,0)出发最终回到(0,0),最少需要多少步。思路:找四个方向上最外侧的点,其实最终的距离一定是最外侧点组成的矩形的周长。
2022-10-10 21:21:03 65
原创 Codeforces Round #816 (Div. 2)
当与前一个数不同时,该数对所有包含它的区间都有1的贡献,总贡献为i*(n-i+1)然后在m次改数据的时候,先减去原本的数对左右的影响,改变后再加上对左右的影响即可。当与前一个数相同时,该数只对从此位置开始的区间有1的贡献,总贡献为(n-i+1)题意:构造数组,其中有n个元素,数组中每个数/k的和为b,数组数字和为s。思路:我们可以把b的贡献全放到一个位置,如果有剩余就均摊到其他位置。思路:考虑每一位数字的贡献,与前一个数相同、不相同分为两种贡献。ans初始化为n,第一个数对包含它的n个区间都有1的贡献。
2022-10-07 20:42:24 81
原创 “蔚来杯“2022牛客暑期多校训练营2
题意:构造一个排列p,使max( LIS(p) , LDS(p) )最小结论:排列权值的最小值为构造形如3 2 1 6 5 4 9 8 7的数列即可。
2022-09-02 20:39:48 785
原创 “蔚来杯“2022牛客暑期多校训练营1
题意给定n,求1~n中字典序最大的字符串思路显而易见,答案除去最后一位,其余位均为9;若n除去最后一位,其余位均为9则答案即为n若不然则答案为|n|−1个9,其中|n|指n对应字符串的长度。
2022-07-23 11:12:51 184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人