
高效算法
文章平均质量分 74
KinderRiven
这个作者很懒,什么都没留下…
展开
-
【uva】11536-Smallest Sub-Array(区间移动问题)
一个区间移动的问题。原创 2014-08-01 19:02:41 · 892 阅读 · 0 评论 -
165-Stamps【回溯】
回溯给h和k的意思是在k种邮票中选h个邮票基本的连续邮资问题15226160165StampsAcceptedC++0.0622015-03-27 07:21:37#include#include#includeusing namespace std;const int maxn = 2原创 2015-03-27 15:26:31 · 709 阅读 · 0 评论 -
12124 Assemble【二分】
利用二分枚举所有 品质思路想出来比较好写代码:#include#include#include#include#include#include#includeusing namespace std;const int maxn = 1111;//种类 名称 价格 价格因子int n,b;int cnt;int min_v,max_v;struct Th{原创 2015-03-15 13:40:41 · 693 阅读 · 0 评论 -
【UVA】434-Matty's Blocks
一道很容易想复杂的题,给出主视图和右视图,计算最少能用几个正方体组成对应的视图,以及最多还能加几块正方体。求最多添加其实就是求出最多的正方体数减去最少的,主要就是最少的不好求。一开始各种模拟就是不对,之后发现,只需要统计两个视图的高度个数就可以了(简直了)14390495434Matty's BlocksAcceptedC++原创 2014-10-21 19:39:02 · 751 阅读 · 0 评论 -
【hdu】Mayor's posters(线段树区间问题)
需要离散化处理,线段树的区间修改问题。需要注意的就是离散化的时候,由于给的数字是一段单位长度,所以需要特殊处理(因为线段的覆盖和点的覆盖是不一样的)比如:(1,10)(1,4) (6,10)离散化之后是 1 , 4 , 6 , 10 分别离散为 1 2 3 4覆盖的时候先覆盖1 4 之后覆盖了1 2 之后覆盖了 2 3,结果为2但是实际上应该是3134503原创 2014-09-17 16:17:30 · 888 阅读 · 0 评论 -
【UVA】10317 - Equating Equations(dfs + 剪枝)
真郁闷,一道普通的搜索题 我拿dp的方法去做,结果一直TLE和WA如果所有数的和为奇数,肯定没有正解。1413345410317Equating EquationsAcceptedC++0.1022014-09-02 09:01:23#include #include #include #incl原创 2014-09-02 17:07:05 · 733 阅读 · 0 评论 -
【UVA】1346 - Songs(贪心)
根据题意可以得到,长度小,并且频率低的排到前面,所以设 k = l / q;之后sort排序就可以141286751346SongsAcceptedC++0.0292014-09-01 11:30:14#include #include #include #include #inclu原创 2014-09-01 19:33:00 · 756 阅读 · 0 评论 -
【UVA】11464-Even Parity(二进制枚举子集)
枚举第一行的所有可能情况,之后根据上面行计算下面行(判断是否冲突),获得最终结果。1405824311464Even ParityAcceptedC++0.2752014-08-18 05:14:15#include#include#include#include#include#include原创 2014-08-18 13:15:44 · 814 阅读 · 0 评论 -
【UVA】10318-Security Panel(DFS 回溯)
比较经典的减枝回溯原创 2014-09-09 19:56:33 · 837 阅读 · 0 评论 -
10125-Sumsets【暴力】
利用n^2的时间枚举所有a[i] + a[j]利用n^2的时间枚举所有a[i] - a[j]之后利用n^2时间一个一个找a[i] - a[j]的值是否存在于a[i] + a[j]中找的时候需要二分查找另外一点就是注意long long的范围以及四个数是集合内不同的四个元素1522263810125SumsetsAccepted原创 2015-03-26 23:43:21 · 626 阅读 · 0 评论 -
【CF】E. Anya and Cubes(双向DFS)
根据题意的话每次递归分3种情况一共最多25个数,时间复杂度为3^25,太大了我们可以分2次求解第一次求一半的结果,也就是25/2 = 12,记录结果之后利用剩余的一半求结果 s-结果 = 之前记录过的结果 就可以时间复杂度降低为 3 ^ (n/2+1)题目链接:http://codeforces.com/contest/525/problem/E#include#incl原创 2015-03-30 17:39:42 · 1093 阅读 · 0 评论 -
【HDU】5248-序列变换(贪心+二分)
二分枚举长度改变的长度就行了#include#include#includeusing namespace std;const int INF = 3000000;const int maxn = 100005;int n,arr[maxn],arr2[maxn];bool solve(int x){ memcpy(arr2,arr,sizeof(arr));原创 2015-06-03 13:21:53 · 763 阅读 · 0 评论 -
【HDU-5246】超级赛亚ACMer(贪心)
之前用了个nlogn的算法超时了,只能改成n的算法了大题贪心思路就是 对每个人的能力值从小到大进行排序,当前能力值为now,那么我们找到一个人的能力使得这个能力值 这样都跑了600+MS,看来之前nlogn的TLE的不冤枉。。#include#include#includeusing namespace std;typedef long long LL;const int m原创 2015-06-02 23:33:30 · 977 阅读 · 0 评论 -
【ZOJ】Nice Patterns Strike Back(矩阵快速乘法)
dp[[i][j] = sum(dp[i - 1][k]) (k -> j)状态方程,因为N很大而M很小,所以第一时间可以想到矩阵优化可能之前没做过类似的题被卡的很厉害。另外用C++写大数真心麻烦。。#include#include#includeusing namespace std;const int maxn = 45;const int maxd = 30005;原创 2015-05-26 22:53:28 · 1008 阅读 · 0 评论 -
【FZU】Problem 2056 最大正方形
这题的关键就是预处理矩阵利用dp[i][j] = dp[i - 1][j] + dp[i][j - 1] - dp[i-1][j-1]递推出矩阵,使得我们以后每次已经利用O(1)的复杂度计算任意一块矩阵之后枚举正方形左上角的坐标二分边长,时间复杂度为n^2 log(n)#include#include#includeusing namespace std;const int原创 2015-05-15 22:06:53 · 756 阅读 · 0 评论 -
【USACO】Sorting a Three-Valued Sequence(思路)
拼了老命用一种贪心的思想把它A了,但是代码写的太烂了,而且时间复杂度为 n ^ 2,我就不多说了,太烂了之后上网找了一个规律,时间复杂度为 nlogn,而且思路很明确,又写了一遍代码:(贪心)/*ID: 18906421LANG: C++PROG: sort3*/#include#include#include#includeusing namespace std;原创 2015-04-15 21:07:06 · 675 阅读 · 0 评论 -
【山东省第四届ACM省赛】Boring Counting(二分+划分树)
算是一道模板题了,可惜弱的一B的我并不会划分树,花了点时间学了下,回头A了这道题3s的限时跑了2.8s也是醉了。。。DescriptionIn this problem you are given a number sequence P consisting of N integer and Pi is the ith element in the sequence. Now原创 2015-04-15 11:14:37 · 727 阅读 · 0 评论 -
【POJ】2786-Keep the Customer Satisfied(贪心 + 优先队列,姿势不对就要跪)
按照截止日期排序,之后一个一个遍历,记录当前时间,如果当前时间大于截止时间,那么从选过的任务里删除一个花费最大的任务优先队列维护140385252013010521002786Accepted11168K1016MSC++905B2015-04-02 12:22:16#include#include#include原创 2015-04-02 12:30:55 · 1046 阅读 · 0 评论 -
【POJ 2970】The lazy programmer(优先队列+贪心)
这题范围不会超long long全用int存就行了贪心的话,每次把一个任务加入到队列,如果不能在指定时间完成就到前面找a最小的一个任务补偿时间,当一个任务完成时间等于0的时候这个任务就不再放回队列#include#include#include#includeusing namespace std;//typedef long long LL;const int maxn =原创 2015-03-31 11:46:21 · 1084 阅读 · 0 评论 -
140 - Bandwidth 回溯
直接回溯,比较麻烦的是数据的读取。原创 2014-04-09 23:40:55 · 518 阅读 · 0 评论 -
2431Expedition POJ- 优先队列 + 贪心
该题需要注意的问题题目给的加油站是到目的地的距离而不是距离起始点的距离贪心ce原创 2014-05-18 08:51:43 · 519 阅读 · 0 评论 -
10382 - Watering Grass uva贪心
将圆看成一个矩形转化成区域覆盖问题,不过在一开始读入的时候就要转化,不能在贪心的过程中计算,(可能有精度diushu原创 2014-04-08 15:14:08 · 545 阅读 · 0 评论 -
Babelfish-哈希编码
有一点我不太清楚为什么 return (sum & 0x7FFFFFFF) % MAXD;如果改成原创 2014-04-30 00:46:06 · 678 阅读 · 0 评论 -
Queuing at the doctors
这题简直就是在nve原创 2014-05-15 14:45:14 · 652 阅读 · 1 评论 -
Saruman's Army 贪心 POJ
简单的贪心题。。。。一开始脑子没转弯花了点时间原创 2014-05-17 21:44:31 · 537 阅读 · 0 评论 -
uva 1152-4 Values whose Sum is 0
基本思路是 枚举出 a + b的zhi原创 2014-07-24 09:59:10 · 694 阅读 · 0 评论 -
11134-Fabled Rooks【贪心 + 优先队列 + 思想转化】
首先根据题意可以看出,车放在棋盘上,行数和列数是互不干扰的原创 2014-07-24 16:15:33 · 603 阅读 · 0 评论 -
uva 11093-Just Finish it up【贪心?链表】
从第1个加油站开始枚举,如果不chen原创 2014-07-25 18:49:41 · 728 阅读 · 0 评论 -
埃及分数
存一下代码,埃及分数的减枝和每一步的处理真的蛋疼至极~原创 2014-08-01 09:16:28 · 630 阅读 · 0 评论 -
12545-Bits Equalizer贪心
比较蛋疼贪心,具体除非S和T在tongyiz原创 2014-07-26 18:49:08 · 502 阅读 · 0 评论 -
UVA 10718 Bit Mask
想了好长时间,一开始的思路就是原创 2014-06-01 18:15:22 · 737 阅读 · 0 评论 -
【分治思想】12627 Erratic Expansion
分治处理问题,需要注意的是用一个数组d[i]记录第i次fen原创 2014-07-25 15:33:56 · 673 阅读 · 0 评论 -
归并排序
#include#include#include#includeusing namespace std;#define MAXD 100 + 10int n;void MERGE(int array[],int p,int q,int r){ int R[MAXD],L[MAXD]; int n1 = q - p + 1; int n2 = r - q;原创 2014-07-28 14:17:30 · 509 阅读 · 0 评论 -
【UVA】11212-Editing a Book(IDA*搜索减枝)
uva的练习题,迭代加深搜索,做这道题的时候首先看了一下刘汝佳老师的分析,需要利用IDA*算法进行fenxi原创 2014-07-29 13:32:29 · 1291 阅读 · 2 评论 -
【uva】12325 - Zombie's Treasure Chest
一开始以为是动规,后来发现不是,算是贪心吧。原创 2014-07-29 18:04:29 · 1522 阅读 · 0 评论 -
【uva】1149-Bin Packing(贪心 + STL )
按照从小到大的顺序进行排列之后,原创 2014-08-01 17:33:58 · 802 阅读 · 0 评论 -
Transportation-301uva 回溯
比较简单的回溯,不过需要注意的是,遍历的时候需要加一个cur参数避免重复访问之前已经原创 2014-04-17 20:57:33 · 477 阅读 · 0 评论 -
141 The Spot Game
这题太恶心了。。。RE了二十几次。。。拿原创 2014-05-13 17:38:09 · 514 阅读 · 0 评论 -
Transportation-POJ 1040
回溯的练习题,以后少用memcpy了,复杂度haoda原创 2014-05-29 14:49:41 · 892 阅读 · 1 评论 -
【HDU 5402】Travelling Salesman Problem(构造)
被某题卡SB了,结果这题也没读好。。。以为每个格子可以有负数就当搜索做了,怎么想也搜不过去,后来发现每个格子是非负数,那么肯定就是构造题。题解如下:首先如果nn为奇数或者mm为奇数,那么显然可以遍历整个棋盘。如果n,mn,m都为偶数,那么讲棋盘黑白染色,假设(1,1)(1,1)和(n,m)(n,m)都为黑色,那么这条路径中黑格个数比白格个数多11,而棋盘中黑白格子个原创 2015-08-18 21:14:17 · 915 阅读 · 0 评论