acm
end
这个作者很懒,什么都没留下…
展开
-
字符串处理、
小学字符串、、num=count(s.begin(),s.end(),'a');算出字符串s里a的个数、、、当排序条件多时 用结构体存储然后用qsort对结构体数组排序、例:struct ss{ string s; int num;//s的长度}int com(c原创 2011-07-25 15:57:04 · 553 阅读 · 0 评论 -
hrbust oj 1189、线段树初探 简单应用之区间最大值、
http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1189代码:#include #define maxnum 100003#include using namespace std;int max(int a,int b){return a>b?a:b;}struct原创 2012-02-07 23:57:13 · 812 阅读 · 0 评论 -
hdu1058 优先队列与map判重、 补充手动堆排序做法、
#include #include #include #include using namespace std;priority_queue,greater >q;//优先队列,值小的元素优先map mark;//map判重int main(){ string sign; long long js=1,re[5843],fx[4]={2,3,5,7};//re 存储原创 2012-02-09 20:10:39 · 778 阅读 · 0 评论 -
hdu 1466、结题报告
Problem Description平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数。比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行)。 Input输入数据包含多个测试实例,每个测试实例占一行,每行包含一个正整数n(n Output每个测试实例对应一行输出,从小到大列出所有相交方案,其中每个数为可原创 2012-02-16 17:47:17 · 801 阅读 · 0 评论 -
哈夫曼树与哈夫曼编码、
哈夫曼树又称最优二叉树,是一类带权路径最短的树。节点间的路径长度:节点到节点的分支数(即层数差)树的路径长度:根节点到每个节点的路径长度总和节点的带权路径长度:从根节点到这个节点的路径长度与该节点的权值的乘机树的带权路径长度:所有节点带权路径长度的总和、哈夫曼数即带权路径长度最小的数、哈夫曼数的构造:(1)根据给定的n个权值{w1,w2,...,wn}构造n棵二叉树的集原创 2012-02-19 19:17:23 · 833 阅读 · 0 评论 -
搜索中的剪枝算法小议
【摘要】本文讨论了搜索算法中“剪枝”这一常见的优化技巧. 首先由回溯法解决迷宫问题展开论述,介绍了什么是剪枝; 而后分析剪枝的三个原则正确、准确、高效,并分别就剪枝的两种思路:可行性剪枝及最优性剪枝,结合例题作进一步的阐述; 最后对剪枝优化方法进行了一些总结.【关键字】搜索、优化、剪枝、时间复杂度引论在竞赛中,我们有时会碰到一些题目,它们既不能通过建立数学模型解决,又没有现转载 2013-01-19 18:08:18 · 771 阅读 · 0 评论 -
简单01背包问题 一维解决方法
首先简单01背包问题:N种物品 每种只有一个 给出每个的体积w和价值h再给出背包的体积V、问能装入物品的最大总价值是多少问题的最后分为两种情况 一是必须刚好物品总体积是V 二是不要求恰好 只求最大价值 在最后会对两种情况区分、每种物品只有一个 所以问题结果就是每个物品装包或舍弃的状态、状态转移方程为:f[i原创 2011-11-28 19:50:19 · 3148 阅读 · 2 评论 -
hdu1754 初探线段树之区间最大值、
#include #include using namespace std;int tmp;int max(int a,int b){ return a>b?a:b;}struct code{ int l,r,max;}xd[600001];//一般开最大值的三倍大小int creat(int u,int l,int r) //创建树{ int mid原创 2012-02-08 11:48:46 · 896 阅读 · 0 评论 -
多重背包问题、、、
多重背包问题的描述是 有N种物品 第i种物品有n[i]个背包容积是V 求最大价值、基本转移方程与多重背包相似 只不过数量有限:f[i][v]=max(f[i-1][v],f[i-1][v-k*w[i]]+k*h[i])|k转化为01背包问题 既把第i种物品变为n[i]种物品 对此还可以优化:把第i种物品分为若干件系数为k的物品 他们的cost和weight都是原来的k倍原创 2011-11-30 20:18:50 · 1150 阅读 · 0 评论 -
赌博中,关于保赢时赔率的小问题、、、
一场比赛有三种可能 赢 输 平、给出分别的赔率 写程序判断是否能通过不只下一种情况的注 来达到保赢、、、假设赔率是 a b c 压注分别是x y z那么min(ax,by,cz)>x+y+z 时满足条件假设ax最小 那么可以得到以下公式axaxax原创 2011-08-05 21:15:38 · 2971 阅读 · 2 评论 -
最大公约数 最小公倍数、、、
欧几里德算法原创 2011-07-25 11:52:35 · 606 阅读 · 0 评论 -
HDU 2012报告 关于sqrt、、、
#include #include using namespace std;int main(){ int x,y; int bj,sum,bj1,sq; while(cin>>x>>y) { bj=1;原创 2011-09-07 13:04:35 · 590 阅读 · 0 评论 -
zoj 1657 hash、、、
#include using namespace std;int main(){ int n,hash[32768]={0},num; for(int i=2;i<=16384;i++) { for(int j=2;i*j<=3276原创 2011-08-07 21:54:14 · 575 阅读 · 0 评论 -
poj 3278、、、BFS
简单BFS 、自己以前用了好多方法 发现还是多看别人的简洁 高效代码 为好、用STL queque 实现 #include #include using namespace std;int d[100001],hash[100001]; //深度原创 2011-09-15 12:34:50 · 801 阅读 · 0 评论 -
hrbust 1054 、、、括号匹配
出入一个字符串 里面只包含{}()[] 六种括号 判断是否匹配合法例: (){}({}) 合法({)} 不合法 这里采用堆栈思想,遍历字符串,每遍历到一个字符,与栈顶字符比较。如果匹配,将栈顶字符删除;否则入栈。我用数组模拟的栈操作,比较方原创 2011-09-20 19:56:31 · 559 阅读 · 0 评论 -
HDU 1113 解题报告
题目大意是类似字典,不过当查找时候字母顺序不同的单词也输出。上来就弄个结构体,元素是原字符串,和26个字母的哈希表。半天写完了才发现,当结果不唯一时,要求按照真实字典顺序输出。想过排序,但是太麻烦。问了void,才知道map这好东西。map word; 建立有两个string元素的map。当insert的时候自动按照第一个key值从小到大排序。第一个参数为原字符串,第二个是排序后的字符串。代码原创 2011-10-26 17:29:33 · 971 阅读 · 0 评论 -
hrbust 1133报告、MST最小生成树 Kruskal算法
最基本的MST最小生成树的题目、两种算法1.prim算法大致思想是任意选取一个节点a假如集合U 其它节点在集合V算出a到V中每个节点的最短路径值 将最近的节点从V中删除 加到U中直到所有节点都加到U中 既是最小生成树原理是因为每两个节点间最短边必定在最小生成树中、2.kruskal算法、利用并查集、原理是将所有边按权从小到大排序 每一个节点自己在一个集原创 2011-11-22 14:13:46 · 699 阅读 · 0 评论 -
完全背包问题、、、
刚学习过01背包问题 接着就是这个了:完全背包、 区别是每种物品的数量是无穷多个的、这样每种物品就不是放和不放两种状态了 而是放几个、状态转移方程就变成了 f[i][v] = max( f[i-1][v-k*w[i]] + k*h[i] ) | k*w[i] 时间复杂度很高 一点简单的优化:1.将高费用低价值的物品舍弃2.将费用高于背包体积的物品舍弃很多优化原创 2011-11-28 21:17:30 · 614 阅读 · 0 评论 -
四舍五入
输入两个数 第一个为整数 近似值 第二个为准确值判断是否四舍五入的正确例:3 3.4999 ---yes3 3.5 ---no只需讲准确值加上0.5后 取整原创 2011-07-27 10:14:07 · 596 阅读 · 0 评论