自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

转载 Latex简历

http://www.xiangsun.org/tex/notes-on-moderncv

2015-05-05 15:41:27 373

转载 遍历二叉树的各种操作

http://blog.csdn.net/hackbuteer1/article/details/6583988

2015-05-05 15:38:08 325

转载 经常需要查询的一些东西

一、SQLhttp://www.w3school.com.cn/sql/index.asp二、正则表达式(Java)http://developer.51cto.com/art/200902/110238.htmhttp://josh-persistence.iteye.com/blog/1881270三、Pythonhttp://www.cnb

2015-05-05 15:17:49 416

转载 二分查找

http://www.acmerblog.com/ubiquitous-binary-search-5345.html二分查找及一些变形,用了循环不变式来解释,理论比较统一。

2015-03-30 11:31:15 318

原创 Java调用Bing翻译

要翻译一些语料,Google的api收费了,有道的api限制多,只好用微软的。有人已经做了很好的封装,网址为https://code.google.com/p/microsoft-translator-java-api/需要有Windows Azure Marketplace Client ID and Client Secret,获取方法网页上也有

2013-11-26 16:54:47 1250

转载 一般筛法求素数+快速线性筛法求素数

素数总是一个比较常涉及到的内容,掌握求素数的方法是一项基本功。基本原则就是题目如果只需要判断少量数字是否为素数,直接枚举因子2 。。N^(0. 数 5) ,看看能否整除N。如果需要判断的次数较多,则先用下面介绍的办法预处理。一般的线性筛法首先先介绍一般的线性筛法求素数void make_prime() { memset(prime, 1, sizeof(

2012-09-11 11:21:18 494

转载 hdu 1717小数化分数2

众所周知,有限小数是十进分数的另一种表现形式,因此,任何一个有限小数都可以直接写成十分之几、百分之几、千分之几……的数。那么无限小数能否化成分数? 首先我们要明确,无限小数可按照小数部分是否循环分成两类:无限循环小数和无限不循环小数。无限不循环小数不能化分数,这在中学将会得到详尽

2011-07-10 10:05:01 456

转载 hdu 1271 整数对

假设A中去掉的数在第k位,可以把A分成三部分,低位,k,和高位。A == a + b * 10^k + c * 10^(k+1)B == a         +         c * 10^kN == A + B == 2 * a + b * 10^k + c * 10^k *

2011-07-10 09:16:09 411

原创 HDU 2136 Largest prime factor

求一个数的最大质因子,一开始把素数筛出来,然后从大到小试,超时,其实在筛素数的时候可以把每个数的素因子确定下来,这样之后只要O(1)就可以了。注意筛素数时,不能到最大范围的平方根就结束,这样是找不出最大的来的。#include #include #include us

2011-07-09 21:18:27 426

原创 URAL1056 Computer net

<br />先求出树的直径(从一点DFS找最远点,再从最远点DFS找最远点,两个最远点的距离为直径)。然后由一条直径的两个端点分别标记距它们不超过(直径+1)/2的点,两次都被标记的就输出。<br /> <br />#include <iostream>#include <cstdio>#include <cstring>#define HEAD 10002#define EDGE 20004using namespace std;int n;int e=0,pnt[EDGE

2011-04-11 22:05:00 334

转载 HDU 3691 Nubulsa Expo

<br />【题目大意】<br />给定一个无向连通图和一个源点,让你选一个汇点,使得源点到汇点的最大流最小。输出这时的最大流流量。<br />【算法分析】<br />实际上就是求全局最小割。给的那个源点是废的,因为如果图被分割开了,无论当前这个源点在那一块,总有一个汇点在另外一块。所以可以无视他给的源点。<br />然后直接套Stoer-Wagner算法就可以了。

2011-04-02 23:18:00 935

原创 hdu 1983 Kaitou Kid - The Phantom Thief (2) DFS + BFS

思路:封锁出口或者入口周围的格子. 最多需要4个封锁点. 所以我们可以采取这样的策略: 1.寻找一条盗贼的可行路线,如果没有,返回0. 2.计算封锁出口和入口四周需要的封锁点数量,取小的一个,假设是k,k 3.从少到多,遍历所有封锁点个数小于k的方案,验证是否是一条有效的覆盖方案(可以通过是否阻止了1中的盗贼线路进行快速验证). 如果有有效覆盖方案,返回这个方案的覆盖点值,否则继续. 4.如果没有比k小的覆盖方案,返回k. 时间复杂度: 最多(M*N)^3次有效覆盖验证.即(8*8)^3=256k次.其中有

2011-03-17 21:33:00 813

原创 HDU 1356 The Balance

<br />给出 两种砝码的重量 和要测量的重量<br />给定 a b c找到满足ax+by=c 的令|x|+|y|最小(等时令a|x|+b|y|最小)不妨a>b<br />先用扩展欧几里得算法求出 一组解 x0,y0<br />通解可以表示为x=x+k*b’ *t y=y-k*a’ 其中a’=a/d , b’=b/d;<br />|x|+|y|=|x+b/d *k |+|y-a/d *k| 这个函数的最小值<br />因为a b k x均为整数<br />故求|y-a/d *k|的最小值,分析可知会在y

2011-03-17 18:14:00 1164

原创 线分平面,平面分空间

<br />(1) n条直线最多分平面问题<br />题目大致如:n条直线,最多可以把平面分为多少个区域。<br />析:可能你以前就见过这题目,这充其量是一道初中的思考题。但一个类型的题目还是从简单的入手,才容易发现规律。当有n-1条直线时,平面最多被分成了f(n-1)个区域。则第n条直线要是切成的区域数最多,就必须与每条直线相交且不能有同一交点。 这样就会得到n-1个交点。这些交点将第n条直线分为2条射线和n-2条线断。而每条射线和线断将以有的区域一分为二。这样就多出了2+(n-2)个区域。<br />

2011-03-17 18:06:00 1849 1

原创 HDU 1568 Fibonacci

<br />先看对数的性质,loga(b^c)=c*loga(b),loga(b*c)=loga(b)+loga(c);<br />假设给出一个数10234432,那么log10(10234432)=log10(1.0234432*10^7)=log10(1.0234432)+7;<br /><br />log10(1.0234432)就是log10(10234432)的小数部分.<br /><br />log10(1.0234432)=0.010063744<br />10^0.010063744=1.0

2011-03-01 21:30:00 456

原创 阶乘末尾0

<br />求n!中末尾0的个数<br /> <br />解法:将n!中每个数分解因数,因为10可以表示成2和5的乘积,显然所有因数中2的个数肯定比5多,则末尾0的个数就是所有因数中5的个数。可以用n除以5得到1~n中能被5整除的数的个数,但这不是所有因子5的个数,因为有的数可能包含多个因子5,将这个数再次除以5,得到1~n中能被25整除的数的个数,以此类推,直到变成0为止,将所有的个数加起来即可。<br /> <br />#include <iostream>using namespace std;

2011-01-23 19:03:00 415

原创 p倍和子集问题

<br />设p为奇素数,在集合{1,2,3,...,p}的子集中,计算元素之和能被p整除的非空子集的个数。<br /> <br />推导比较麻烦,公式为N=(2p-2)/p+1

2011-01-19 18:42:00 600

原创 Ural 1260. A nudnik photographer

You can search some small test data, then the solution is here:<br />For f[n], there're three ways to construct it.<br />Put 2 onto 2nd position, then it's f[n-1];<br />Put 3 onto 2nd position, put 2 onto 3rd position. This is <br />f[n-3]! (You must put 4

2010-12-01 20:12:00 695

原创 Ural 1031. Railway tickets

<br />显然方程很好推f[i]=min{f[p[i,j]]+c[j]},j=1,2,3表示三种买票方式,<br />p[i,j]表示距离i最远的可用第j种票到的站(贪心)<br />#include <iostream>#include <cstdio>#include <cstring>#include <climits>using namespace std;int c[4],l[4],p[4][10003],d[10003],f[10003];void dis(in

2010-11-25 21:28:00 518

原创 Ural 1018. A Binary Apple Tree

<br />这道题,可以马上看出是树形Dp,f[i,j]表示以i为根的子树(还包括 [i与 i的父亲] 这条边)内,保存j条边最多可以有多少苹果,显然f[i,j]=max(f[left[i],k]+f[right[i],j-k-1])+apple[i];输出的结果是f[1][q+1],q+1是因为根节点还多了一个虚拟的边。还有,因为输入数据没告诉谁是父节点谁是子节点,要建成无向图。<br />#include <iostream>#include <cstdio>#include <cstring>

2010-11-24 21:15:00 427

原创 Ural 1081. Binary Lexicographic Sequence

<br />递推。 <br />首先,计算满足条件的N位序列的总个数。设为f[n] <br />f[n]=f[n-1]+f[n-2] <br />可是这样理解:长度为N的序列对应于: <br />1.长度为N-1的序列左边加上0 <br />2.长度为N-2的序列左边加上10 <br />之后就类似求排列序号的方法。 <br />要明白以下这个事实: <br />N位序列 0,a2,...an 必然在 N位序列 1,a2,..an 之前。 <br />而 0,a2,..an 序列数对应于f[n-1] <br

2010-11-24 15:27:00 415

原创 Ural 1017 The Staircases

<br />f[i,j]表示最后一个阶梯的高度不超过i,使用j个bricks的方案,那么转移方程就是f[i,j]=f[i-1,j]+f[i-1,j-i]; (j-i是因为,将i个bricks用来修最后一个阶梯,所以还剩j-i个bricks) .<br />#include <iostream>#include <cstdio>#include <cstring>using namespace std;long long f[501][501],n;int main(void)

2010-11-22 19:06:00 565

原创 Ural 1449 Credit Operations 2

给定一个N*N矩阵T,要求出两组值a[1..N],b[1..N],使得T[i,j]这道题考察了KM算法的知识,把矩阵的元素值看作二分图的边权值,我们要求的实际上就是KM算法中用到的顶标!

2010-11-09 19:18:00 567

原创 Ural 1280. Topological Sorting

<br />      这道题应该算是水题,但一开始想的算法却不是很好,从时间效率上应该能过,但就是超时,好的思路是将课的先后顺序记下,然后记下每门课是在第几次被学,如果发现与课的先后有矛盾,则NO。<br />#include <iostream>#include <cstdio>#include <cstring>using namespace std;int map[100002][2];int idx[1002];int main(void){ int

2010-11-08 19:45:00 437

原创 Ural 1106. Two Teams

<br />      一种思路是从按照从1到N的顺序,将还没有被放置的人放置在Team1中,将他的朋友全部放在Team2中,不能分成两组当且仅当有人没朋友。现在,只需要证明,当把一个人放在Team1时,他必然有朋友在Team2中或者未被放置。用反证法证明,如果把一个人I放在Team1时,他的所有朋友都已经把放在Team1了,那么,I就肯定已经被放在Team2里了。与把I放在Team1的条件“还没有被放置”矛盾。<br />     另一种思路是将每个人看成一个节点,如果两人是朋友,在这两人之间加边,然后按

2010-11-07 10:35:00 518

原创 Ural 1136. Parliament

<br />      应该算是一道数据结构题吧,但是放到了ural的图论专区了,给出一棵二叉搜索树按左、右、中的顺序输出的序列,求按右、左、中顺序输出的序列。解法是对于二叉搜索树后序输出的序列,将序列从后到前的顺序加入二叉搜索树,就可以还原出树来(同样对于先序的序列,可以从前到后加入),建好树后,再按右、左、中顺序输出,就可以了。当然,也可以不建树,直接递归模拟出来。<br />#include <cstdio>using namespace std;int dat[3002];bool

2010-11-04 19:37:00 531

原创 POJ 2513 Colored Sticks

这个题目涉及了多个基本数据结构和算法,虽然简单,但是比较综合。知识考查点:1,字典树;2,欧拉路:其中又考察了判断是否为连通图;3,并查集;一:图是联通的,将木棍两头的颜色并起来,如果最后有颜色的boss不一样,说明不能连成一条线,impossible。二:每种颜色的个数要么全为偶数,要么有且仅有两个点的度数为奇数,否则,impossible。<br />可以一边插入字典树,一边记录颜色的编号,一边进行并查集操作。<br />#include <iostream>#include <cstdio>#

2010-10-28 16:22:00 410

原创 POJ 3253 Fence Repair

      本题是简单的赫夫曼,因为每次将他们分开两半的时候都要按照长度收费,也就是说第一次被分开的只收费了一次,第二次被分开的收费了二次(因为前面已经收费了一次)......第n次分开的要收费n次。就是求如何合理的安排是的总费用最小,这是典型的最优生成树的问题,本题可以不用建树,根据所给的数据计算一下总的权值即可。      本题虽简单,但还是水了一把,主要是对总权值的计算理解错了,每次从优先队列中拿出两个最小的算出和,总全职加上这个和,然后把这个和插入到优先队列里。还有,数据量比较大,总权值用long

2010-10-27 16:59:00 298

原创 POJ 1840 Eqs

<br />题意:求方程 a1*x1^3 + a2*x2^3 + a3*x3^3 + a4*x4^3 + a5*x5^3=0的整数解个数,其中,-50<=ai,xi<=50,且xi!=0。输入给出ai。<br />思路:将算式化成 a1*x1^3 + a2*x2^3 =-( a3*x3^3 + a4*x4^3 + a5*x5^3),先求出左边所有的可能值,存入哈希表,再枚举右边的x3,x4,x5,对解计数即可。<br />我犯的错误:我一开始写的hash搜索函数,在找到一个之后立刻返回,因为有重复的,应该找

2010-10-19 17:22:00 301

原创 pku 3308 Paratroopers

这是一道最小点覆盖问题,以前也做过类似的,但那道题没有权值,做法是点数减去二分图匹配数(如果构图时重复计算了,二分匹配数别忘了除2)。而这道题有权值,方法是加入超级源点和超级汇点,源点和所有行节点相连,所有列节点和汇点相连,权值为行或列的花费,如果a行b列有敌人,则把节点a和节点b相连,权值为无穷大。现在求源点和汇点之间的最小割,即最大流。 还有一个需要注意的地方是,这里问题是要求cost的乘积,可以通过使用log()把乘法先转换为加法,最后输出的时候再用exp()转换回去。

2010-10-06 16:50:00 459

原创 POJ 2942 Knights of the Round Table

      用了好几天的时间,终于把这一块的知识弄懂了.....      题目大意:N个骑士中某些骑士之间会有仇恨。骑士们开会时围坐在一个圆桌旁。一次会议能够举行,当且仅当没有相邻的两个骑士相互仇恨,且开会人数为大于2的奇数。若某个骑士任何会议都不能参加,那么就必须将它踢出。给出骑士之间的仇恨关系,问需要踢出多少个骑士。       解题思路:先将所有的骑士看成一个点,如果两个骑士间有仇恨,那么他们之间就连一条边,这样就形成了一个有n个点的图,然后我们再求出此图的补图。显然这个补图中相连的两个点是不存在仇

2010-09-01 19:02:00 899

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除