思维
文章平均质量分 66
从入门到入坑
等到OneNote容量不够, 再把存货搬上来
展开
-
AcWing 1241. 外卖店优先级(暴力的优化:压缩区间)
题目描述原题链接分析先考虑暴力做法: 对每一个时间点进行模拟, 如果有订单就增加相应店铺的优先级, 否则减少响应店铺的优先级, 时间复杂度大概为O(m2)O(m^2)O(m2),而数据范围为1e51e51e5, 肯定过不了全部数据下面考虑如何优化暴力?注意到虽然时间范围是[1,1e5][1,1e5][1,1e5],但总订单数为1e51e51e5, 说明在某一个时间段内都没有订单,我们便可以对这种没有订单的时间段压缩成一个点, 统一处理, 从而将时间复杂度度降至O(m)O(m)O(m)具体原创 2021-03-27 15:13:50 · 136 阅读 · 0 评论 -
AcWing 1211. 蚂蚁感冒
题目描述原题链接分析思路参考大佬博客将蚂蚁碰撞后掉头,看做穿过先考虑一般情况:以第一只感冒的蚂蚁aaa作为分界线, 不管aaa向左或是向右走aaa左边向右走的蚂蚁一定会被感染,数量记为leftleftleftaaa右边向左走的蚂蚁一定会被感染,数量记为rightrightright则感染的数量为 left+right+1left + right + 1left+right+1但是存在一种特殊情况:aaa左边没有向右走的蚂蚁或者aaa右边没有向左走的蚂蚁即leftleftlef原创 2021-03-21 16:12:38 · 74 阅读 · 0 评论 -
AcWing 1221. 四平方和 (枚举 + 二分/哈希)
题目描述原题链接分析Y总视频讲解(需要权限)实现#include <cstdio>#include <iostream>#include <algorithm>using namespace std;const int N = 2e4 + 9, M = 1e5 + 9;int n, m, p[2*N]; struct node{ int a, b, c;};node e[M];bool cmp(node x, node y原创 2021-03-21 13:08:51 · 117 阅读 · 0 评论 -
AcWing 122. 糖果传递 (贪心 绝对值不等式)
题目描述原题链接分析也可参考Y总视频讲解实现#include <cstdio>#include <iostream>#include <algorithm>using namespace std;const int N = 359;const int M = 49;int n, m;int a[N], f[M][M][M][M], cnt[5];int main(){ cin >> n >> m;原创 2021-02-18 16:07:04 · 104 阅读 · 0 评论 -
AcWing 1230. K倍区间
题目描述原题链接分析及实现60%做法O(n2)60\%做法 O(n^2)60%做法O(n2)预处理一下前缀和, 然后枚举[i,j][i,j][i,j]的区间和, 检查是否为KKK倍区间#include <cstdio>#include <iostream>using namespace std;const int N = 1e5 + 9;int n, k;int sum[N];int main(){ cin >> n >&g原创 2021-02-17 22:47:21 · 186 阅读 · 0 评论 -
计蒜客 A2236 马的管辖 暴力枚举 状态压缩
题目描述原题链接分析结果填空题, 不用考虑时间复杂度,直接暴力枚举每一种方案5×55×55×5的棋盘, 每一个格子有放或不放马两种状态, 所以一共需要枚举2252^{25}225种方案每一种方案的具体放法, 压缩在一个数中(通过遍历数的二进制的前252525位得到具体的放法)检查每种方案是否合法(遍历所有的马, 判断马是否管辖了所有的格子,注意别马腿的情况),从而得到方案数此题状态压缩的做法, 和AcWing 95. 费解的开关类似答案最少用999匹马, 共909090种原创 2021-01-23 23:17:36 · 256 阅读 · 3 评论 -
AcWing 95. 费解的开关 枚举 状态压缩 递推
题目描述原题链接分析我们假设第111行的状态已经确定, 以此递推出下面444行的状态由于题目需要满足第111行全为111, 所以只能通过操作第222行来改变第111行的状态, 使之全为111. 同时, 得到第222行的某种状态同理, 由于题目需要满足第222行全为111, 所以只能通过操作第333行来改变第222行的状态, 使之全为111. 同时, 得到第333行的某种状态同理, 由于题目需要满足第333行全为111, 所以只能通过操作第444行来改变第333行的状态, 使之全为111原创 2021-01-19 22:54:01 · 158 阅读 · 0 评论 -
AcWing100.增减序列 差分+贪心
文章目录题目描述分析实现题目描述原题链接分析题目要求通过对区间[l,r]的操作(+1或者-1)使数列中数都一样.我们发现满足上述要求的数列的差分数组的a[2…n]一定是[0,0,0,…]. a[1]是val据此, 我们可以将问题转化成经过最少次对区间[l,r]的操作使差分数组a[]变为[val,0,0,0,…]下面是贪心的部分:对原数列的区间[l,r]操作(如+1), 其差分数组会受影响: a[l] += 1, a[r+1] -= 1对于这个差分数组,我们可以对区间[l,r]有四原创 2021-01-17 15:37:52 · 225 阅读 · 0 评论 -
石油大 17倍 二进制乘法
文章目录题目描述输入数据范围输出想法实现题目描述学习程序设计的Lanlan记得老师给她布置的第一个任务是:输入一个数N,然后输出17*N的值。当然这个任务非常简单,经过一段时间的学习,兰兰有了一些的进步,老师又布置了一个类似的任务,只是变更了一个条件,输入的N是一个二进制数,输出的值也要是二进制表示的。现在请帮助Lanlan完成这个任务 (还是要包装一下题目的)输入一个二进制表示的数N数据范围30%的数据N的位数小于25位50%的数据N的位数小于50位100%的数据N的位数小于10原创 2020-12-02 23:04:01 · 228 阅读 · 0 评论 -
石油大 HD阶乘 求阶乘末尾0的个数
文章目录题目描述输入输出想法实现题目描述n的阶乘定义为n! = n ∗ (n − 1) ∗ (n − 2) ∗ … ∗ 1。n的双阶乘定义为n!! = n ∗ (n − 2) ∗ (n − 4) ∗ … ∗ 2或n!! = n∗ (n − 2) ∗ (n − 4) ∗ … ∗ 1,取决于n的奇偶性。但是阶乘的增长速度太快了,所以我们现在只想知道n!和n!!末尾的0的个数。输入一个正整数n, n ≤ 107输出两个整数, 分别为n!和n!!末尾0的个数。想法阶乘太大了, 直接原创 2020-12-02 22:43:16 · 417 阅读 · 0 评论