acm
文章平均质量分 88
qq429205464
这个作者很懒,什么都没留下…
展开
-
poj 2503
题目大意:给你一个字典,先输入一个字典,每行两个单词,但一个是英文,第二个是外文,字典输入以空行结束,然后再输入外文单词,如果字典有这个单词就输入英文的单词,否则输出eh。 注意:首先字典要以空行结束,那么只能用可以识别空行的char类型来做,可以用getline()函数,然后是如何快速再找问题,如果直接查找无疑会超时,可以用二分查找 这里用到besearch()函数; C语言中 bsear转载 2011-10-26 20:18:26 · 540 阅读 · 0 评论 -
acm文件的输入输出
好久没发博客了,一来感觉写不出什么,二来感觉自己学的写的在网上普遍皆是,所以就懒得动笔了,但是昨天突然有个朋友让我帮忙看一道acm题,由于很久没做题了,感觉很多细节的东西都忘了,在这过程中,又让我想起了acm比赛中是何如评判你的结果是正确的呢?那就是改变文件的输入输入流了。多的就不说了,看下面代码 #include using namespace std; int main()原创 2013-11-08 09:00:23 · 1466 阅读 · 0 评论 -
不用加减乘除完成两数相加
看了剑指offer一书的一个题目,然后自己写了的代码,有迭代和递归两种方式,代码如下: #include int add(int a, int b) //迭代 { int c; c = (a&b)<<1; //保存进位 a ^= b; //相加,不考虑进位,类似与半加器原理原创 2012-10-12 22:53:56 · 851 阅读 · 0 评论 -
O(n)的随机生成不重复算法
前一段时间去实习时,老师为了分配开发板的问题,要我们写个O(1)随机数生成程序,当时没有想到,突然今天灵光一闪想到了一个算法,大家看看有什么问题 思路:在1到18个数中,生成8个不重复的数,,先用数组分别存1-18,然后每生成一个数(当下标使用),打印数组元素,再和数组的18-i的下标交换(’最后一个元素‘,因为每生成一个数,下标最大值减一),下面看程序 #include "std原创 2012-06-21 11:46:48 · 650 阅读 · 0 评论 -
poj 3468 A Simple Problem with Integers
最近在研究线段树,所以就先找简单点的练练手,虽然简单,但是对于刚入手的我来说,也不简单了,对于大牛就别掺合了,谢谢了。 说说我对线段树的理解吧, 就是定义一个结构体数组, 这个结构体的属性是包含一个线段的始点和终点,以及你所需要的操作属性,比如求一段区间的和,就多定义一个属性和的变量。还有些定义和细节我就不说了。 其次就是建树的过程了,这棵树你可以理解成完全二叉树,但是实质往往不是的。之所以要原创 2012-04-05 16:58:59 · 457 阅读 · 0 评论 -
0/1背包
0-1背包问题: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 这个问题的特点是:每种物品只有一件,可以选择放或者不放。 算法基本思想: 利用动态规划思想 ,子问题为:f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。 其状态转移方程是:f[i][v]=ma转载 2012-03-19 14:43:34 · 468 阅读 · 0 评论 -
生成函数
在提出「生成函數」的數學定義之前,我們先考慮幾個簡單的排列組合問題。 [例 a.1]考慮恆等式 (1+ax)(1+bx)(1+cx)=1+(a+b+c)x+(ab+bc+ac)x2+abcx3 如將 a,b,c 看作代表三物件,它的右邊是一多項式,其係數恰代表了將 a,b,c 作組合的各種可能。常數項 1 表示在三物件中一個都不取;x 的係數 a+b+c 表示在原创 2011-11-12 18:13:54 · 2936 阅读 · 0 评论 -
欧几里德 poj2115 C Looooops
关于拓展欧几里德,别人已经写的很好的了,我也自己写一下,方便以后自己复习。 其最基础的思想就是 gcd(a,b)=gcd(b,a mod b),其中 gcd的意思是求最大公约数。。 拓展欧几里德是用来求 x,y 是的a*x+b*y=gcd(a,b),---我们这样想 对于a'=b, b'=a%b=a-(a/b*b), a*x+b*y=gcd(a,b) a'*x0+b'*y0=gcd(a'转载 2011-11-11 18:41:45 · 659 阅读 · 0 评论 -
杭电2094
思路:这个可以用set容器来做,每输入一场比赛都将名两个字inset入总的容器中,讲失败的人insert入失败的容器中,如果能分出胜负,那总的容器的长度=失败的容器+1;因为胜者是不会进入失败的容器的!!!这样就不用模拟整个过程那么复杂了!! #include #include #include using namespace std; int main() { in原创 2011-11-08 21:44:02 · 1030 阅读 · 0 评论 -
POJ1265 Area
[Pick定理] pick定理: 设F为平面上以格子点为定点的单纯多边形,则其面积为:S=b/2+i-1。 b为多边形边上点格点的个数,i为多边形内部格点的个数。 可用其计算多边形的面积,边界格点数或内部格点数。 题目大意: 给你m个dx,dy,注意这个不是直接给出的坐标,而是转载 2011-10-29 23:13:21 · 482 阅读 · 0 评论 -
知道二叉树的前序遍历和中序遍历重构二叉树
知道二叉树的前序遍历和中序遍历,可以唯一确定一颗二叉树,在实现的细节是判断当前结点是否 存在左子树和右子树,比如下面一棵二叉树包含了所有情况 前序遍历为:A BCD EFGH 中序遍历为:CDB A FEHG 先是前序遍历的第一个结点为根节点A, BCD为左子树,EFGH为右子树,依次类推分解左右子树。但怎么判断是否有左子树或者右子树呢, 第一种情况,必有左子树,此时又可分为是原创 2012-11-01 01:03:59 · 1806 阅读 · 0 评论