YACS丙组题
文章平均质量分 54
搬运后的个人总结
普通网友
这个作者很懒,什么都没留下…
展开
-
YACS20222丙组——缩进对齐(差分法)
为了求出把c数组变成d数组要最少多少次,我们只需找出所有比 d[i]d[i] 大的 c[i]c[i],计算出 c[i]-d[i]c[i]−d[i]的和即可。(也可以找比d[i]d[i]小的c[i]c[i],结果一样)因为我们补充定义了a数组的头尾是0,其实差分数组c的和一定为0,类似地我们对b数组补充定义,另d数组为b数组的差分数组。我们可以每次只选择a中的一个元素,让它不停加1或者减1变成b数组中对应的值。如果我们选择a[1]到a[4]加1,体现在差分数组上则是c[1]加1,c[5]减1....原创 2022-08-04 23:19:43 · 282 阅读 · 0 评论 -
YACS20222月丙组——天秤与砝码(一)
其中w是一个给定的整数。称重时,砝码与物品可以放在同一边,也可以放在不同边。当砝码与物品放在同一边时,砝码起到了减法的效果。当w=2时,我们的a_i完全可以只取0和1,这样就是二进制表达式,可以表达出0到。给定一个正整数t,请问利用这组砝码,能否称量出重量恰好为t的物品呢?如果扫描到最后还没有遇到第4种情况,那就说明tt可以表示,输出“Yes”。小爱有一座天平,还有3232个砝码,这些砝码的重量分别为。输入37(w,t)−1范围内的所有正整数,所以,题目就是让我们求。......原创 2022-08-01 19:07:20 · 433 阅读 · 0 评论 -
YACS20223月丙组——洗牌(倍增算法)
对于所有f[k][1]=min(f[k][0],f[k+1][0])推出,远离不难理解就是k之后2^0个与k+2^0之后2^0个叠加起来,特别地,对于6他没有f[6][1](他之后没有2个了)。类似的对于所有f[k][2]=min(f[k][1],f[k+2][1]),4~6没有f[k][2]所有f[k][0]=a[k],这是因为k之后2^0=1个,只有他自己,所以最小值就是他自己。一开始,牌的顺序为1,2,⋯,n。第二个2~5的最小值可以由min(f[2][1],f[5][0])得出为1。...原创 2022-07-25 11:44:18 · 307 阅读 · 1 评论 -
YACS20223月丙组——三扔硬币
如果说第i位是1的话,如果i-1位是1的话,那么i-2位肯定是0,这个写法已经包含了上一个的假设dp[i-2][0]如果i-1位是0,那么i-2位可以是0,可以是1。然后写上基础解,第1位是1,0时dp[1][1]=1,dp[1][0]=1;那么上一个假设里,还没有包括的就是i-1为是0的情况,dp[i-1][0]第2位是1,0时dp[2][1]=2,dp[2][0]=2;dp[i][1]表示第i个数为1的合法方案数。dp[i][0]表示第i个数为0的合法方案数。...原创 2022-07-23 13:11:05 · 492 阅读 · 0 评论 -
上海市计算机学会-击鼓传花
情况二总共有两个数a[1],a[2],先手需要考虑取max(a[1],a[2]),即两者中的更大者,这是显然的,因为此时先手只有一次选择机会,另一个数一定是后者的得分.情况一只有1个数a[1]时,先手选择最佳策略一定会取这个数字,得分为a[1].不妨设f[1,i]表示先手在[1,i]可以取得的最大分数,......原创 2022-07-20 21:19:49 · 334 阅读 · 0 评论 -
上海市计算机学会-走走跳跳
假设dp[i]代表第i步的得分,那么dp[i+1]=dp[i]+a[i]或者dp[t[i]]=dp[i]+a[t[i]](这里之所以是dp[t[i]]因为是跳到了t[i]步,dp代表的是i步的分数,所以哪里要改变)有n个位置排成一排,第i个位置都有一个分数a_i(分数可能是正数,也可能是负数)。这里第1个位置4分,第三个位置6分,可以选择第1个位置到第2个位置,也能选择第1个位置跳到第3个位置(n=3,执行完毕了);注意dp[i]=-1e18是因为题目要求得分a[i]是有负数的,还挺小。...原创 2022-07-20 18:33:34 · 327 阅读 · 0 评论 -
蓝桥杯-打印六芒星
这道题看着复杂,不过图形打印题,无非是for循环的嵌套使用,最最关键的是找到行和图案的关系。然后,找关系后,还要看看对称性。对称性可以帮助我们省略很多代码。不过,之前在csdn上看了很多,都java做的(互相抄的吧~)看懂之后,就用自己熟悉的语言再做一次!经过观察,第3行,第5行*后有空格(包括对称)其它都空格+‘*’这样的结构。这是上海市计算机学会2022年7月丙组的压轴题和之前蓝桥杯的大题一模一样。.........原创 2022-07-19 20:41:51 · 567 阅读 · 0 评论 -
上海市计算机学会-子集和(回溯法)
使用回溯法,回溯法”主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。给定n个正整数a1,a2,,⋯,an,请从中找出一些数字,使得它们的和恰好等于一个给定的目标t。之前看到一个子集和(四)的题目,觉得好难,发现这一系列题目由简单变难,很有意思,所以全都挑出来好好看看。第二行n个正整数a_1,a_2,⋯,an。第一行两个正整数n与t。......原创 2022-07-17 22:48:17 · 418 阅读 · 0 评论 -
上海市计算机学会-平整序列
题目描述给定一个整数序列 a1,,…,an ,小爱需要通过一系列调整操作将所有数字改成 0。每步调整操作中,小爱可以选择一段连续的区间(也可以只选一个数),将所选的全部数字增加一单位,或将所选的全部数字减少一单位。请问小爱最少需要几步操作才能将所有数字改成 0?输入格式第一行:单个整数表示 n;第二行:n 个整数表示 a1,…,an。输出格式单个整数:表示最少调整次数整个区间段的变化,要想到用差分的方法来操作!引入辅助变量a0和a5B1=a1-a0B2=a2-a1B3=a3-a2B4=a4-a3原创 2022-07-12 00:08:20 · 800 阅读 · 0 评论 -
上海市计算机学会-连续的零
上海市计算机学会竞赛平台 | YACS题目描述给定一个 序列 b1、b2…bn, 的意思就是这个数列里只有 与 。请问最少需要将多少个 改成 ,序列里会出现 k个连续的 。输入格式第一行:两个整数 n 与 k。第二行:n 个字符表示 b1、b2…bn,保证只出现 与 。输出格式单个整数:最少要改多少个 ,才会出现 k 个连续的 。思考过程:最后得到k个连续的0,原本是x个0 的话,就是k-x个 1,至少改了k-x个1,使其变成0。找k-x的最小值,也就是x的最大值101010,最少有3个连续原创 2022-07-12 00:41:47 · 458 阅读 · 0 评论 -
上海市计算机学会-切香肠
题目描述上海市计算机学会竞赛平台 | YACS有 n 条香肠,每条香肠的长度相等。我们打算将这些香肠切开后分给k 名客人(不保留),且要求每名客人获得一样多的香肠。请问最少需要切几刀?注意一刀只能切断一条香肠,每个客人可以接受多段香肠。输入格式单独一行:两个正整数 n 与 k输出格式:单个自然数:表示最少需要切几刀看了很多分析,主要是要分类讨论香肠n与客人k的关系;n%k==0, 比如6根香肠,3个客人,那每人分两根,不用切,输出就是0;还有种情况是7根香肠3人分,那就是7%3=1,余下一根,三人均分;每人原创 2022-06-04 00:09:17 · 746 阅读 · 0 评论 -
上海市计算机学会-最远城市距离
大城市的道路是相互平行或垂直的,如果在城市的道路上行走,不能用点与点之间的直线距离计算长度,而是应该定义两个点(设坐标分别为 (x,y)(x,y) 与 (x',y')(x′,y′))的城市距离为|x-x'|+|y-y'|给定 n 个点的坐标,请从中寻找两个点,使得它们的城市距离达到最大,并输出这个最大值我们先来看任意两点的曼哈顿距离公式:绝对值意味着里面的值可正可负。所以,接下来我们要分类讨论。在下面的式子中,(x,y)(x,y)为平面上一点,(x',y')(x′,y′)为平面上另一原创 2022-05-26 15:46:49 · 377 阅读 · 0 评论 -
上海市计算机学会-闯关升级
上海市计算机学会竞赛平台 | YACS 2020nian 7月月赛丙组小爱可以玩两种游戏,每种游戏各有 n 关,每过一关升一级,通过每一关的时间都不一样。小爱玩游戏的时间有限,为一个给定的整数 t。请问她应该如何分配时间,才能让升级的次数达到最大?输入格式第一行:两个整数n和t;第二行:n个整数a1,a2,…,an,表示第一个游戏每个关卡的通关时间;第三行:n个整数 b1,b2,…,bn,表示第二个游戏每个关卡的通关时间。样例输入:4 226 ...原创 2022-05-11 01:10:46 · 1008 阅读 · 0 评论 -
上海市计算机学会-评测队列
挺烦的原创 2022-05-09 22:32:01 · 1056 阅读 · 0 评论 -
上海市计算机学会-巧妙的数
题目描述上海市计算机学会竞赛平台 | YACS如果一个十进制正整数能够被它的每一个非零数码整除,则称它为巧妙的数,譬如 102102 是一个巧妙的数,因为 102 能被 1 与 2 整除,而 2021 不是,因为它不能被 2 整除。给定一个正整数 n,请判定它是否为巧妙的数。原创 2022-05-09 18:02:52 · 1140 阅读 · 0 评论 -
上海市计算机学会-买二送一
上海市计算机学会竞赛平台 | YACS题目描述有n 本书,第i本书的价格为ai,小爱想把这些书全部买回家。现在正有一个买二送一的促销活动,即,凡是购买两本书,就可以免费带走第三本书,只要免费书的价格不超过两本付费书中任意一本的价格即可。请问,最少需要多少钱,才能将 n 本书全部买回家?这个还是比较简单的,免费的书,不能超过前面两本任意一本,就是把书的价值排序,从大到小排序后,每买2本,免费1本n=int(input())a=list(map(int,inpu...原创 2022-05-09 17:37:07 · 1107 阅读 · 0 评论 -
上海市计算机学会-三倍子串
上海市计算机学会竞赛平台 | YACS这个题目先要理解一下;95764,被3整除的子串;9,957,9576,57,576,6这些子串换成前缀和的形式,9 957 9576 57 576 6 9 21 27 12 18 6 其它子串的形式:95764,5,5764,7,76,764,64,4 95764 5 5764 7 76 764 64 4 前缀和...原创 2022-05-07 14:23:31 · 629 阅读 · 2 评论