- 博客(9)
- 收藏
- 关注
原创 550C. Divisibility by Eight
题目大意:给一个100位以下的数,通过删除一些位的数字(也可不删),使得结果可以被8整除。题解:我们会发现1000正好是8的倍数,(每增加1000,后三位都是循环的)那么992,1008,1992,2992,18992,19008,都是8的倍数,所以只要算出1000以内所有8的倍数,所有大于1000的数都可通过删除若干位使得成为1000以内的数。直接暴力循环就好啦!AC代码:
2023-02-14 21:22:06
122
原创 580C. Kefa and Park(DFS)
题目大意:小k的家在一棵树的根节点上,这棵树的每个叶子节点上有一个饭店,并且在每一个节点上可能有一只猫,小k很害怕猫 因为他是个老鼠,在他从家去饭店的路径不能有连续超过m只猫,求小k可以去到的饭店数量。题解:树上深搜(dfs)。用vector向量存图,搜索每一条路径,满足条件的计入答案。
2023-02-14 14:12:49
130
原创 1475C. Ball in Berland
题目大意:从给定的舞蹈组合中,选择两对去参加舞蹈表演,这两队中不能有公共的小哥哥或小姐姐,坚持一夫一妻制哈。求出所有可能的情况,输出数量。题解:记录每一个小哥哥和小姐姐的出现次数,遍历每一对,记录满足条件的对数(总数减去两个出现次数加一),因为每一对都加一遍,所以导致组合重复,最终结果除以2就好啦。AC代码:
2023-02-13 17:08:02
127
原创 414B. Mashmokh and ACM(DP)
题目大意:从1~n中选择k个数,使得相邻两个数间可以整除(即a[j+1] % a[j] = 0)。求出满足条件的集合数,结果对1e9+7取余。题解:动态规划。dp[i][j]:i个数,最大数是j,全部的集合数。 动态转移方程:dp[i][j] = dp[i-1][j的全部因子]。AC代码:
2023-02-10 17:11:44
131
原创 1350B. Orac and Models(DP)
题目大意:给定一个数组,从中选定一个递增子序列,并且子序列的下标可以整除相邻的下一个(例如选择数组中的s[i] 和s[j],需满足s[j] > s[i], j % i == 0)。求最大可以选择的子序列长度。题解:动态规划,dp[i]:以第i个元素开头,最多可以选择的子序列长度。运用两层循环,因为大于n/2不可能满足整除的条件,并且以前面开头的可以包含后面,所以第一层从n/2到1遍历;为满足下标整除条件,内层循环每次自增i。结果取过程中的最大值就好啦。AC代码:
2023-02-10 14:19:46
114
原创 1825C. Fadi and LCM(gcd)
题目大意:给定一个数x,输出a, b满足lcm(a, b) = x(即a, b的最小公倍数为x),并且max(a, b)最小。题解:经分析,得知a, b互质,即gcd(a, b) = 1(a*b = x),为使结果最小,需从sqrt(x) 开始遍历。OK,这就解决了,上代码!
2023-02-09 14:36:44
137
1
原创 1374D. Zero Remainder Array
题目大意:给定一个数组和一个数k,初始x = 0,每一步可以有两种操作,将x加到某一个数上并且x自增(即a[i] += x++;),或者只是x自增。尽量通过最少的操作次数,使得数组中每一个数都可以整除k(即a[i] % k == 0)。题解:因为一步操作只能对一个数增加,所以相同的数字需要在下一次满足条件时增加。对于数组,先求出每一个数的目标数字,目标数组与原数组差的最大值加一就是最小操作步数。AC代码:(memset会时间超限呦)
2023-02-09 12:19:59
123
原创 1195C. Basketball Exercise(DP)
题目大意:从两队中依次选择球员,不可连续选择一队,也可不选,使最终选择的队员总身高最大。题解:对于每一个下标,有三种操作:选一号队员,选二号队员,不选。j = 1,第i号选择一号队员的最大值;dp[i][j]: j = 0,第i号不选的最大值;j = 2,第i号选择二号队员的最大值。
2023-02-08 19:49:34
135
1
原创 1365C. Rotation Matching
题目大意:通过若干次将b数组头元素移至数组末尾(反过来也一样哈,不影响做题),求与a数组相同点(位置与元素的的值)的最大数量。题解:记录数组a的每个元素位置,计算出数组b元素移动步数(保证同方向),取移动步数出现最多的值为答案。
2023-02-08 16:47:12
140
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人