Acwing
清泠,
慢慢成长的小白白,
展开
-
Acwing — 贪心题整理
一直以为自己的贪心还凑合,结果直接被干傻了题目链接解题思路:这个题一开始想的差不多,就是没敢敲,就是为了让他们支出的钱数与平均值的差值最小,首先我们可以求出平均数,然后排下序然后我们开始遍历,首先我们看第一位,如果他大于等于平均数,那么结果肯定为0(因为后面的都可以拿出平均数的钱)如果小于,那么让他拿出自己所有的钱,然后剩下的钱,让后面的人再平摊,也就是(s- ai)/ (n -...原创 2020-04-11 23:39:29 · 167 阅读 · 0 评论 -
AcWing 1230. K倍区间
题目链接 解题思路:给与n , k ,然后给与 n 个数,让我们在 n 的序列中找出一段值 的和,使这个值为 k 的倍数,找出有多少个子序列符合这个要求。首先我们想到前缀和,求出前缀和,然后利用 s[ r ] - s[ l -1 ] ,判断这个值是否为k 的倍数(利用取余即可),但是需要双重 for 循环,时间复杂度哦 1e10,明显超时。所以我们想到一重 for 循环, ...原创 2020-02-03 13:17:40 · 97 阅读 · 0 评论 -
AcWing 99. 激光炸弹
题目链接 解题思路:给予 n 个点,和爆炸范围 R,我们能炸 R * R 个点,利用前缀和,首先预处理出前缀和,然后再对每一块 R * R 区域进行计算 ,求出最大值。(理解好炸的范围,以及处理好坐标的右下端点) 代码:#include <cstdio>#include <iostream>using namespace std;co...原创 2020-02-03 12:58:32 · 196 阅读 · 0 评论 -
AcWing 1227. 分巧克力
题目链接 解题思路:给予 n 块巧克力,最少分为 k 块(完全相同的正方形),求最大的边长。对于每一块巧克力,设定 长为 h,宽为 w,我们如果要切变长为 x 的正方形,那么我们最多切(h / x) * (w / x) 所以我们只需要将 n 块巧克力的计算值相加 判断是否大于等于 k 即可。因此利用二分来找 x 的值。 代码:#include <cstdio...原创 2020-02-03 12:39:36 · 266 阅读 · 0 评论 -
四平方和 —— AcWing 1221
题目链接 解题思路:1. 首先可以用暴力(暴力耗时最少),直接三重 for 循环。2. 正常解法是二分,首先我们先求出c ,d (a , b也可),然后将符合条件的存入结构体中,进行排序,然后再求出 a , b 然后计算出 t = n - a* a - b * b ,查找结构体中是否存在符合 t 的数,如果存在进行输出。 代码:#include <cmath>...原创 2020-02-03 12:24:59 · 272 阅读 · 0 评论 -
机器人跳跃问题 —— AcWing 730
题目链接 解题思路:有n + 1 座建筑,机器人从第一座建筑开始,能量为 E ,然后跳到下一座建筑,如果建筑的高度 hi 小于能量值E ,那么能量值将会增加 ( E - hi ),否则降低 ( hi - E )。因此综合式子为(2 * E - hi )。对于每一个选值, 可以进行遍历查询是否符合要求,如果遍历过程中出现 E < 0,那么一定不符合要求,直接返回 false , ...原创 2020-02-03 11:18:17 · 235 阅读 · 0 评论 -
带分数(递归) —— Acwing
题目链接 题目大意:给定一个n,在1 —— 9 中,求符合 n = a + c / b 有多少。a、b、c要求包含1——9且只能出现一次。 解题思路:递推枚举,先从 a 开始枚举 ,然后 c 进行枚举,根据式子 n = a + b / c, 求出b = n * c - a * c (爆 int , 开 long long) ,然后判断a , b , c 中数...原创 2020-01-26 23:05:28 · 311 阅读 · 0 评论 -
递归实现组合型枚举 —— Acwing
题目链接 题目大意:给予n,m 在 n 中选 m 个数,进行组合(从小到大)输出按照让字典序最小解题思路:利用递归思想,从小到大递归(保证字典序最小),利用两个变量u,sta,u代表位数,sta代表当前位置的值的大小(让下一位比他大,就实现了单增),然后可以进行剪枝。(如果后面数值的数量不够,那么直接返回)(关键点添加在注释中)代码:(借鉴Acwing的y总)#include &...原创 2020-01-26 22:23:14 · 206 阅读 · 0 评论