
常用技巧
文章平均质量分 55
wlhz2017
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #829F CF1753F. Minecraft Series
n*m(e4)个格子的广场 分布k(e6)个非0整数 一个格子可能多个整数ans正方形定义为内部存在t个不同整数 加上0能满足一个连续数列 比如-1,0,1枚举正方形左上角 滑动窗口求满足的情况窗口内计数用set 维护一下原创 2022-10-25 21:12:41 · 118 阅读 · 0 评论 -
hdu 5613 /BC 69D Baby Ming and Binary image
开始时漏看了题意 没看到第一行和最后一行是空的 还以为要网络流什么的 后面仔细看了一下 才看懂 白书上有一道类似的做法枚举第一排的摆放 推出剩余排 注意最后要坚持 最后一行和一列的是否满足输入矩阵要求 得到的ans 最后一行和一列必须为0#include#include#include#include#include#include#include#include#incl原创 2016-01-27 09:59:59 · 532 阅读 · 0 评论 -
HDU 5603/BC 67D the soldier of love
不是很擅长做这类题目 所以直接看了官方题解 觉得非常巧妙 首先是转换为有多少个线段不包含点 然后将点和线段离线处理 每个线段右端点存其左端点位置 每组点的每个点存其前一个点的位置 这样我们需要统计的线段一定位于两个点之间 遇到每个右端点 就在其左端点的位置加一 这样查询两个点之间左端点的数量就可以了 #include#include#include#include#include原创 2016-01-29 22:38:59 · 561 阅读 · 0 评论 -
HDU 5604/BC 67E merge
首先要算清对于某一个集合时的最优方案 即在其中间值附近的两个点上 他们做最后一步移动 两个点分别为 a[i]和a[i+1] 则 最后答案为 max(a[i]-small, big-a[i+1])+(a[i]+a[j])/2;所以如果把集合放在set里 那么我们只要找到(small+big)/2附近的几个点 计算一下即可 对于集合的合并 学习了启发式合并 启发式 即将小的向大的上合并 可原创 2016-01-30 16:29:10 · 524 阅读 · 0 评论 -
HDU 5596/BC 66B GTW likes gt
很巧妙的一道题 首先在要发功影响的时间点添加标记 然后从后往前扫 同时累计标记 并且记录两组中已经扫过的最大值 扫到当前位置时 就可以进行统计了#include#include#include#include#include#include#include#include#include#include#include#include#define INF (1ll原创 2016-01-30 18:09:14 · 364 阅读 · 0 评论 -
HDU 5806/BC 86C NanoApe Loves Sequence Ⅱ
题解:满足第K大数大于等于m,也就存在k个大于等于m的数,所以滑动窗口即可,对于每个位置作为右端点求其最右的左端点。累加即可。#include#include#include#include#include#include#include#include#include#include#include#include#include#define mem(x,y) m原创 2016-08-07 16:17:24 · 326 阅读 · 0 评论