摘要: 题目大意 求a^b %p 1≤a,b,p≤10^9 思路 时间O(10^9)一定会爆T,采用数学方法+位运算,得到O(log b)的快速幂算法 代码 c++ include include include include define ll long long using namespace std 阅读全文
posted @ 2018-08-20 20:38 zheng_liwen 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 归并排序 时间复杂度 归并排序时间复杂度为O(NlogN) 似乎和快速排序差不多,但在有些特定的场合下,归并排序却能起到快速排序达不到的效果(如一年的联赛题,瑞士轮) 思路及实现 归并排序分为两个步骤,分、合; 分 的过程我们用二分的思路实现; 合 的过程时间复杂度可达到O(n); 分: 进行分治: 阅读全文
posted @ 2018-08-20 20:36 zheng_liwen 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 链接:http://poj.org/problem?id=1958 大意:汉诺塔升级版,四根柱子,n个盘子,求最少移动次数; 两种方法 递推or递归(当然还有思路3——打表) 思路1:递推(或者DP?) 把四塔转换为三塔进行思考 假设当前要移动n个盘子,那么就不如分为以下几步 先将上面的i个盘子移到 阅读全文
posted @ 2018-08-20 20:36 zheng_liwen 阅读(548) 评论(0) 推荐(0) 编辑
摘要: 预先警告:我的做法代码量比较大 看完题目后看到数据n比如说以数据: 为例子, 进行了三场比赛:AB AC BC; 我们只要搜索每场比赛,并枚举比赛的三个结果(胜、负、平)并判断能否达到答案的分数即可 如果是三个人: void dfs(int step) { if(step==cs+1){ int f 阅读全文
posted @ 2018-08-20 20:35 zheng_liwen 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 貌似和石子合并差不多 ~~可能是我见的题太少了,所以都差不多~~ OK 算法分析 首先不难看出这是一道区间DP,那么,按照本蒟蒻的意思 区间DP==三个循环 接下来就是推方程的事情了 设f[i][j]为释放掉i~j号囚犯的最小花费,那么,容易得出 f[l][r]=min(f[l][r],f[l][k 阅读全文
posted @ 2018-08-20 20:35 zheng_liwen 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 某一天,n个朋友在一起聚会,他们已经很久没见了,于是他们决定拍照留念。 简单的说,拍照的时候,每个人有一个高度和宽度,第i个的高度和宽度分别是hi和wi。这些人排成一条直线,照片的最小的面积必须包含所有的的人,所以照片的面积是W H,W是所有人的宽度之和,H是所有人中高度最高的那个人的高度。现在想要 阅读全文
posted @ 2018-08-20 20:35 zheng_liwen 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 1.hdu1166 敌兵布阵 更新节点,区间求和。 2.hdu1754 I Hate It 更新节点,区间最值. . 3.hdu1698 Just a Hook 成段更新,总区间求和. . 4.hdu1394 Minimum Inversion Number 更新节点,区间求和 . 5.hdu177 阅读全文
posted @ 2018-08-20 20:33 zheng_liwen 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 【题目描述】 给定一个边长为xx的正三角形,现在每秒钟你可以改变其中一条边的长度(修改量整数),在改变过程中,每秒钟都需要保证改变后的三角形是合法的,且变成均为正整数。 现在需要最终把三角形改变成边长为y的正三角形,请计算至少需要几秒钟。 【思路分析】 比赛的时候想到了用贪心,但是策略错了,导致WA 阅读全文
posted @ 2018-08-20 20:32 zheng_liwen 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 原地址:https://blog.csdn.net/sunyutian1998/article/details/79618316 个人感觉区间合并是线段树各种应用中变形最多 也是比较难琢磨的一种 (以下以求01序列中最长连续1为例) tree[cur].left代表以区间左端点为起点的连续段的长度 阅读全文
posted @ 2018-08-20 20:31 zheng_liwen 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 原题: "原题链接" 题意:(机器翻译的...) 让我们将钩子的连续金属棒从1到N编号。对于每次操作,Pudge可以将连续的金属棒(从X到Y编号)改为铜棒,银棒或金棒。 钩的总值计算为N个金属棒的值的总和。更确切地说,每种棒的值计算如下: 对于每个铜棒,值为1. 对于每个银棒,值为2. 对于每个金棒 阅读全文
posted @ 2018-08-20 20:31 zheng_liwen 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 日常吐槽:关于DP,有一种莫名的恐惧...~~maybe源于与mtw大佬与quantum11大佬,初中时抬老师爬楼梯的经历。。。~~ 言归正传: 编辑距离 【题目描述】 设A和B是两个字符串。我们要用最少的字符操作次数,将字符串A转换为字符串B。这里所说的字符操作共有三种: 1、删除一个字符; 2、 阅读全文
posted @ 2018-08-20 20:30 zheng_liwen 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 先介绍一下离散化 桶排大家应该知道,就是开一个数组(下标为数值,记录了该数值的出现次数)然后遍历过去如果出现次数不为零,那就输出这些数字,理论时间复杂度可以达到O(N)但是由于内存限制,不能开很大的数组。 然而 如果某个数列中的数字不要求大小确定,只要求这些数字有相对的大小就够了的话, 离散化 就有 阅读全文
posted @ 2018-08-20 20:30 zheng_liwen 阅读(167) 评论(0) 推荐(0) 编辑
摘要: "原题链接__戳我噢" 【思路】 (区间)DP F[I][J]表示前i本书分给j个人用的最短时间 由于每一次j的状态由比j小的状态得出,所以要先枚举j,然后枚举i,接着枚举上一次抄书的人是谁 我觉得,难点在于输出 具体见代码 ~~压行压到手抽筋~~ 打完收工 hia~hia~hia~ 阅读全文
posted @ 2018-08-20 20:29 zheng_liwen 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 先讲一下:dalao @lisuier 发布的 "前一篇题解" 严格来讲是有错误的 比如下一组数据: ~~简单~~看出这道题用线段树~~可解~~ so 我们用 "离散化+权值线段树(戳这里详解)" ~~实际上是安利自己博客~~ 思路:建一棵空数,然后把某一区间的颜色更新为读入的颜色; WA,SO E 阅读全文
posted @ 2018-08-20 20:27 zheng_liwen 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 【思路分析】 比赛的时候想到了用二分+贪心,二分的部分与贪心的部分也写对了,但是由于 数据范围 未看 没有开long long,且二分左端点赋值过小 导致WA掉 正解:二分+贪心 二分代码的长度,贪心判断能否达到,算法上没什么好说的,主要是细节处理上 关于细节处理: 1. 开long long 2. 阅读全文
posted @ 2018-08-20 20:25 zheng_liwen 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 【思路分析】 比赛的时候想到了用我确实也想到了树形DP,但是状态没有确定对,连样例都没有过 PS:这是第二道发现还可以用状态作为答案最后输出的题目 正解:树形DP(背包) 按照读进来的数据,我们先建一棵树 像这样(这里用vector存图) 然后就是DP的过程 (本人见到的树形DP题目比较少,但是做到 阅读全文
posted @ 2018-08-20 20:24 zheng_liwen 阅读(139) 评论(0) 推荐(0) 编辑
/*去广告*/