几个有趣的算法题目

2017-11-09
阅读 16 分钟
16.7k
本文首发 [链接] 最接近的数字 题目 一个K位的数N $$ (K\leq2000,N\leq10^{20}) $$ 找出一个比N大且最接近的数,这个数的每位之和与N相同,用代码实现之。 例如:0050 所求书数字为0104;112 所求数为121; 算法分析 算法思想 直接暴力求这个数字是不可以的,数字的量级太大,有K位的数字,不可能直接用int,或者float...

Python-Tips

2017-10-11
阅读 2 分钟
1.7k
首发自 [链接] 大部分学自Fluent Python 使用nametuple nametuple用来构建只有少数属性但是没有方法的对象,比如数据库条目。 <!--more--> 使用python的时候经常会出现这样的问题,我想构建一个很简单的类来进行测试,但是我不得不书写大量的代码,例如 {代码...} 然后才能进行创建。如果使用nametuples的话,这个...

C语言基础知识补充

2017-09-28
阅读 1 分钟
2.1k
最近做了一部分硬件的工作,重新对C语言的一部分知识进行了学习,发现了之前做算法不太注意的部分,补充在这里。 函数指针 函数指针是指向函数的指针变量。也就是说这个变量里面存的值是函数的地址,在调用的时候可以通过变量名来调用。 通过此方式来声明,调用: <!--more--> {代码...} 此处的p就是max函数,可以...

阶段小结

2015-05-05
阅读 1 分钟
2k
$$ J \left( \theta_0, \theta_1 \right) = \frac{1} {2m}\sum_{k=1}^m{ \left( h_\theta \left( x^ \left( i \right) \right) - y^\left( i \right) \right)^2} $$

ACM - Uva 11549 水题

2015-03-18
阅读 2 分钟
2.6k
似乎没有什么技术含量,没有按照佳哥的写,直接用了log10的方法求位数,时间开销是1.5,如果按位数处理肯定更快,但是代码就要复杂很多。但是应用floyd判圈算法更快。

ACM - UVa 11078 固定值和非固定值

2015-03-18
阅读 1 分钟
2.5k
一开始没有想到简单的推理方法。 最简单的是在当前点刷新diff的值,然后更新最大的Ai {代码...}

ACM - UVa 11462 IO限制

2015-03-18
阅读 2 分钟
2.6k
这个题目主要是IO限制和计数排序。计数排序是线性的。 不过个人觉得没有人会蛋疼到出个IO限制的题目- - 非IO限制的AC {代码...} IO限制达成的AC {代码...}

ACM - LA3177

2015-03-18
阅读 2 分钟
2.4k
segmentfault的诸位大大解决BUG的问题也是极为迅速,在此感谢一下。 title: "ACM-LA3177" date: 2015-03-18 15:07:42 categories: - ACM 白皮书给的答案没有考虑到n == 1的情况,然后还写了两个n,醉了。。 也是我一开始并没有真正的理解题解,反复考虑关于n == 1的问题还有 want[n] == want[0] 这个技巧。 对于循环的东...

大白刷题路

2015-03-10
阅读 6 分钟
3.2k
编号为i的人初始有$A_i$枚金币。对于1号,给了4号$x_1$枚金币,自己还有$A_1-x_1$枚。然后从2号拿走$x_2$枚金币,现在有$A_1-x_1+x_2$枚金币,另外,设平均金币值为$A_1-x_1+x_2=M$。

白皮书勉强算是读完了

2015-03-10
阅读 1 分钟
2.6k
读了一个寒假的白皮书,有收获,但是并没有完全领悟,题目应该另外继续再做。 本blog用于acm算法研读经验以及刷题报告。有时间整理下小白的目录。 后记 受益匪浅,正在读大白。

第11章 图论模型算法

2015-03-09
阅读 4 分钟
2.9k
11.1.1 无根树转有根树 {代码...} 11.1.2 表达式树 {代码...} 11.1.3 最小生成树kruskals算法 {代码...} 11.2.1 Dijkstra 算法(最短路径) {代码...} 11.2.4 Bellman-Ford 算法(负权最短路径) 当负权存在的时候,如果最短路径存在,通过Bellman算法可以求出 {代码...} 11.2.5 Floyd 算法(两点最短路径) 如果n>30...

ACM - 借用python

2015-02-15
阅读 1 分钟
5.1k
python科学计算不是没有依据的= =特别大型的数据需要好好计算一下, 但是一般的验证,生成测试数据神马的用python真是再方便不过了.

ACM - 第10章 数论

2015-02-14
阅读 3 分钟
4.1k
10.1.1 除法表达式 gcd递归层数最多4.785lgN + 1.6723, N = max(a, b) {代码...} 10.1.2 无平方因子数 主要讲的是素数的问题. Eratosthenes 筛法 {代码...} 由此一来就可以筛选出素数,不过不是线性筛法,相信佳哥也一定知道... 循环的总次数小于n/2 + n/3 + ... n/n = o(nlogn) 欧拉1734年的结果: 1 + 1/2 + 1/3 + .. 1/n...

ACM - 9.3 0-1背包问题

2015-02-13
阅读 1 分钟
3.2k
9.3.1 多阶段决策问题 9.4 物品无限的背包问题 无权变成有权,本质上背包问题就是有向带权图,即DAG + weighted. 9.5 0-1 背包问题 {代码...} 9.3.2 规划方向 下面这种dp有利于不存边,进而扩展到滚动数组. 边界方面,i=0时为0,j<0时为负无穷,最终答案为f(n,C). {代码...} 9.3.3 滚动数组 把f变为一维数组,本质上还是那么...

ACM - 第九章 动态规划初步

2015-02-12
阅读 3 分钟
4.6k
9.1.1 问题描述与状态定义 9-1 数字三角形 基础的动态规划 9.1.2 记忆化搜索与递推 递归计算 {代码...} 递推 {代码...} 记忆化搜索 将递归过程中的数保存下来 {代码...} 9.2.1 DAG模型 DAG(无回路有向图). 二元关系可以使用图来建模 9.2 嵌套矩形 矩形的嵌套可以看做一个二元关系,矩形X可以嵌套在Y里,则X->Y就有一条...

ACM - 8.4 贪心法

2015-02-11
阅读 3 分钟
2.9k
8.4.1 最优装载问题 略 8.4.2 部分背包问题 按照比值计算 8.4.3 乘船问题 这个题目应该先拍好序吧= = 8.4.4 选择不相交区间 长度方面选短的,优先选靠前的。 {代码...} 8.4.5 区间选点问题 选最头上的点。。 {代码...} 8.4.6 区间覆盖问题 优先选覆盖较长的区间... {代码...} 8.4.7 哈夫曼编码

ACM - 8.3 递归与分治

2015-02-10
阅读 2 分钟
2.5k
8.3.1 棋盘覆盖问题 略 8.3.2 循环日程表问题 构造第一组解,然后剩下的对应第一组解构造即可。 8.3.3 巨人与鬼 按照y坐标排序,按照极坐标[0, PI)扫描范围的对应点。 8.3.4 非线性方程求根 {代码...} 8.5.3 最大值最小化 二分区间和最小值,遍历数组。 {代码...}

ACM - 8.2 再谈排序与检索

2015-02-08
阅读 3 分钟
2.4k
8.2.1 归并排序 归并排序的过程本身是线性的,但是需要线性的辅助空间。 {代码...} 逆序对数 {代码...} 8.2.2 快速排序 整体排序之后部分排序。此处并非随机划分。 {代码...} 第k小数 {代码...} 8.2.3 二分查找 {代码...} 二分查找求下界 不再直接返回,在STL函数中包含这个算法 lower_bound(a, a+n, v) upper_bound(a, ...

ACM - 做题技巧

2015-02-07
阅读 1 分钟
3.9k
做题技巧 浮点数eps 判断两个浮点数误差的时候,使用fabs(a-b) < eps,一般的eps为1e-9。如果有可能,尽量避免浮点运算,做整数的转换。 计算一元二次方程解的时候,可以进行如此运算,例如((sqrt(8.0*n+1)-1)/2-eps)+1 熟用log函数 多多利用log函数,用以减小数量级。 {代码...} 求一个数的位数: log10(a) 利用矩阵 ...

ACM - 第八章 高效算法设计

2015-02-07
阅读 3 分钟
2.9k
最简单粗暴的最大连续和 {代码...} 优化。 8.1.1 渐进时间复杂度 渐进时间复杂度计算方法,如何估算时间复杂度。 直接求所有的和,通过和的加减求区间和。 最大连续和 {代码...} 8.1.3 分治法 {代码...} 动态规划的思想 如果找S[j] - S[i-1]的最大值,就是找S[i-1]的最小。因此只用扫描一次数组。 {代码...}

ACM - 7.5 隐式图搜索

2015-02-05
阅读 6 分钟
3.1k
例题7-1 没有测试数据,暂且掠过。 例题7-2 卓麻烦,尝试着写了一下,应该自己手写一个队列来实现,用以输出各个整数。 要实现一个分数的struct。 没有写完。 {代码...} 7.3 倒水问题 书上的状态问题不错 -- 但问题是如何确定是否返回之前的状态。 如果使用vis存储,那么: {代码...} 如果担心存不下,可以参照八数码的...

Vim - 奇技淫巧

2015-02-05
阅读 1 分钟
3k
十六进制编辑文件 编辑前 :%!xxd 编辑后 %!xxd -r 删除括号内部的内容 cord then i ( *的作用 {代码...} gh [g+字符]的作用有很多,比如gh快速进入选择模式,不用退出输入模式。 gh快速进入选择模式 gm进入中间字符,高速移动 ge逆向e 各种高能啊。

ACM - 7.4 回溯法

2015-02-04
阅读 3 分钟
2.7k
生成和检查结合. 7.4.1 八皇后 利用数组C[cur]记录列数,行号。关键在于回溯 -- 如果不合适,那么回溯到上一层。break; {代码...} 7.4.2 素数环 {代码...} 7.4.3 困难的串 每次从后面寻找串即可, 前面的串已经是没有重复的了。 {代码...}

ACM - 7.3 子集生成

2015-02-02
阅读 2 分钟
3k
7.3.1 增量构造法 输入n,生成n的子集(包括0)。运用了定序的技巧,不会把集合输出两次。 解答树计算方面:因为是集合,所以$2^n$个节点。集合的元素2^n {代码...} 位向量法 {代码...} 二进制法 位运算中与,或,异或相当于集合的交,并,对称差。 {代码...}

ACM - 7.2 枚举排列

2015-02-02
阅读 3 分钟
3.4k
7.2.1 生成1~n的排列 相比之下perm速度更快,但是print_perm似乎更加好理解一些 {代码...} 7.2.2 生成可重集的排列 生成有重复元素的排列。此时算法设计书上的方法不太好用了。此外,需要注意的是,a要和p相同。 {代码...} 利用STL生成组合 {代码...} 解答树 此外,在构造递归的过程中,可以构造解答树来简化问题。

ZSH - 关于zsh的一些有趣的东西

2015-02-02
阅读 1 分钟
3.5k
[链接] zsh options . 不知道需不需要梯子。 摘抄三份代码,分别是省略cd直接进入目录,更正,以及给目录起别名。 {代码...} 当然,如果安装了Oh-my-zsh -- 这个在github上极大方便使用SHELL的东西,再好不过了。

ACM - 第7章 暴力求解

2015-01-31
阅读 4 分钟
2.5k
7.1 简单枚举 如果数据量小,完全可以使用暴力枚举的方法,不必浪费时间思考。 7.1.1 除法 枚举一个数,然后通过这个数*n得到另一个数,从而减少枚举量。 {代码...} 7.1.2 最大乘积 直接暴力枚举两个起点即可。 {代码...} 7.1.3 分数拆分 {代码...} 7.1.4 双基回文数 又熟悉了下进制的转换~ {代码...}

ACM - 第6章 数据结构基础(2)

2015-01-31
阅读 2 分钟
2.1k
6.4.2 走迷宫 利用bfs寻找最短路。通过对u/m得到x,u%m得到y。u = x * m + y 将方向保存在dx[], dy[]中。 {代码...} 6.4.3 拓扑排序,DAG(Directed Acyclic Graph)有向无环图 {代码...}

ACM - 第6章 数据结构基础

2015-01-29
阅读 7 分钟
2.6k
{% blockquote 本文出自 [链接] svtter.com %} 本文可以随意转载,但是转载请保留本信息. {% endblockquote %}

ACM - Uvaoj 刷题

2015-01-27
阅读 3 分钟
4.9k
10055 WA了两次之后好好or vice versa:反之亦然。 另外,int型的最大为2^31-1(符号位) {代码...} 10071 看了看就是求路程的两倍。。 {代码...} 10030 中间那个数没用。 {代码...} 401 没有考虑len == 1的情况-=,再一个就是整数>0, 对应的bool为true. {代码...}