随笔分类 -  玄学-二分答案

摘要:题面:https://www.luogu.org/problem/P5021 cpp 本题首先看到最小值最大就可以想到二分,即二分一个mid作为答案,设f[u]为以u为根的子树中,不选作赛道的边最大为多少,因为赛道的选定只有两种情况,一是继续连向根的父亲,二是从儿子到根再到儿子,那么f[v]+w = 阅读全文
posted @ 2019-10-14 13:20 prestige 阅读(101) 评论(0) 推荐(0)
摘要:题面:https://www.luogu.org/problem/P3501 cpp 本题直接hash+暴力,二分对称中心即可. 或者是manacher,通过观察反对称串长度一定是偶数,并且反对称串中相匹配的字符位置必定一奇一偶,所以直接把奇数位取反,偶数为不动,然后就变成了回文串问题. (自然溢出 阅读全文
posted @ 2019-10-11 18:45 prestige 阅读(187) 评论(0) 推荐(0)
摘要:题面:https://www.luogu.org/problem/P1314 cpp 本题直接二分W,当Y s,那么增加W来减小Y,当Y include include include include include using namespace std; const int N=200005; 阅读全文
posted @ 2019-09-29 13:32 prestige 阅读(113) 评论(0) 推荐(0)
摘要:题面:https://www.luogu.org/problem/P2822 cpp 本题直接将c[i][j]%k=1的(i,j)用前缀和数组记录下来,然后求前缀和即可. 注意:ans[i][j]=ans[i 1][j]+ans[i][j 1] ans[i 1][j 1] Code: include 阅读全文
posted @ 2019-09-15 12:49 prestige 阅读(157) 评论(0) 推荐(0)
摘要:```cpp 【题目描述】: 有两个正整数数列,元素个数分别为N和M。从两个数列中分别任取一个数相乘,这样一共可以得到N×M个数,询问这N×M个数中第K小数是多少。 【输入描述】: 第一行为三个正整数N,M和K。 第二行为N个正整数,表示第一个数列。 第三行为M个正整数,表述第二个数列。 【输出描述】: 一个正整数表示第K小数。 【样例输入1】: 2 3 4 1 2 2 1 3 【样例输出1】: 阅读全文
posted @ 2019-09-11 00:07 prestige 阅读(197) 评论(0) 推荐(0)
摘要:题面:https://www.luogu.org/problem/P1083 cpp 一题简单的线段树(但在这题看来似乎是一种玄学算法) 开一个线段树维护区间最小值和支持区间修改即可 只要整个区间中有 include include include include include define MA 阅读全文
posted @ 2019-08-20 13:48 prestige 阅读(121) 评论(0) 推荐(0)