
简单数据结构题
code_mryxj
这个作者很懒,什么都没留下…
展开
-
(哈夫曼树思想 )poj 3253 Fence Repair
#include#include#include#includeusing namespace std;typedef long long ll;typedef unsigned long long ull;const int N=1000005;int inf=0x3f3f3f3f;ll mod=1e9+7;long long a[20010],ans;int main()原创 2015-11-05 01:17:55 · 578 阅读 · 0 评论 -
水水的哈希函数题解
1.hdu1800 Flying to the Mars 题意:给你n个数,输出出现最多次数数的次数。 思路:由于每个数长度小于30,需要对这些数用字符串读入后,用哈希函数对应一个值,开放地址法解决冲突。#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;ty原创 2015-11-15 00:16:03 · 536 阅读 · 0 评论 -
uva10129Play on Words(判断欧拉道路的存在)
题意:每个首尾字母一样的单词可以相连,问是否存在一条能连通所有单词的通路。典型判断欧拉道路是否存在。判断欧拉通路条件是,图首先是连通的,无向图里面,最多有两个点度数为奇数,有向图是入读等于出度,最多有两个点,一个点入度比出度大一,另一个点出度比入度大一。这题判断图连通性,可以选择并查集或者dfs.并查集#includeusing namespace std;int f[1100原创 2016-01-22 11:29:11 · 573 阅读 · 0 评论 -
uva11988 Broken Keyboard (a.k.a. Beiju Text)
题意:一串字符串,遇到‘[’ 相当于按了Home 键,光标到最前面,遇到']',相当于按了End键,光标到了最后面。思路:用next数组模拟链表,表示当前这个位置i的下一个位置next[i] 初始化next[0]=0;通常这样模拟链表会把第一个点next[0]空出来,作为空的头结点。(注意这一点很重要)#include #include #include #include原创 2016-01-14 15:07:54 · 272 阅读 · 0 评论 -
uva12657 Boxes in a Line
题意:在一排盒子,最初从小到大,记过以下有4个操作,求奇数位置的和。 1 X Y : move box X to the left to Y (ignore this if X is already the left of Y ) 2 X Y : move box X to the right to Y (ignore this if X is already the right of原创 2016-01-14 15:20:14 · 96 阅读 · 0 评论 -
uva673 Parentheses Balance
括号匹配。 就注意一点,cin原来是不读回车的. getline()可以将缓冲区的回车带走。import java.util.*;import java.io.*;import java.math.*;public class poj_1205 { public static void main(String[] args){ BigInteger f[]=new B原创 2016-03-03 15:47:29 · 359 阅读 · 0 评论 -
poj3614 Sunscreen (优先队列+贪心)
题意:有n头牛,和m种防晒霜,每头牛有两个属性,下限a,上限b,要求防晒霜的防嗮属性在这个范围内才有效,每种防晒霜有两个属性,防嗮属性和瓶数。问最多能使多少头满足条件牛? 思路:明显贪心,问题是怎么贪? 从防晒霜考虑,所有防晒属性下限大于防晒霜的牛都可以使用这个防晒霜,那我们优先选择满足里面上限最小的,这样后面的牛选择空间就大了。 操作,将牛按照下限,防晒霜排好序。 每次将满足牛下限小于防晒原创 2016-03-16 11:35:54 · 503 阅读 · 0 评论 -
poj2010 Moo University - Financial Aid
题意:一共有C名小牛,学校准备招收N名小牛入学,打算一共提供F奖学金,每名小牛有两个属性,成绩和希望得到的奖学金,问招收的N名小牛的中位数最大的情况是 ? 思路:先将C名小牛按照成绩排序,然后枚举每个小牛成绩作为中位数的情况是否满足 题意。 low[i],up[i]数组表示以i为中位数的小牛前面奖学金要求最少总和,和i后面要求奖学金数量最少总和。统计过程,借助优先队列,最大堆。#include<原创 2016-03-16 12:58:01 · 452 阅读 · 0 评论 -
hdu3018Ant Trip(欧拉道路的判断)
题意:给你点和边,问至少可以几笔把所有边画完,孤立的点没有边,不需要画。 思路:在无向图里,满足一笔画就是欧拉图,奇数点度的数量两个或无,如果出现更多奇度点,说明不能一笔画,而一笔画可以最多消掉两个奇度的点,所以每个连通块里需要画的次数就奇度点个数/2。 于是,整幅图需要画的次数,等于所有奇度点个数之和/2+欧拉图的个数。</c++>#include<bits/stdc++.h>typede原创 2016-01-22 15:34:04 · 570 阅读 · 0 评论