上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 32 下一页
摘要: 题目链接 #题目大意 问约瑟夫游戏第m个出局的人的编号。 #解题思路 首先需要知道怎么递推求出约瑟夫游戏最后赢家的方法,可以参考这个博客。 对于第m个出局的人,他在第m轮的位置肯定是(k-1)%(n-m+1)+1,然后人数从n-m+1递推到n的过程中,每一步都要把当前赢家的位置往后挪k个并取模,但是 阅读全文
posted @ 2021-03-01 20:25 shuitiangong 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 题目链接 #题目大意 你可以将一个排列的前k个数字按升序排序,有多少种长度为n的排列满足其的lis的长度至少为n-1。 #解题思路 将原来的排列按升序排序。然后通过置换其中的数来考虑方案数。 首先如果前面k个数字都是1-k,那么后面n-k个数字的lis的长度只要不小于n-k-1就行了,而n-k个数字 阅读全文
posted @ 2021-03-01 20:12 shuitiangong 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 题目链接 #题目大意 一共需要n种物资,每个物资$a_i$个。还可以使用加速器,当产出t个s产品之后会奖励一个u产品,奖励一次之后就不会再奖励了,并且奖励的产品也会算进产出里然后使用其他的加速器。 #解题思路 因为一次只会产生一种奖励,并且奖励还可以产生连锁反应,所以使用一次加速器,要么会使结果减1 阅读全文
posted @ 2021-02-27 22:36 shuitiangong 阅读(84) 评论(0) 推荐(0) 编辑
摘要: include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e6+10; const int maxm = 2e5+10; char str[maxn], res[maxn]; int n; 阅读全文
posted @ 2021-02-25 20:51 shuitiangong 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 题目链接 #题目大意 给你一个10进制数a,问a的阶乘在b进制下末尾有几个0。 #解题思路 结尾有几个0其实就是能被b整除几次,很显然,这个阶乘每乘出一个b的倍数,末尾的0就会增加。我们将b分解质因数,求出这个阶乘中包含质因数的个数,然后除以它们在b中的次数然后取最小就行了。 #代码 const i 阅读全文
posted @ 2021-02-25 16:16 shuitiangong 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 题目链接 #题目大意 给你一堆债务关系,债务关系之间可以转移,让你简化债务关系,以使得债务关系中的债务之和最小。 #解题思路 本来以为必须是本来就存在债务关系的一个集合之间才能互相转移,没想到没关系的也能转移。 比如说这组数据: 4 2 1 2 12 3 4 8 就可以转化为: 3 2 8 1 2 阅读全文
posted @ 2021-02-25 15:57 shuitiangong 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 题目链接 #题目大意 从任意一个位置开始,将与这个位置上数字相同的数字改变成任意的数字,最后使所有数字都相同,问最少需要多少次。 #解题思路 数据量很明显可以用$n^2$做法,我们先让所有连续相同的数字都变成一个,方便转移。考虑区间dp,设dp[l][r]为区间[l,r]的最少代价,如果两端字符相同 阅读全文
posted @ 2021-02-25 15:35 shuitiangong 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 题目链接 #题目大意 给你一个无向图问是否可以构造一颗生成树,使1号点的度数为d。 #解题思路 先把与1号点相连的边的权值都改成INF,其他是0,这样的话如果还用权值为INF的边,说明这些边是必不可少的,如果使用的权值为INF的边大于d,必定无解。否则,将之前必须用到的与1相连边的权值设成-1,其他 阅读全文
posted @ 2021-02-23 23:22 shuitiangong 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 题目链接 #题目大意 从n个人里面挑几个分成不大于k个组,要求每组中的任意两个数相差不超过5,组与组之间独立,问最多选出多少人。 #解题思路 比较经典的dp,排序之后二分出前面不小于当前数-5的数字有多少,然后写n*n的dp就行了。 #代码 const int maxn = 5e3+10; cons 阅读全文
posted @ 2021-02-23 23:12 shuitiangong 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 题目链接 #题目大意 求n个数中长度不小于k的子段的最大中位数 #解题思路 考虑一下单调性,如果一个数使一个子段的中位数,那么在这个子段里面不小于他的数肯定大于k/2,我们如果二分这个数的大小的话,很明显是有单调性的。check的话,就把不小于二分的数的位置设为1,否则为-1,然后用前缀和处理,在当 阅读全文
posted @ 2021-02-23 20:59 shuitiangong 阅读(91) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 32 下一页