摘要: 思路: 一步一步的拆解分析 有一个min(al...r) 通过这个东西那么就可以 根据这个ai值分区间, 可以通过单调zhai处理 当然也可以去利用启发式合并处理, 在处理区间的时候, 因为这个有正负, 要分类讨论 正 就是最大 负数 就是最小 遇到区间包含某个值的区间最大最小 那么就利用前缀和+s 阅读全文
posted @ 2023-04-17 18:56 VxiaohuanV 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给定一个a,要求构造最少个数的3的倍数使得这些数的按位或和为a. 思路 : 3的倍数, 就要利用3的性质 所以在绝大数的情况下, 只需要2个数即可 考虑如何构造, 他给的是 | , 就牢牢利用|的性质, 2个数可以有重复位上的 1, 就先让2个数都等于 a ,然后在去删除对应多的位数 然 阅读全文
posted @ 2023-04-17 17:52 VxiaohuanV 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 思路 1 换根DP: 第一次dfs 预处理出每一个儿子树的 最长距离1 和次长距离2 第二次开始换根DP, 本点到其他 点的距离最长 : 分别考虑 一个是父亲上下来的点len3, 一个是兄弟节点, 就是父亲的最长距离len1或者 次长距离len2, 根本不用换根dp, 直接就是每一个点 的 最长+第 阅读全文
posted @ 2023-04-17 16:32 VxiaohuanV 阅读(33) 评论(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 阅读(15) 评论(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 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 思路: 保存有用信息,删除多余信息, 每一次查询会给出 L,R内的所有数, 那么如何利用这个条件, -> 统计在 L,R 区间的数的个数 进一步发现, 只有位置不变的数会在这个区间内, 统计在 L,R 区间的数的个数才会奇数, 其他情况都是偶数 这里可以去分类讨论一下 因此以此来二分即可 阅读全文
posted @ 2023-04-17 09:30 VxiaohuanV 阅读(12) 评论(0) 推荐(0) 编辑