三分

给定平面内 \(n <= 2000\) 个节点, 求平面内一点使得到所有点的欧几里得距离和最小

确定 \(y\) 轴时 \(x\) 轴满足单峰函数

\(x\) 轴同理

三分套三分即可

深度优先搜索

从起始状态少的一侧开始搜索更优

例题

给你一副扑克中的 \(n\) 张牌, 出的下一张牌需要为前面出牌点数之和的约数, 求一种合法的方案

此题正向搜索代码如下:

void dfs(int depth, int sum){
if(depth == n){
output();
return ;
}
REP(i, 1, n){
if(!vis[i] && sum % a[i] == 0){
vis[i] = 1;
dfs(depth + 1, sum + a[i]);
vis[i] = 0;
}
}
}

显然初始分支很多, 考虑逆向搜索

void dfs(int depth, int left){
if(depth == 0){output();return ;}
REP(i, 1, n){
if(!vis[i] && (left - a[i]) % a[i] == 0){
vis[i] = 1;
dfs(depth - 1, left - a[i]);
vis[i] = 0;
}
}
}
//调用
dfs(n, sum[a[i]]);

初始分支减少, 搜索量减少

meet-in-the-middle

在指数级别复杂度显然无法承受时, 分别从两侧开始搜索, 在中间相遇, 减少搜索量

一般分别做 \(dfs\) 后, 在左边利用二分查找(或各种数据结构)寻找对应右边的值, 得到解的个数(用 \(STL\ map\) 也是很好的选择)

当发现有 \(\%\) 的时候大大降低搜索次数

通常降低次数的方式是

  1. 减少调用量(整除才进入)
  2. 枚举因子

数学部分

exgcd

\[gcd(a,b) = !b ? a : gcd(b, a \% b)
\]

当 $$b == 0$$ 时, 有 $$gcd(a, 0) = a$$

令 $$ax_{0} + by_{0} = gcd(a, b)$$

此时 $$a * 1 + 0 * 0 = gcd(a, 0) = a$$ 显然有

\[x_{0} = 1, y_{0} = 0
\]

现已递归求得 $$bx_{0} + (a % b)y_{0} = d$$

而$$(a%b) = a - \lfloor \frac{a}{b} \rfloor * b$$

构造成 $$ax + by = d$$ 形式得

\[ay_{0} + b(x_{0} - \lfloor \frac{a}{b} \rfloor * y_{0}) = d
\]

故 $$x = y_{0}, y = x_{0} - \lfloor \frac{a}{b} \rfloor * y_{0}$$

Code

int exgcd(int a, int b, int &x, int &y){
if(!b){x = 1, y = 0;return a;}
int d = exgcd(b, a % b, x, y);
int temp = x;x = y;y = temp - (a / b) * y;
return d;
}

有关于线段树和树剖

线段树标记下推记得考虑对子节点标记的影响

若是多组询问, 初始化时记得考虑如下几个方面

    nume = 1;//原图边编号
memset(head, 0, sizeof(head));//初始化原图
tot = 0;//树剖节点
lazytag = -1;//线段树懒标记

Tony的口胡呼呼(。-ω-)zzz的更多相关文章

  1. Topcoder口胡记 SRM 562 Div 1 ~ SRM 599 Div 1

    据说做TC题有助于提高知识水平? :) 传送门:https://284914869.github.io/AEoj/index.html 转载请注明链接:http://www.cnblogs.com/B ...

  2. 口胡FFT现场(没准就听懂了)&&FFT学习笔记

    前言(不想听的可以跳到下面) OK.蒟蒻又来口胡了. 自从ZJOI2019上Day的数论课上的多项式听到懵逼了,所以我就下定决心要学好多项式.感觉自己以前学的多项式都是假的. 但是一直在咕咕,现在是中 ...

  3. BZOJ 口胡记录

    最近实在是懒的不想打代码...好像口胡也算一种训练,那就口胡把. BZOJ 2243 染色(树链剖分) 首先树链剖分,然后记录下每个区间的左右端点颜色和当前区间的颜色段.再对每个节点维护一个tag标记 ...

  4. Atcoder/Topcoder 口胡记录

    Atcoder/Topcoder 理论 AC Atcoder的❌游戏示范 兴致勃勃地打开一场 AGC 看 A 题,先 WA 一发,然后花了一年时间 Fix. 看 B 题,啥玩意?这能求? 睡觉觉. e ...

  5. NOIP2016考前做题(口胡)记录

    NOIP以前可能会持续更新 写在前面 NOIP好像马上就要到了,感觉在校内训练里面经常被虐有一种要滚粗的感觉(雾.不管是普及组还是提高组,我都参加了好几年了,结果一个省一都没有,今年如果还没有的话感觉 ...

  6. 关于有向图走“无限次”后求概率/期望的口胡/【题解】HNCPC2019H 有向图

    关于有向图走"无限次"后求概率/期望的口胡/[题解]HNCPC2019H 有向图 全是口胡 假了不管 讨论的都是图\(G=(V,E),|V|=n,|E|=m\)上的情况 " ...

  7. 「口胡题解」「CF965D」Single-use Stones

    目录 题目 口胡题解 题目 有许多的青蛙要过河,可惜的是,青蛙根本跳不过河,他们最远只能跳 \(L\) 单位长度,而河宽 \(W\) 单位长度. 在河面上有一些石头,距离 \(i\) 远的地方有 \( ...

  8. PKUSC 2022 口胡题解

    \(PKUSC\ 2022\)口胡题解 为了更好的在考试中拿分,我准备学习基础日麻知识(为什么每年都考麻将 啊啊啊) 首先\(STO\)吉老师\(ORZ,\)真的学到了好多 观察标签发现,这套题覆盖知 ...

  9. 「线性基」学习笔记and乱口胡总结

    还以为是什么非常高大上的东西花了1h不到就学好了 线性基 线性基可以在\(O(nlogx)\)的时间内计算出\(n\)个数的最大异或和(不需要相邻). 上述中\(x\)表示的最大的数. 如何实现 定义 ...

随机推荐

  1. TCP系列11—重传—1、TCP重传概述

    在最开始介绍TCP的时候,我们就介绍了TCP的三个特点,分别是面向连接.可靠.字节流式.前面内容我们已经介绍过了TCP的连接管理,接下来的这部分内容将会介绍与TCP可靠性强关联的TCP重传. 很多网络 ...

  2. jupyter notebook远程配置

    服务器端配置 在服务器生成jupyter配置文件 $jupyter notebook --generate-config 生成之后会得到配置文件的路径 启动jupyter,设置密码 In [1]: f ...

  3. shell脚本--权限分配

    因为shell脚本内部是很多命令的集合,这些命令也许会涉及到操作某一个文件,而且shell脚本的运行,也是需要当前用户对脚本具有运行的权限,否则,会因为权限不够而失败. 首先最重要的一点:修改权限,只 ...

  4. pandas文件写入读取操作

    #encoding:utf8 import pandas as pd import numpy as np from pylab import * df=pd.read_csv("./pat ...

  5. 给kali linux2.0装一个中文输入法

    没有中文输入法好痛苦啊.. 毕竟做了无限网卡,虚拟机和主机可以完完全全当两台设备使用了,所以kali还是需要一个中文输入法才方便. 由于使用的是比较新的kali版本和源,现在安装fcitx已经可以直接 ...

  6. SVN上线步骤笔记

    项目代码位置: /data/svn/play_out 项目代码目录名称: test SVN创建位置:/data/svn/repos_Websvn线上地址:svn://192.168.1.1/repos ...

  7. Lodop打印控件输出页码(超文本和纯文本页码)

    Lodop打印控件打印超文本既可以手动分页,也可以自动分页,自动分页可阅读本博客的另一篇博文:Lodop打印控件 超文本自动分页 自动分页的时候,往往是不知道需要打印的内容到底分了几页,也就不可能预先 ...

  8. CSS等高布局的7种方式

    前面的话 等高布局是指子元素在父元素中高度相等的布局方式.等高布局的实现包括伪等高和真等高,伪等高只是看上去等高而已,真等高是实实在在的等高.本文将介绍边框模拟.负margin这两种伪等高以及tabl ...

  9. [Caffe]:关于*** Aborted at 1479432790 (unix time) try "date -d @1479432790" 错误的另一种原因

    问题:设置solver.prototxt时,lr_policy:"step",运行时出现下面问题 *** Aborted at (unix time) try "date ...

  10. BZOJ4822[Cqoi2017]老C的任务——树状数组(二维数点)

    题目描述 老 C 是个程序员.     最近老 C 从老板那里接到了一个任务——给城市中的手机基站写个管理系统.作为经验丰富的程序员,老 C 轻松 地完成了系统的大部分功能,并把其中一个功能交给你来实 ...