摘要: 题意 给出长为n的序列,有两个人,轮流拿最左边或最右边的,且两个人的拿法的是最优的,写一个程序,判断第一个人和第二个人分别能拿到的的最大值。 做法 这道题的内存足够大,我们可以用动态规划,数组f [ i ] [ j ]表示从i到j这一段序列先手的比后手的多拿多少分。因为只能拿最右边的和最左边的,所以 阅读全文
posted @ 2022-02-13 10:50 LikC1606 阅读(70) 评论(0) 推荐(0)
摘要: 题意 给出长为n的序列,有两个人,轮流拿最左边或最右边的,且两个人的拿法的是最优的,写一个程序,判断第一个人能拿到的的最大值。 做法 动态规划,表示从i开始拿长度为L的序列的先手比后手多的分值因为内存的关系,所以我们要用滚动数轴,因为递推的值只与前一个值有关。拿法只有两种,所以只要max求最大值即可 阅读全文
posted @ 2022-02-13 10:49 LikC1606 阅读(56) 评论(0) 推荐(0)
摘要: 五年OI一场空,不开LongLong见祖宗 题意 你的任务是输出第i(1<=i<=长度为N的二进制数的个数)小的(注:题目这里表述不清,实际是,从最小的往大的数,数到第i个符合条件的,这个意思),长度为N,且1的位数的个数小于等于L的那个二进制数。 做法 数论加动态规划,f [ i ] [ j ] 阅读全文
posted @ 2022-02-12 16:33 LikC1606 阅读(52) 评论(0) 推荐(0)
摘要: 题意 有N头牛,P个牧场,C个道路,给出牛在的牧场和牧场之间的道路,求出所有牛到同一个牧场(最优解)的最短路。 做法 因为这道题牧场很多,但边的数量较少,所以我们可以用SPFA做这道题,用一个循环队列,用链表存牧场之间的道路,然后模拟从所有牧场出发的所有情况,求最短路即可。 代码 #include< 阅读全文
posted @ 2022-02-12 16:20 LikC1606 阅读(59) 评论(0) 推荐(0)
摘要: 题意 一块初始的2*4的模板,有三种变动方式,给定目标状态,求出最少要多少步变成目标状态,并输出变动方式。 做法 第一眼看这题的时候,心里就想:这不就是BFS吗,居然有提高+的水准(最多普及-),但这个内存是真心恶心,如果开八维存下每种数量的话肯定MLE,所以我们可以用一个24位的二进制存下一种方案 阅读全文
posted @ 2022-02-12 16:18 LikC1606 阅读(32) 评论(0) 推荐(0)
摘要: 题意 就是有三种饲料,让你输入在每种饲料中大麦,燕麦和小麦各自的比,求出如何混合才能成为给出的完美饲料。 做法 为了方便诉说,我们先将完美饲料的比记作n1:n2:n3,其实也就是求在用最少的饲料的情况下n1t:n2t:n3*t=n1:n2;n3是存在的,我们可以把混合的饲料是原先饲料的t倍,前提是除 阅读全文
posted @ 2022-02-12 16:17 LikC1606 阅读(127) 评论(0) 推荐(0)
摘要: 题意 有五个轮子,每个轮子都是360度(0~359),到了360度就会变成0度,每个轮子上都有 W个洞(1 <= W <= 5),判断在什么时候,五个轮子上的洞会有1度重合,光能后透过 做法 模拟加上暴力枚举轻松过,只要判断在一个点上什么时候有洞会重合即可 代码 #include<bits/stdc 阅读全文
posted @ 2022-02-12 16:16 LikC1606 阅读(57) 评论(0) 推荐(0)
摘要: 题意 也就是字面上的意思,求出N!阶乘的最右边的非零位的值。 做法 用模拟加数论的方法,因为想要在末尾出现一个0,那么就一定会是10的倍数,而10=2*5,所以只要看1~N中出现5的次数即可,因为2的倍数的数量一定是比5的倍数的数量多的。然后在循换中每次mod10求个位数,因为任何正整数相乘的个位数 阅读全文
posted @ 2022-02-12 16:15 LikC1606 阅读(141) 评论(0) 推荐(0)
摘要: 题意 丑数的定义:对于一给定的素数集合 S = {p1, p2, ..., pK},考虑一个正整数集合,该集合中任一元素的质因数全部属于S。这个正整数集合包括,p1、p1p2、p1p1、p1p2p3...(还有其它)。该集合被称为S集合的“丑数集合”。注意:我们认为1不是一个丑数。 我们要做的就是给 阅读全文
posted @ 2022-02-12 16:15 LikC1606 阅读(138) 评论(0) 推荐(0)
摘要: Prim算法 题意 在n个农场间铺设光纤(也就是边),使所有的点形成一个连通图,求出所有边的值(最小花费) 做法 贪心模拟,从任意一个点出发,寻找边最短的一条,sum(初始值为0)加上边的值,在将这两个点看做一个整体,寻找他们周围边最短的一个点(注意:要用一个数组记录点是否处于这个整体中),直到找到 阅读全文
posted @ 2022-02-12 16:14 LikC1606 阅读(54) 评论(0) 推荐(0)