自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 WEEK 4 周报

(树的重心可能不唯一)举个例子:删掉1节点,连通块的最大值是4删掉2的连通块的最大值是6删掉4,连通块最大值是5其余的边就不枚举了所以树的重心是1,最优解是4。

2024-08-06 10:31:40 979

原创 2022年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛(重现赛)

最后输出答案时,因为要求输出字典序最小,所以我们就从数组i开始枚举,如果要求的减去目前这堆的高度后的堆数等于答案的堆数减一,就说明你是其中一个答案,输出就行,那么要求的高度就要更新为减去这堆高度的高度;所以我们可以用优先队列储存数组,在用一个普通数组储存输入,枚举数组中的元素,如果枚举到其中一个元素等与优先队列的队头,那么我们就将队头弹出,将新队头+现在的元素,然后再把弹出的队头在加入其中;当他可以装 j 体积的东西时,也就是当高度为j时,比较高度为j-a[i]时在加上本省自己的堆数时,谁的堆数最小;

2024-08-05 09:56:19 673

原创 WEEK 1 DAY 4

一看到绝对值,就应该想到数轴上点之间的距离,这道题虽然给b加上了i,但只要把式子拆开,一开始就把每个Ai减去i就行了。然后可以证明(或者学过)一个点到其他点距离和最短应该是这些点坐标集合的中位数,给定一个代价矩阵C,在给定一个矩阵a,要求将此矩阵a中的所有元素都变为1,将i变成j,代价是c[i][j];思路:a[i]-i当做新的a[i],用中位数定理,一个点到n个点的距离和最小是他们的中位数。

2024-07-29 09:19:49 205

原创 周报 Week 3:

2.我们发现,对于每次 j 的更新,只需用到之前 i-1时的 j 或者j-v[i],不会用到之前后面的值,所以为了防止串着改,我们采取从后往前更新的方式,用原来 i-1的数组更新 i;(如果从前往后更新的话,前面的更新过之后,会接着更新后面的值,这样就不能保证是原来的 i-1的数组来更新 i 的了。f[i][j]=max(f[i][j],f[i+1][k-1]+f[k+1][j]+2)——>2是自己匹配的括号。这里的 j 不去要从大到小枚举,因为它要的不是i-1的状态,它要的是当前 i 的状态。

2024-07-28 21:30:37 825

原创 Week 3 DAY 6

后面没有9或则没有0的情况就是只能选 0 1 2 3 4 5 6 7 8或者0 1 2 3 4 5 6 7 8 这9个数字,所以组合数就是9的n次方,后面既没有0又没有1就是8的n次方。简单的容斥原理,我们只要将所有可能减掉没有9的可能和没有1的可能,这两个可能中包含了既没有9又没有0的组合,在加回来就行,总共n位数,每一位可以出现0 1 2 3 4 5 6 7 8 9 这10种数字,一共N层,对于每一层的每个数,都遍历上一层更新过后的结果,更新为新的结果,动态数组a表示储存上一层除后留下来的数,

2024-07-27 18:43:09 410

原创 Week 3 DAY 5:

这道题很简单,就是有n朵花,给你两个数a,b,要求花数不能为a b,那么就是一个简单的组合问题;一开始给定一个n,是1到n的排列,A人负责选取区间,B负责在该区间选一个数删掉,操作n次,也就把区间里的数全部都删掉了。这道题唯一的难点就是翻转那里超时,其实不用真的翻转如果翻转次数为计数,只用把放前面的操作放后面,放后面的操作放前面就可以了。2.接着A:选了3 5的区间,B要删掉一个数,这里B可以删掉3 4 5,此时不确定 B要删几,继续往下;1.A:选过1 1的区间,那么此时B一定只能选取数字1给他删掉。

2024-07-26 20:56:37 1002

原创 河南萌新联赛2024第(二)场:南阳理工学院

因为后边可能还会有同一个人的信息需要录入,我们就对b数组从大到小进行排序,为什么从大到小,因为我输入的数是和加入进入的数进行判别,加入进去的数是不是里边的后缀。9是89的后缀,但是9先加进去,89不是9的后缀,就排不出来,后边d数组为什么又是从小到大呢,因为有前导0的情况,比如001 1,1是001的后缀,但是001小于1,所以c,d数组就是对这些后缀情况进行排查;这道题我的思路是读取星座信息的时候与要存进去的数组里边的数都比较一下,存进去的数是不是数组里边任何一个数组的后缀。这题要用到线性代数的知识;

2024-07-24 21:01:00 287

原创 Week 3 DAY 1

排名依旧是倒数,感觉疲劳呈n²递增,脑子想不出东西......没关系,我爱补题!!!好吧,我好像并没有完全学会二进制枚举....至少现在我不知道什么时候用它,

2024-07-23 15:14:36 645

原创 week 2周报

这周学了和,详细在题解中;这周的题单是深度优先搜索和广度优先搜索及其剪枝,有一种小学三年级写三位数乘法作业的麻烦。。。。(代码又长又易错);关于搜索,我只会深度搜索,并且细节性的概念是模糊的,这周我不仅学会了广搜还找到对搜索的问题了,有时候需要回溯有时候不需要回溯,有时候需要回溯后标记清0,有时候不用,有点把握不住这个点。就使得代码会死循环,超时之类的。

2024-07-21 19:40:03 707 2

原创 2024暑假友谊赛 2

某天小C来到了心心念念的女神家里(绝对不可能是女装大佬,绝对不可能),他发现地砖有两种颜色组成,分别是白色和绿色。对于一个绿色十字,小C认为必须由5块地砖组成,而且两个十字间不可以共用绿色地砖,由于女神家非常大,小C的强迫症末日一时间竟不知道要不要降临,所以需要你编程进行判断。其次我们用栈区存元素出现的下标,是为了让r在尽可能的范围内最小化缩短,这样可能可以交换更多的字母;2*2的矩阵可以吗,显然不行,这样的话小明的算法和正确答案是一模一样的,那我们构造一个2*3的矩阵,按照小明的算法得到的结果就是。

2024-07-20 15:58:22 496

原创 SMU Summer 2024 Contest Round 5 week 2 DAY 5

我认为只要找到小孩中体重的最大值,和大人中体重的最小值,如果大人的体重大于小孩体重的最大值,以及本身就是小孩的就累加ans1;找到样例了,如果用我的代码,ans1就是第一行紫色0的左边包括紫色加上第二行右边的0就是7,ans2就是第二行红色的0右边的所有0,答案就是0,但是可以让w=5这样的答案就是11;就求出每个边框下,人数最多的框输出就是行,答案中为什么加2,是因为下标,当下标都为0的时候,其实是有人的,两个下标就加2;机器人认为 体重=x其余的是大人。

2024-07-19 20:10:04 304

原创 河南萌新联赛2024第(一)场 week 2 DAY 3

储存一个邻接表,遍历每一个孩子,然后遍历每一个孩子喜欢的零食,如果该零食没有被选择,则这个零食就和该孩子匹配,或者说,如果该零食被选择,就查找持有该零食的孩子是否还有其他零食可以选择,如果有,则持有该零食的孩子就把零食让给现在所遍历到的孩子,然后绑定零食和孩子之间的关系。其实我到现在还不知道为什么会超时,我觉得应该不会,我的思路是遍历每一个未访问的点,如果一个点是没有被访问的,就记录它的循环周期是多长,顺便把这个周期上的所有点标记为已访问。假如用的线条数等于n(节点数),就终止循环,如果小于n就继续循环。

2024-07-18 16:27:52 620

原创 week 2 DAY 2:

先对A,B数组从大到小进行排序,取A数组中的前a个数字,将其累加,再取B数组中的前b个数字,在A累加后的基础上将其再累加,在选取出来a个A数组中的数,b个B数组中的数中,用他们的最小值依次换取r数组中的最大值(如果一个数组中的数全部被换过了,就比较另一个数组是否符合换的条件)(今天终于理解二进制枚举了,就是一个集合,里边有n个元素,那么他的子集也就是不同(选或则不选)的组合)高中就知道是2的n次方,那么将1,到2的n次方之间的二进制数就是所有的可能,这也就是所谓的二进制枚举,,BN), C=(C1,C)

2024-07-17 10:50:47 1001

原创 周报 week1

天天有训练赛,还有两个将近20道题的题单,还有一些零零散散codeforces,牛客,Atcoder,的比赛,太多了。还要补题,我感觉有点力不从心,想要完成任务,质量上就没达标,想要质量,很多东西就完不成,第一天早上打了训练赛,下午一直在补提,补到下午3/4点左右,看他们在完成题单了,索性每天下午都写题单,晚上有时候会打打别的比赛比如睿抗,cf,abc.....;二分一整个题单只做了二分的部分,三分,01规划都还没有接触,令一个题单坐的差不多了,不仅有单调栈,还有单调队列,注意!:必须每个元素都得入栈。

2024-07-14 19:55:04 291

原创 暑期DAY 3:

令dp[i][j]表示前i个物品,令dp[i][j]表示前i个物品,取j对的最小疲劳度,若取第i个物品,则就要取i-1个物品,所以状态方程就是dp[i][j]=dp[i-2][j-1]+(a[i-1]*a[i])*(a[i-1]*a[i]);如果给定的那个数原本就是3的倍数,直接输出0,如果原来的数模3后还剩1,有两种操作,可以删除一个余数为1的,此时就需要看看余1的个数有几个,如果有就输出一,还有一种才做就是删除掉两个余数为2的位数上的数,如果余数为2的个数大于等于2就输出2,两个都不满足的输出-1;

2024-07-14 19:29:04 894

原创 暑期DAY 2:

先全部将矩阵赋值成‘#’,然后一个一个扣赋值成'.'数据要是再大点就T。用前缀和记录前面有多少个连续出现的字母,记录作差即答案(给出左右边界求数量可以想前缀和)如果每一行的长度如果

2024-07-14 17:37:34 280

原创 暑期DAY1;

依次输入Ai,在双端队列中找出大于等于x的数,用 a.lower_bound(),当它没找到时返回0,直接向前添加,如果找到了,需要替换a[it-1]的数值、最后输出deque里有多少个非升序序列;(d=i),而要保证为正面不为反面的概率是二分之一,所以翻到每一个数字的概率还要乘以0.5,一直乘,直到退出循环为止,此时加上每个数累乘的概率即为答案;然后再在其中找到一个小于-X的最大数,也就是大于x的最小值,若存在,替换该升序数组中的最大值,也就是替换数组里的值,否则,就直接在加入一组数据;

2024-07-13 02:51:40 323

原创 week 7;

每一次就开始攻占之前,做一次并查集,求出有几个不连通的量,攻占城市之后,标记该城市,然后对未标记的城市做一遍并查集,判断此时的根节点和之前的比较有没有减少;他删了那个点是不会复原的。题目要求找到一种动物可以变为任何一种动物,且要求魔咒最短,(例:不是鼠——>猫——>鱼,而是鼠——>猫,鼠——>鱼,),所以求出每一种动物变成其他动物的最短字符数,在最短路表中找出每一种动物变为最长字符的数字,每种动物的最长字符取最小的即是答案。不能用scanf()!朋友的朋友也是我的朋友!找父亲结点用findd(x)!

2024-03-31 18:51:36 607 1

原创 week 6

将十进制数转换成二进制数,如果右边第一位是1,直接输出-1,若不是,从左到右输出1在的位置所对应的数字即可;第一天收到一枚金币,第二三天收到两枚金币,,写两个循环,当天数满足题目要求即可退出循环。将后面的数加给数组中最小的那个,然后用sort排序,保证加给的是数组中的最小个数;先判断“-”旁白你的两个数满不满足题目的变换要求,即a[i+1]

2024-03-24 20:37:04 282 1

原创 week5:

在while循环中以作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。如果scanf()函数全部正常读取,它就返回几。3.gets一般不能用。

2024-03-10 21:04:29 1383 1

原创 week 4:

但是当数组长度为奇数时,最后一个数是没办法进行加法,所以需要将第n个数,和第n-1个数进行差值比较,从后往前看看最多能做几次加法。实现非降序数组,也就是每个数字都比之前的数字大或者相等。当要进行k次操作时:第一个数变为a1+k,第二个变为a2+2*k,第n个数变为an+n*k;ans[n]=a[n]-ans[n-1]-1,最后一个数等于他本身减去左边的0的个数。那么n个数的答案是sum[n-1]+a[n]-ans[n-1]-1。边界:只有一个的时候最优解确实是ans[0]=a[1]-1;

2024-02-25 18:13:27 342 1

原创 week 3

开一个dp数组,每次状态转移需要判断dp[i-1]是否大于等于0,如果大于等于0那说明前面的子段是可以保留的,再把a[i]接在这后面如果小于0那说明前面这段不是更优的。然后第二层枚举右端点将和变量加上数组的第右端位,每次操作及时更新最大值,所以一共有两层循环,时间复杂度为O(n^2),可以通过n

2024-02-18 11:16:08 915 1

原创 week 2;

【代码】week 2;

2024-02-04 19:28:38 380

原创 day 1

O(n!Next_permutation()在使用前需要对欲排列数组按升序排序,否则只能找出该序列之后的全排列数。当前序列不存在下一个排列时,函数返回false,否则返回true.prev_permutation:对欲排列的数组按降序排序。控制浮点数输出的精度,保留两位小数。只要出现了fixed,则后面都是以fixed输出(就是说,如果之后还要继续使用,不同再打一遍fixed了),如果取消,使用unself函数。例:cout.self(ios::fixed);(输出十六进制)

2024-01-28 11:57:47 1859 1

空空如也

空空如也

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

TA关注的人

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