ACM
文章平均质量分 55
背包_十年
机器学习、计算机视觉、语音识别等方向学习。
展开
-
priority_queue
priority_queue函数原型及改造struct cmp1 { bool operator ()(int &a,int &b) { return a>b;//最小值优先 } }; struct cmp2 { bool operator ()(int &a,int &b) {原创 2015-02-22 17:16:25 · 628 阅读 · 0 评论 -
搜索 POJ2718
题目:题目链接 给出0~9中几个数字,个数大于2,而且都不相同。让你把这几个数分成两组,组成两个数。如给出:1 3 4 5,这样就可以组成:13、45两个数..等等,求组成这两个数的最小差。如之前的13与45相差32,这组数最小的就是:41和35,差6.解法:1.解释: 不解释,爆搜。枚举所有组合,进行稍微剪枝就行了。剪枝策略:这组数一定是对半分,个数最多相差1.0不能开头2.具体:原创 2015-08-31 19:08:42 · 420 阅读 · 0 评论 -
优先队列 POJ2010
题意:题目链接 有一所奶牛大学要招生,准备招N个,共有C个报名,每个有一个分数和它所需要的学费。现在政府要承担它们的学费,但是最多只能提供F的费用。要求你编程,使得满足费用的条件下招得得N头奶牛的分数的中位数最大。如果F费用没办法招满N头牛,那么输出-1,否则输出中位数。N<19999,是一个奇数C< 10510^5F < 2∗1092 * 10^9解法: 先将C头奶牛按照分数从小到大进原创 2015-09-10 09:30:32 · 567 阅读 · 0 评论 -
贪心 POJ1230
题目:题目链接 在二维坐标中,给出N面墙,给出每面墙的起始坐标和终止坐标,每面墙都是与xx轴平行的。给出K,现在要去除一些墙,使每一列的墙的数量不多于K。求需要去除的最少的墙数。N<100K<100坐标都小于100解法: 利用贪心策略:从左往右扫描每一列,如果这一列不符合要求则对它处理,拆除向右延伸得最长的那面墙。 注意:这道题有很多坑:给出每列墙的时候,可能先给右边的点,然后再原创 2015-09-02 22:20:21 · 1171 阅读 · 0 评论 -
DP POJ1260
题目题目链接1.题意: 给出几类珍珠,以及它们的单价,要求用最少的钱就可以买到相同数量的,相同(或更高)质量的珍珠。 对于样例Input的第一个例子: 2 100 1 100 2 按常规支付为 (100+10)*1 + (100+10)*2 =330元 但是全部按第二类珍珠的价格支付,同样买200个,虽然总体质量提升了,但是价格也提高了: (202+10)*2=424元。2.要求:N,原创 2015-09-04 19:10:05 · 404 阅读 · 0 评论 -
并查集POJ1308
题目:题目链接 给出一对对的数字a,b,表示从a到b有一条边。判断这是不是一棵树。多case,每个case以0 0 结尾输入以-1 -1结尾解法: 这道题还是很坑爹的,其实网上给的并查集的代码大部分都是错误的,虽然我也是错的。但是给的数据很水,节点<100.而且没有针对并查集的反例,,所以我们都过了~~先说说哪些不是树吧:有环:无根,没有入度为0的节点森林:多个根同一个节点有多个父亲原创 2015-09-11 08:49:28 · 1608 阅读 · 2 评论 -
编程之美2.18 数组分割
1.题目描述题目来源:NEU2015年2月月赛,1049题目大意:输入N,有一个整型数组a[], 里面有2*N个数据, 将这个数组分成两个数组,每个数组中有N个数,使这两个数组的元素和之差最小。 其中: N<100, 每个数据<100输入以0结尾2.思路背包问题:从中选取N个数,使它尽量靠近sum/2另一动态规划的思路:列举所有N个数可能组成的和 解法: 1. boo原创 2015-02-28 12:28:24 · 604 阅读 · 0 评论 -
自然数分解
1.题目描述题目来源:NEU2015年2月月赛 G题题目大意:给出一个自然数N,它能分解成一串连续自然数的和,如15 = 7+8 = 4+5+6 = 1+2+3+4+5 。问有多少种分法,15有四种(包含15)2.思路 设有一种分发为:N = (f+1) + (f+2) + (f+3) + …… + (f+n) , 那么(2f+n+1)∗n2=N\frac{(2f + n + 1)*n}{原创 2015-02-28 12:56:50 · 2349 阅读 · 0 评论 -
RMQ poj3368
题目链接题目大意 有一个数字串长度为n,输入顺序为非递减,给出一个区间[L,R],要求算出区间中某个出现次数最多的数,答案为它出现的次数。 1. N<10510^5 , 区间数cas<10510^5 2. 多组测试,以0结尾 解题思路 因为数组是非递减序列,所以可以将数组分段。(也叫游程编码,Run Length Encoding RLE) 1.扫描一遍数组,求如下:原创 2015-04-04 10:33:00 · 662 阅读 · 0 评论 -
Trie树 poj3630
题目链接题目描述 有n个电话号码,长度对多为10个,问存不存在一个电话号码是另一个的前缀,是就输出NO,否则YES。 1. n<10410^4 思路 Trie树裸题 1. 把所有字符串插入Trie树 2. 插入时进行以下判断: a. 当前插入的字符串可以沿着Tries树中的某条路径一直往下走,不用新开节点:可能比这条路径表示的字符串长,即最后才新开节原创 2015-03-15 11:24:35 · 1042 阅读 · 0 评论 -
DP POJ1160
题意:题目链接 有一排村庄,坐标表示村庄的位置。如(1、4、6、10)表示:在这几个点有村庄。现在要在这一排村庄中建立邮局,使得其它村庄到他们最近邮局的距离总和最小。 其中邮局有V个(V<=300),邮局有P个(P<=30)。问怎么设置邮局位置,求出最小距离。解法:1.表示方法dp[ii][jj] : 表示前 ii 个村庄 建 jj 个邮局时距离最小值。sum[i][j][i][原创 2015-08-30 16:21:51 · 658 阅读 · 0 评论 -
排序 POJ 1828
题目:题目链接给出N个二维点,要求所有不受控制点的个数,对于<x0,y0><x_0,y_0> , 如果存在点<x,y><x, y> 使得 x>=x0x>=x_0 && y>=y0y>=y_0,这就称为<x0,y0><x_0,y_0>受控于<x,y><x, y>。N<5*10410^4;multi_case解法:这个题目还算不错,,只允许Nlog(N)Nlog(N)的排序预处理和N的遍历。,,求原创 2015-08-30 23:09:46 · 636 阅读 · 0 评论 -
Bestcoder #10 hdoj5019
题目链接题目描述求AB的第K大公约数 思路枚举AB所有公因子(O(O_(10^6)))代码如下#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>using namespace std;const long long INF = 1000000000;long原创 2015-02-24 10:00:02 · 503 阅读 · 0 评论 -
线段树+离散化 poj2528
题目链接题目描述 有一面墙,现在需要在墙上贴广告做宣传,有N张广告,输入N组数据,代表每张广告所占的墙的范围。问:把所有广告贴好后,最多能看到多少张广告。(有的广告可能被后面贴的广告所掩盖) 1.N<10000, 墙的范围<10710^7思路常规思路:用一个数组表示一面墙,输入第k广告的范围i~j, 把a[i ~ j] 置为k,最后遍历整个数组,答案就是整数的个数 问题:原创 2015-02-25 20:11:38 · 513 阅读 · 0 评论 -
线段树基础 poj2352
题目链接题目描述有N个坐标,有一个点o坐标为(x,y) 如果有K个点坐标小于等于它的坐标(即:x0<=xx_0<=x && y0<=yy_0<=y),那么我们称点O在第K级,即level[k]。、 现要求求出level[0 ~ N-1]. 1. N < 15000, x,y < 32000, 无重复点 2. 输入的点Y按照从小到大排序,如果y相同,x从小到大排序思路因为输入时已经排好序,原创 2015-02-24 14:36:55 · 575 阅读 · 0 评论 -
Bestcoder #1 hodj4857
题目链接:题目题目描述思路输入看做一个图,每个约束条件是一条有向边,将这个图反过来建,(比如输入:5 1 , 5 6 , 6 1 , 3 6 , 3 4) 建图如下: 然后按照拓扑排序,每次选择最大的入队列,最后反过来输出。错误思路:正着建图,用一个DFS遍历,将每个点用一个与他在一条路径上的最小的节点号代表,这个号就可以看做它的优先级,然后按照拓扑排序将入读为0 的节点入队列,选择优先队原创 2015-02-23 15:59:58 · 564 阅读 · 0 评论 -
Bestcoder #10 hdoj5018
题目链接题目思路暴力一个个算出代码如下#include <cstdio>#include <cstring>#include <iostream>using namespace std;long long a[10000];int main(){ int T; scanf("%d",&T); while(T--) { int c; scanf原创 2015-02-23 21:36:39 · 578 阅读 · 0 评论 -
线段树基础 poj2104
题目链接题目描述有N个数,1~N,存在数列a[1~N]中(无序),输入i,j,k。求a[i ~ j] 之间第K小数。如 数列:1 5 2 6 3 7 4. 输入2 5 4 .输出:6 思路用一个结构体存储输入元素的值和当前所在位置将结构体按照输入元素值排序从1 ~ N遍历每个元素,统计位置在i,j之间的元素个数,统计到第K个,这个位置对应的元素的值就是所求答案 代码#include <ios原创 2015-02-24 12:43:15 · 585 阅读 · 0 评论 -
离散化+扫描线 poj1151
题目链接1.题目描述N代表矩形的个数,接下来N行,每行4个数:(x1,y1x_1, y_1)(x2,y2x_2, y_2)表示一个矩形的左下点和右上点的坐标,求所有矩形所覆盖的面积。 要求: 1. N<100 , (x1,x2,y1,y2x_1, x_2, y_1, y_2 )<10510^5, 可以为浮点数 2. 面积显然可以多处重叠2.思路case: 2 / 10 10 20原创 2015-02-28 11:04:48 · 505 阅读 · 0 评论 -
Windows cmd快捷键
转载于Win键+R 可调出运行最常用的是tab键,他会补全路径,这个大家应该都是到。其次还有”Ctrl+←“键和“Ctrl+→”, 他们分别跳到前一个单词和后一个单词。还有一组快捷键是这次新学到的:F1 - F9F1: 功能相当于“→”,对上一条命令进行逐字打印。 输入一条命令,回车执行,再按F1变可看到效果F2: 按下此键后,会在中间反白提示“输入可复制的字符数量”,开始看这句话真的没看懂。 网上转载 2015-03-22 14:45:41 · 2868 阅读 · 0 评论 -
POJ1088 动态规划
题意:题目链接解答: 这个题目和最长子序列什么的极为相似。不过之前都是一维,现在变成二维的了。仅此而已。因此我们可以想办法把它先变成一维的。先用一个结构体存储这个矩阵,这就成一维的了。struct Node{ int height; //这个是高度 int r; //x坐标 int c; //y坐标}a[100*100+5];然后我们可以根据hei原创 2015-08-23 16:58:28 · 700 阅读 · 0 评论 -
Trie树 poj2503
题目链接1.题目描述 有一本字典,英语对应外语,现在要求输入一个外语单词,如果字典中相应的英语解释就输入对应的英语单词,否则输出en; 1. 字典中的单词书 n < 10510^5 2. 要求判别的单词没有给出(注意输入) 2.解题思路 >map容器 - map<string, bool> flag //表示一个外语单词是否对应英语单词 - map<string,strin原创 2015-03-22 15:59:43 · 749 阅读 · 0 评论