自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 usaco training section1.4:Ski_Course_Design

一开始我想直接对列表排序,用最高值减最低值得到差值,两边都减差值的均值,这样忽略了只减最高值或最低值的情况,并且只能减整数,均值不是整数的情况难处理,排除这种方法。这题应该用贪心更好做,枚举所有可能的上界和下界,大于上界的山就减到上界的大小,计算花费;记录不同上下界的花费,找最低即可。本题要求找使最高的山和最低的山之间的差值不超过17,还要使花费最少。

2025-12-13 10:51:24 189

原创 usaco training section 1.4:Wormhole

这道题很难,首先看清题目的条件,虫洞两两配对,2<=n<=12;其中牛只朝x轴正方向走。要找出导致死循环的配对方法有多少种,可以使用递归的方法找出所有可能,并设计函数判断是否死循环。2.创建列表next_right,记录第i个虫洞右边最近的同y虫洞是第j个。3.用递归找出所有可能并判断是否进入死循环(具体见代码注释)4.定义判断是否死循环的函数(具体见代码注释)1.数据读入,读入以后按x排序。

2025-12-11 16:17:49 142

原创 usaco training section1.4:Combination_Lock

注意range(n+a-1-2,n+a-1+2+1):其中n-1意为把下标调整到list1中间部分的1-50,这样才能实现圆盘功能;a-2和a+2+1对应(每个转盘上的数字都与一个合法的号码组合中相应的数字相距两个位置以内时,锁也会打开)题目给出的容错性。n>1:先准备从1到n的列表再*3,实现圆盘的效果。这道题要想求出有多少种密码,暴力枚举即可,其中要避免密码重复,在枚举时注意题目给出的容错性,还要注意密码盘上只有1个数字,即n=1的情况。2.分情况判断,n>1进入正常流程,n=1的情况密码就只有1种。

2025-12-06 14:03:43 193

原创 usaco training section1.4:Prime_Cryptarithm

这道题要算有几个Prime Cryptarithm,就要通过给定的数字组合出所有的3位数和2位数,还要检查步骤中所有数是否都来自给定的数,还要检查答案是否为4位数,中间步骤的两个数是否为3位;2.定义两个函数检查是否符合所有数字来自给定的数,位数是否符合。1.读入数据,并将所有可能的数分别加入两个列表。3.计算出数并判断就好了。

2025-12-06 11:09:00 234

原创 usaco training section1.4:Barn_Repair

那么我们可以把最优解中的两个木板在小空洞处合并,再在大空洞处断开——这样木板数量不变,但覆盖的总长度更小!贪心策略:先用一块木板覆盖所有有牛的牛棚,牛与牛之间视为间隙。4.通过for循环让最小长度减去空隙,注意循环次数,如果可以添加的木板数量(M-1)大于空隙数量,就得循环空隙数量的次数,就是说一个牛一个木板的情况。2.数据准备与处理:定义最小长度(初始为覆盖所有有牛牛棚的长度)定义一个空列表用于接收牛与牛之前的空隙。3.计算空隙:记得要多减一个1才是真正的长度,然后将空隙加入列表,将列表排好序。

2025-12-05 17:18:31 155

原创 usaco trainging section1.4:Mixing Milk

2.遍历每个奶农,将需要的牛奶量减去奶农有的量,并将花费的金额加到计数器上,直到需求量减为0,就完成了。这题很简单,想要花费最少的钱买到足够的牛奶,只要把每位奶农给出的价格按从低到高排序即可。1.录入数据,并将奶农给的价格和数量转换为二维列表并按价格排序。3.输出(别忘记换行符)

2025-12-05 15:59:16 205

原创 usaco training section1.3:1.3Dual_Palindromes

这个双回文数和上一题Palindromic_Squaresle类似,可以沿用进制转换函数的代码,再加一个函数判断是否为双回文数就行。再输出时,再定义一个计数器用来统计有几个双回文数,通过while循环实现找出n个双重回文数的要求。定义一个计数器,for循环遍历进制,每转换一次就判断是否为回文数,是就加一,加到二就直接结束。

2025-12-04 18:18:23 223

原创 usaco training section1.3:Palindromic_Squares

python内置方法只支持固定几个进制的转换,可以自己定义一个函数用来进行转换:定义一个字符串包含从0到J所有字符,对应进制B[2,20]的范围;再定义一个空字符result;while循环下,用 (传入的数 % B进制)作字符串的索引,把对应的数加到result中,再通过整除更新数num,当。通过for循环遍历[1,300],用if判断range[::-1]后的数是否等于原来的数,是就输出就完成了。题目的核心是:将数的平方转换为输入B进制表示的数,再判断是否是回文数。

2025-12-04 16:15:07 179

原创 usaco training section1.3:Transformations

写出来就能发现原来[i][j]处的元素变到了[j][n-1-i]处,显然这是顺时针旋转90度的情况。其他情况都建立在旋转90度的基础上。3.通过if、elif结构判断属于哪种变换,题目要求如果可以使用多个变换, 选择上面数字最少的那个,就把小号变换放到上面。这道题就是要判断图形通过哪种方式变换的,把题目给的案例写出来就能看到规律。2.定义多个函数,一个函数代表一种变换,这样后续的判断更清晰。

2025-11-29 18:44:29 249

原创 usaco training section1.3:Milking Cows

题目要求计算出至少有一头奶牛被挤奶和没有奶牛被挤的最长时间间隔。

2025-11-29 15:48:40 262

原创 usaco training section1.3:name that number

usaco section1.3name_that_number题解

2025-11-28 22:14:59 283

空空如也

空空如也

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

TA关注的人

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