1.aoapc2ch8 内容题
文章平均质量分 54
秦始皇吃花椒
这个作者很懒,什么都没留下…
展开
-
【题集总览】题集1:Aoapc2 ch8 高效算法设计 内容题(完结总结)
题集内容 aoapc2的第八章,知识点后附的简单例题。 主要目的是为了及时打出学到的东西。 习题 [ ] 洛谷P1115 最大连续子段和 [ ] 洛谷P1908 逆序对 [ ] 快速排序算法 [ ] 二分查找:单个元素,上下界算法 [ ] aoapc-ch8 循环日程表问题 [ ] aoapc-ch8 棋盘覆盖问题 [ ] UVa1411 巨人与鬼 [ ] 背包相关问题 最优装载问题 ...原创 2018-05-21 00:28:50 · 241 阅读 · 1 评论 -
[贪心] POJ2376 Cleaning Shifts (区间覆盖问题)
题目 描述 FJ分配 N (1 <= N <= 25,000) 只中的一些奶牛在牛棚附近做些清洁。 他总是要让至少一只牛做清洁。他把一天分成T段(1 <= T <= 1,000,000), 第一段是1,最后一段是T 每只奶牛只在一些时间段有空。奶牛如果选择某一段时间,则必须完成整段时间的工作 你的任务是帮助FJ安排一些奶牛,使每段时间至少有一只奶牛...原创 2018-06-03 23:40:53 · 389 阅读 · 0 评论 -
[分治] UVa1411 Ants 巨人与鬼 (分治之终极运用)
题目 给定一些黑点白点,要求一个黑点连接一个白点,并且所有线段都不相交 思路 LRJ强强强,网上一堆各种什么二分图匹配的算法,LRJ大佬一个分治O(n2logn)O(n2logn)O(n^{2}logn)强破。 首先,先找一个y坐标最小的点(y同时最小时,再选x最小),随后以这个点为中心进行极角排序,排序后的第一个角: 如果与基准点颜色不同,直接匹配。然后处理剩余。 如果与基准点颜...原创 2018-06-03 23:25:59 · 640 阅读 · 0 评论 -
[归并排序] 洛谷P1908 逆序对 (分治应用)
题目 题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中ai>aj且i < j的有序对。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目。 输入输出格式 输入格式:...原创 2018-05-23 01:07:50 · 313 阅读 · 0 评论 -
[分治] 洛谷P1115 最大连续子段和(分治典例)
题目 题目描述 给出一段序列,选出其中连续且非空的一段使得这段和最大。 输入输出格式 输入格式: 输入文件maxsum1.in的第一行是一个正整数N,表示了序列的长度。 第2行包含N个绝对值不大于10000的整数A[i],描述了这段序列。 输出格式: 输入文件maxsum1.out仅包括1个整数,为最大的子段和是多少。子段的最小长度为1。 输入输出样例 输入样例#1: 复制 ...原创 2018-05-23 00:54:03 · 630 阅读 · 0 评论 -
[分治] AOAPC2-ch8 快速排序
代码 #include <cstdio> #include <cstdlib> #include <algorithm> using namespace std; const int maxn = 1000+50; int A[maxn], n; void qsort(int l, int r){ int i,j,temp; if (l...原创 2018-05-23 00:12:12 · 573 阅读 · 0 评论 -
[贪心] UVa10148 广告牌 (区间选点问题)
题目 一段路上,给出n个慢跑者跑步的区间,给出k,要求让每个慢跑者都能看到k个广告,区间都是整数操作,也就是说一个广告只能放在一个整数上,求最小贴的广告数 思路 区间选点问题的方法: 代码 #include <cstdio> #include <cstdlib> #include <cstring> #include <vector&...原创 2018-06-03 09:09:41 · 459 阅读 · 0 评论 -
[贪心] AOAPC2-ch8 背包相关问题
目录 最优装载问题 部分背包问题 乘船问题 最优转载问题 给出n个物体,第i个物体重量为wiwiw_i。选择尽量多的物体,使得总重量不超过C。 int main() { scanf("%d%d", &n, &C); for (int i = 0; i < n; i++) scanf("%d", &A[i]); sort(A, A...原创 2018-06-02 21:20:23 · 176 阅读 · 1 评论 -
[分治] 二分查找之单个元素、可重复元素上下界
单个元素 目的:在一个不重复的序列里,找一个元素,找不到返回-1。 // A:元素所在数组 [x,y):区间 v:元素值 int bserach(int* A, int x, int y, int v) { int m; while (x < y) { m = x + (y - x) / 2; if (A[m] == v) re...原创 2018-05-26 17:59:07 · 411 阅读 · 0 评论 -
[贪心] hdu2037 今年暑假不AC (区间之选择不相交区间)
#include &quot;stdafx.h&quot; #include &amp;lt;cstdio&amp;gt; #include &amp;lt;cstdlib&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; using namespa原创 2018-05-16 00:35:17 · 151 阅读 · 1 评论 -
[贪心] NYOJ71 独木舟上的旅行(背包之乘船问题)
#include "stdafx.h" #include &lt;cstdio&gt; #include &lt;cstdlib&gt; #include &lt;cmath&gt; #include &lt;algorithm&gt; using namespace std; const int maxn = 1000; int w, n,原创 2018-05-16 00:18:14 · 355 阅读 · 0 评论 -
[分治] AOAPC2-ch8 棋盘覆盖问题
代码 #include &lt;cstdio&gt; #include &lt;cstdlib&gt; #include &lt;cmath&gt; const int maxn = 3000; int k, x, y, cnt = 0, ans[maxn][maxn]; int getnum(int x, int y, int d){ int n = pow(2, d)/2; ...原创 2018-05-15 00:28:11 · 946 阅读 · 0 评论 -
[分治] AOAPC2-ch8 循环日程表问题
代码 #include &lt;cstdio&gt; #include &lt;cstdlib&gt; #include &lt;cmath&gt; const int maxn = 3000; int ans[maxn][maxn]; void solve(int d){ if (d == 1){ ans[0][0] = 1; ans[0][1]...原创 2018-05-14 23:48:35 · 210 阅读 · 0 评论 -
[中途相遇法] UVa1152 4 Values whose Sum is 0 和为0的四个数 (卡常)
题目 给定4个n(1&lt;=n&lt;=4000)元素组合A,B,C,D,要求分别从中选取一个元素a,b,c,d,使得a+b+c+d=0。问:有多少种解法。 例如:6 -45 22 42 -16 -41 -27 56 30 -36 53 -37 77 -36 30 -75 -46 26 -38 -10 62 -32 -54 -6 45 结果:5 选法: ...原创 2018-05-28 18:22:28 · 133 阅读 · 0 评论