随笔分类 - 分治—二分
摘要:遠くからあなたに出会うため
生まれてきたんだぜ
阅读全文
摘要:悲しくて飲みこんだ言葉
ずっと後についてきた
苛立って投げ出した言葉
きっともう帰ることはない
阅读全文
摘要:不確かな言葉を携えて 呼吸を揃えて初めまして
そんで愛されたのなら大歓迎 繰り返し向かえ遠く向こうへ
阅读全文
摘要:何万と積もった 懸念を
線状に 切り裂いていく
阅读全文
摘要:精一杯勇気を振り絞って
彼女は空を飛んだ
鳥になって雲をつかんで
風になって遥遠くへ
阅读全文
摘要: ```cpp #include #include #include using namespace std; const int N=1000005; int n,a[N],b[N]; long long m,...
阅读全文
摘要:二分答案,注意l是max(a[i]+a[i+1]),r是sum_a 判断的时候用dp,设f[i]为i与1最少的相同颜色数,g[i]为i与1最多的相同颜色数,转移是f[i]=max(a[i] (w a[i 1] (a[1] g[i 1])),0),g[i]=min(a[1] f[i 1],a[i]);
阅读全文
摘要:一眼二分。然后重点是树上贪心部分 长得像dp一样,设mn为子树内已炸点的最浅点,mx为子树内没有炸并且需要炸的最深点,然后转移直接从子树继承即可 然后是判断当前u点是否需要炸,当mx[u]+mn[u] include using namespace std; const int N=300005;
阅读全文
摘要:二分mid,然后用1~mid的操作在差分序列上加减,最后把差分序列前缀和起来,看是否有有超过初始r值的 线段树,模拟即可,洛谷上会T一个点(开O2能过)
阅读全文
摘要:二分值mid,然后把 =mid的赋值为1,其他赋值为0,每次排序就是算出区间内01的个数,然后分别把0和1放到连续的一段内,这些都可以用线段树来维护 二分的判断条件是操作完之后q位置上是否为1 cpp include include using namespace std; const int N=
阅读全文
摘要:二维哈希+二分 说是二维,其实就是先把列hash了,然后再用列的hash值hash行,这样可以O(n)的计算一个正方形的hash值,然后二分边长,枚举左上角点的坐标然后hash判断即可 只要base选的妙(闭眼随便敲一个数),单模数unsigned long long自然溢出也能过
阅读全文
摘要:二分答案,贪心判断,洛谷上要开long long cpp include include using namespace std; const int N=50005; int n,m,a[N],b[N]; int read() { int r=0,f=1; char p=getchar(); wh
阅读全文

浙公网安备 33010602011771号