随笔分类 -  C题

上一页 1 2 3 4 5 6 7 ··· 13 下一页
摘要:思路: 看到数据范围: 发现可以用 0n^2的 时间复杂度 于是考虑DP ,具体的用区间DP, dp[i], 表示以ai作为目前的相等值且保留ai 的1-i里面的最大长度 暴力枚举每一个前面每一个aj 然后暴力删除 j-i 里面的值 性质: 当L-R的区间可以被删除 1 区间位偶数 2 众数的数量< 阅读全文
posted @ 2023-04-18 10:32 VxiaohuanV 阅读(22) 评论(0) 推荐(0) 编辑
摘要:思路: 一步一步的拆解分析 有一个min(al...r) 通过这个东西那么就可以 根据这个ai值分区间, 可以通过单调zhai处理 当然也可以去利用启发式合并处理, 在处理区间的时候, 因为这个有正负, 要分类讨论 正 就是最大 负数 就是最小 遇到区间包含某个值的区间最大最小 那么就利用前缀和+s 阅读全文
posted @ 2023-04-17 18:56 VxiaohuanV 阅读(23) 评论(0) 推荐(0) 编辑
摘要:思路 1 换根DP: 第一次dfs 预处理出每一个儿子树的 最长距离1 和次长距离2 第二次开始换根DP, 本点到其他 点的距离最长 : 分别考虑 一个是父亲上下来的点len3, 一个是兄弟节点, 就是父亲的最长距离len1或者 次长距离len2, 根本不用换根dp, 直接就是每一个点 的 最长+第 阅读全文
posted @ 2023-04-17 16:32 VxiaohuanV 阅读(35) 评论(0) 推荐(0) 编辑
摘要:本题大意:给出n,m,s,t,k,n个点,m条路,求s到t的最短路,并且最多k条路免费,然后给出m行,u,v,w,代表u到v有一条权值为w的双向路。 思路: 就是dj最短路 + 一个dp维度的处理, dp[i][j], 到第i个节点用了多少个免费的路径的最短路径 阅读全文
posted @ 2023-04-17 16:11 VxiaohuanV 阅读(21) 评论(0) 推荐(0) 编辑
摘要:思路 从右往左枚举 遇到2个00,就看左边前缀和相同的个数就ok了 有一些小细节要注意处理一下 阅读全文
posted @ 2023-04-17 16:08 VxiaohuanV 阅读(446) 评论(0) 推荐(0) 编辑
摘要:题解: 认真读题, 理解题目意思,然后提取关键性质 发现性质: 只要遇到 没有在b中出现的值, 都有余力可以去吧他往后面交换 , 然后在 -1的时候就有这么多的选择了 组合数而已, 用过这个数就-- #include<cstdio> #include<iostream> #define MAXN 2 阅读全文
posted @ 2023-04-17 10:24 VxiaohuanV 阅读(20) 评论(0) 推荐(0) 编辑
摘要:思路: 保存有用信息,删除多余信息, 每一次查询会给出 L,R内的所有数, 那么如何利用这个条件, -> 统计在 L,R 区间的数的个数 进一步发现, 只有位置不变的数会在这个区间内, 统计在 L,R 区间的数的个数才会奇数, 其他情况都是偶数 这里可以去分类讨论一下 因此以此来二分即可 阅读全文
posted @ 2023-04-17 09:30 VxiaohuanV 阅读(12) 评论(0) 推荐(0) 编辑
摘要:题目大意:对一个序列,如果其任意子区间都有至少一个数只出现一次,那么则称这个序列为non-boring的,否则为boring 思路: 中 数 只出现一次, 极值对关于区间的点对问题,可以通过这个点把区间分成2个部分,分治解决 预处理每个数上一次出现的位置以及下一次出现的位置 对一个区间,如果有一个数 阅读全文
posted @ 2023-04-13 16:24 VxiaohuanV 阅读(21) 评论(0) 推荐(0) 编辑
摘要:题目大意: 给出n堆石头, 给出每堆石头的数量, 问有多少对合法的 l,r 使得L,R 区间内的最大值的*2 < =区间总和 思路: 从最大值入手, ->为了方便处理 就利用分治 去 处理出当前的最大值要考虑区间范围是那些 首先通过st 表来预处理 出 l,r 的最大值的位置 分治 dfs(l,r) 阅读全文
posted @ 2023-04-13 16:14 VxiaohuanV 阅读(13) 评论(0) 推荐(0) 编辑
摘要:题目大意: 给出一个矩阵, 和M ,找到一个最大的子矩阵,使得里面的最大值-最小值的差值小于 M 思路: 关键信息是最大和最小, 就保留这个信息即可 然后考虑如何枚举每一个矩阵? 枚举矩阵的上下边界, 然后在考虑矩阵的左右边界, 左右边界处理的时候, 这一列的最大最小值,可以通过枚举上下边界的时候线 阅读全文
posted @ 2023-04-12 18:05 VxiaohuanV 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2023-04-12 17:16 VxiaohuanV 阅读(21) 评论(0) 推荐(0) 编辑
摘要:思路: 利用map+list暴力模拟就彳于了 unordered_map<string,list<>::iterator > mp #pragma GCC optimize(2) #include <bits/stdc++.h> using namespace std; #define IOS io 阅读全文
posted @ 2023-04-11 18:53 VxiaohuanV 阅读(14) 评论(0) 推荐(0) 编辑
摘要:题目大意:在平面直角坐标系中有偶数个点,求两个点使这两个点的连线两边点的数量相同且不经过任何一个点 点的坐标都为整数,且绝对值不大于1000 思路: 我们先对点按横坐标排序,找到中间的两个点,如果这两个点横坐标不同,可以在两点之间找一条平行于y轴的直线 如果相同的,因为点的纵坐标不大于1000,所以 阅读全文
posted @ 2023-04-11 18:27 VxiaohuanV 阅读(47) 评论(0) 推荐(0) 编辑
摘要:思路: 离目标越进吗,那个期望值越小,所以就 f=f1+f2+f3..... 阅读全文
posted @ 2023-04-06 22:36 VxiaohuanV 阅读(24) 评论(0) 推荐(0) 编辑
摘要:思路: 从时间复杂度入手, 就可以考虑暴力枚举每一种情况,然后利用数据结构去保存这些信息 如何保存捏? 自己想的是利用 map<bitset> 去做,真sb 直接利用双hash,转化为数值然后map存就彳于了, 记住hash 并不是只有字符串才用 ,01序列 甚至图上,或者其他很多抽象的东西要去转化 阅读全文
posted @ 2023-04-06 21:57 VxiaohuanV 阅读(28) 评论(0) 推荐(0) 编辑
摘要:题目大意: 释放一个45都的技能去尽可能消灭更多的敌人(在一个平面里面) 思路: 技能是无线长的, 于是抛弃无用信息, 只保留斜率即可 然后利用双指针,或者二分去做即可 阅读全文
posted @ 2023-04-05 19:37 VxiaohuanV 阅读(17) 评论(0) 推荐(0) 编辑
摘要:题目大意: 给出一个树,然后m询问,3种操作 1 在节点u, 和fa[u] 在他们增加一个节点 2 删除一个节点, 把儿子接到父亲上 3 查询某个节点的深度 思路: 直接在线去处理增加和删除是很不好操作的 于是考虑离线把这个树建出来 然后每次修改只会的对儿子树造成影响, 这里可以用线段树,或者树状数 阅读全文
posted @ 2023-04-04 10:41 VxiaohuanV 阅读(19) 评论(0) 推荐(0) 编辑
摘要:题目大意: 给出一个01矩阵, 给出q,p 分别表示 选一个点的权值,和选2个连在一起的点的权值 问如何让权值更大 注意 : 在Dinic 的时间复杂度对于二分图这种边权为1, 时间复杂度为 NsqrtN, 不是n^2 m 思路: 更具题目的条件限制,他的建边一定是2个矮在一起的 因此更具 (i+j 阅读全文
posted @ 2023-04-04 09:28 VxiaohuanV 阅读(23) 评论(0) 推荐(0) 编辑
摘要:题目大意: 就是这个游戏,有6个音轨, 然后用单手操作,(5个手指头)最多只能操作5个音轨的内容, 给出每一个音轨的情况, 问, 最多可以拿多少分 思路: 利用扫描线, 在同一个时刻内,尽可能的拿多的分数->有多少拿多少,有6个->拿5个 因此就利用减法思维: 先把6个总的分拿到 - 6个音轨同时出 阅读全文
posted @ 2023-04-02 15:57 VxiaohuanV 阅读(226) 评论(0) 推荐(1) 编辑

上一页 1 2 3 4 5 6 7 ··· 13 下一页