三分

给定平面内 \(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. react-native 基础知识的学习

    react已经用了半年多了,年后有时间想探究一下奇妙的react-native,还别说确实刁,具体哪里刁后面会补充,因为搭建教程,以及入门教程没来得及写,这里先来写一些基础知识的心得. 为什么reac ...

  2. 作业6-COSPLAY孩子他家长

    为了我提高我女儿的数学能力,我以下我会根据我想要的功能做出相应的解决方案,为了孩子,父母也可以想的比老师周到.可怜天下父母心. 编号.          名称.                     ...

  3. BugPhobia进阶篇章:系统架构技术规格

    0x01 :开发级需求分析 在开发过程中,团队本身在开发的起始阶段确定了基本的开发级需求分析: 在开发过程中,除了需要满足用户级需求以为,我们还需要针对开发团队的特点,满足一些开发级的需求和约束.作为 ...

  4. octave基本指令4

    octave基本指令4 图形化显示数据 >> t=[0:0.01:0.98]; >> y1 = sin(2*pi*4*t); %pi表示π >> plot(t,y1 ...

  5. HDU 2043 密码

    http://acm.hdu.edu.cn/showproblem.php?pid=2043 Problem Description 网上流传一句话:"常在网上飘啊,哪能不挨刀啊-" ...

  6. Hadoop and net core a match made in docker

    https://blog.sixeyed.com/hadoop-and-net-core-a-match-made-in-docker/

  7. [转帖] 从零开始编写自己的C#框架(27)——什么是开发框架

    从零开始编写自己的C#框架(27)——什么是开发框架 http://www.cnblogs.com/EmptyFS/p/4105713.html 没写过代码 一直不清楚 框架的含义 不过看了一遍 也没 ...

  8. PP学习笔记-业务基础

    生产主数据.生产计划.生产订单与生产执行 生产模块主要子模块及功能:PP-BD 基本数据管理 PP-SFC车间订单管理 PP-MRP物料需求计划 PP-MPS主生产计划 PP-CRP能力计划 PP-I ...

  9. 自省 另外一种python 生成随机在base36 之间的兑换码生成。

    放假无聊,翻看自己博客的时候发现自己前面写的 那个base36兑换码在翻阅的时候 想到一个更简单的办法实现.但是随机上来说可能没有前者那么高 但是觉得也没有多大的问题 发上来 自己再想想 import ...

  10. Maven- 自动导入包的方法-很多没有导入的类,如何处理

    (1) 比如在pom.xml文件里面引入了类,但是在java中使用这个类的时候,还是报错,那就点击Maven.projects的 左上角的刷新的按钮: (2) 在Maven项目的时候,发现很多的类没有 ...