自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (5)
  • 收藏
  • 关注

转载 DAT结构

Darts: Double-ARray Trie System开篇Darts 是用于构建双数组 Double-Array [Aoe 1989] 的简单的 C++ Template Library . 双数组 (Double-Array) 是用于实现 Trie 的一种数据结构, 比其它的类 Trie 实现方式(Hash-Tree, Digital Trie, Patricia T

2015-12-28 22:39:28 972

原创 杭电acm2709

设a[n]为和为 n 的种类数;根据题目可知,加数为2的N次方,即 n 为奇数时等于它前一个数 n-1 的种类数 a[n-1] ,若 n 为偶数时分加数中有无 1 讨论,即关键是对 n 为偶数时进行讨论:1.n为奇数,a[n]=a[n-1]2.n为偶数:(1)如果加数里含1,则一定至少有两个1,即对n-2的每一个加数式后面 +1+1,总类数为a[n-2];(2)如果加数里没有1

2015-12-21 15:27:03 462

原创 杭电acm2716

从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。#include #include char decryption[26];char ch[81];int main() { int i; while(gets(decrypti

2015-12-21 15:01:41 376

原创 杭电acm1143

首先当n为奇数时显然无解的,输出0;当n为偶数时,从小看:n=2时有3种。每增加两列,可以看成一下情况:1.这两列与之前不相连,单独摆放,有3种,即3*f(n-2);2.这两列与之前两列中间相连,也就是说中线有横着摆放的(n-2和n-1列),有这种,还可以把底下两个横着的放到顶上,所以有两种情况,把后4列看作整体,即2*f(n-4);而还有可能n-3与n-4

2015-12-21 14:26:07 441

转载 杭电acm1496

思路:首先,暴力会TLE,所以要把4个数分成2个和2个(关于这一点请阅读《挑战程序设计竞赛》)。注意到a*x1^2+b*x2^2的范围大小为2000000,我们不妨遍历前两个数,计算并记录在一个数组hash[]后,再遍历后两个数,并在hash[]中直接查找,这样复杂度就为O(n^2)(n=100)完整代码:[cpp] view plaincopy

2015-12-20 16:21:44 478

原创 杭电acm1425

#include #include #define N 1000001using namespace std;bool cmp(const int& a, const int& b) { return a > b;}int main() { int n, m, i; int d[N]; while(~scanf("%d%d", &n, &m)) { for(i=0

2015-12-20 16:09:05 530

原创 杭电acm1264

//据说使用线段树的 #include #include #define N 101int i, j, ans, buf[N][N];void print() { ans = 0; for(i=0; i<N; i++) for(j=0; j<N; j++) if(buf[i][j]) ans ++; printf("%d\n", ans);}int ma

2015-12-20 14:52:16 464 1

原创 杭电acm1272

通过数据要判断俩点:1、要保证每个点都相通,2、两点之间只有一条路径相通方法:1、判断连通图,即ans就是只有一个父节点,2、flag=1,即任意两点的父节点不能相同#include #include #define N 100001struct d{ int x; int y;}buf[N];int flag;int parent[N];bool judge

2015-12-19 15:40:41 481

原创 杭电acm1232

为啥ans要 -1 ? 未解。#include #define N 1000struct d{ int x; int y;}buf[N];int parent[N];int find(int x) { return x==parent[x] ? x : find(parent[x]);}void uni(int x, int y) { int a = find(x

2015-12-19 14:53:42 588 1

原创 杭电acm1213

并查集for(i=0; i//注意要-1,因为这里的i是从0开始uni(buf[i].x-1, buf[i].y-1);#include #define N 1001struct d{ int x; int y;}buf[N];int parent[N];int find(int x) { return x==parent[x] ? x : find(pa

2015-12-19 14:28:43 635

转载 十大思想实验

思想实验是指:使用想象力去进行的实验,所做的都是在现实中无法做到(或现实未做到)的实验。例如爱因斯坦有关相对运动的著名思想实验,又例如在爱因斯坦和英费尔德合著的科普读物《物理之演进》中,就有一个实验要求读者想像一个平滑,无摩擦力的地面及球体进行实验,但这在现实(或暂时)是做不到的。思想实验需求的是想象力,而不是感官。爱因斯坦曾说:“理论的真理在你的心智中,不在你的眼睛里。”而在这其中。伽利略的实验

2015-12-18 19:13:23 417

原创 杭电acm2700

我知道我很水。#include int main() { char c; int tmp = 0; while(scanf("%c", &c)) { if(c=='#') break; else if(c=='\n') { tmp = 0; } else if(c=='1') { tmp ++; printf("%c", c); } el

2015-12-18 12:46:31 432

原创 杭电acm1115

求多边形重心的题目大致有这么几种: 1、质量集中在顶点上 n个顶点坐标为(xi,yi),质量为mi,则重心   X = ∑( xi×mi ) / ∑mi   Y = ∑( yi×mi ) / ∑mi   特殊地,若每个点的质量相同,则   X = ∑xi / n   Y = ∑yi / n 2、质量分布均匀   特殊地,质量均匀的三角形重心:   X = (

2015-12-16 14:15:47 374

原创 杭电acm1086

S(abc) = (|ab|*|ac|*sinΘ) / 2 = |ab| × |ac| //叉积#include struct point { double x1, y1, x2, y2;}buf[101];int judge(int i, int j) { //叉积 int f1=0,f2=0; double acd=(buf[i].x1-buf[j].x1)*(

2015-12-16 13:18:17 889

转载 Beam Search Algorithm

HomeLearnersInstructorsDevelopersDownloadBeam Search Algorithm (Draft by Andrew Jungwirth)ObjectivesTo show how the Beam Search Algorithm uses a heuristic function and a

2015-12-15 15:10:53 664

原创 杭电acm1039

傻逼?还打个笑脸,笑尼玛。# include # include char str[1010] ;int isvowels (char ch){ if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') return 1 ; return 0 ;}int t1(char

2015-12-15 14:14:00 525

原创 背包问题

01背包问题题目有N件物品和一个容量为M的背包,每种物品只可以取一件。第i件物品的费用是c[i],价值是v[i]。求解将哪些物品装入背包可使价值总和最大。分析这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][j]表示前i件物品恰放入一个容量为j的背包可以获得的最大价值。则其状态转移方程便是:f[i][j]=max

2015-12-12 20:23:43 1137

原创 HMM Part-of-Speech Tagging

HMM Part-of-Speech TaggingA HMM is like this:Q=q1q2....qNA set of N statusA=a1a2...an1...annA transition probability matrix A, each aij representing the probability

2015-12-09 16:49:49 1026

原创 杭电acm1073

#include#includeusing namespace std;int main(){ int t,i; string s1,s2; string data,input; scanf("%d",&t); getchar(); //过滤掉数字后的回车字符,防止后面多读一行 while(t--) {

2015-12-08 13:11:50 477

原创 2015-12-7 15:29:40

看源码还是看Python比较好,不像看Java的,Java的繁杂。

2015-12-07 15:29:57 378

原创 Forward Algorithm

The goal of the forward algorithm is to compute the joint probability , where for notational convenience we have abbreviated  as  and  as . Computing directly would require marginalizing over al

2015-12-07 15:28:06 575

转载 An Implementation of Double-Array Trie

An Implementation of Double-Array TrieContentsWhat is Trie?What Does It Take to Implement a Trie?Tripple-Array TrieDouble-Array TrieSuffix CompressionKey InsertionKey DeletionDouble-Array Pool A

2015-12-06 20:35:25 396

转载 HMM和Viterbi

1. 隐马尔可夫模型的定义和构成2. 隐马尔可夫模型的三个问题3. 基于隐马尔可夫模型的分词算法实现1.1. 介绍隐马尔科夫模型之前首先说一下几个重要的概念,(1)马尔可夫假设:模型的当前状态仅仅依赖于前面n个状态,可以看到这种假设有可能会丢失信息。(2)马尔可夫过程:状态间的转移仅仅依赖于前n个状态的过程,也就是当前的状态跟前n个状态之前的状态

2015-12-05 21:08:17 511

转载 另一篇并查集

并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,杭电1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点

2015-12-05 16:43:18 234

转载 并查集(Union-Find)算法介绍

本文主要介绍解决动态连通性一类问题的一种算法,使用到了一种叫做并查集的数据结构,称为Union-Find。更多的信息可以参考Algorithms 一书的Section 1.5,实际上本文也就是基于它的一篇读后感吧。原文中更多的是给出一些结论,我尝试给出一些思路上的过程,即为什么要使用这个方法,而不是别的什么方法。我觉得这个可能更加有意义一些,相比于记下一些结论。

2015-12-05 16:42:23 293

转载 Trie树

很有段时间没写此系列了,今天我们来说Trie树,Trie树的名字有很多,比如字典树,前缀树等等。一:概念     下面我们有and,as,at,cn,com这些关键词,那么如何构建trie树呢?从上面的图中,我们或多或少的可以发现一些好玩的特性。      第一:根节点不包含字符,除根节点外的每一个子节点都包含一个字符。      第二:从根节点到某

2015-12-05 15:14:08 243

原创 杭电acm4530

神啊,原谅我愚笨的大脑吧。#include #include int main() { int T,x,q,tk; int m; scanf("%d",&T); int i; for(i=0;i<T;i++) { scanf("%d",&x); scanf

2015-12-05 13:36:59 233

原创 杭电acm4520

第28行,原来用的是abs,WA。因为返回的是int类型的,所以总是0。自己写了个myabs函数。#include #include float myabs(float a) { return a>0?a:-a; } int main() { int n, i, ans; double max, min, sum, temp, t1, t2, d[21];

2015-12-05 13:24:13 388

原创 学习HanNLP2015年12月4日 16:24:53

对于我来说,非学霸,智商一般。不能看完一个知识点就写出代码来,网上找不到单个的对应于一个知识点的源码,于是决定看开源了。看开源很痛苦,一个Java文件引了别的包的文件,去那个包里看看,它又引了一大堆别的包的文件。感觉是无底洞。但是还是要看,不知道到放寒假回家时的俩个月里能不能看完HanNLP。选HanNLP是因为它有比较好的文档(针对我的水平而言),作者有博客更新,还是Java的,本来看开源就痛苦

2015-12-04 16:31:45 868

转载 eclipse中导入jar包源文件

在项目中调试或查看代码过程中,有时点中某个类想看源代码,却会跳出"Class File Editor",此时需要导入相应源码才行。导入源码的方式如下:1.在弹出的"Class File Editor"页面,有个"Change Attached source..."按钮,点击该按钮,会弹出一个对话框,转到3;2.右键点击要查看源码的jar包,选中"Properties",点击

2015-12-04 16:18:20 1597

原创 杭电acm1228

#include #include int main() { char *num[10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; char ch, c[50], temp[20]; int i, j, k, l, num1, num2, ans; whi

2015-12-02 14:39:57 719

原创 杭电acm2050

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

2015-12-02 13:48:21 999

原创 杭电acm4535

错排公式。。。当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用D(n)表示,那么D(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推.第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法;第二步,放编号为k的元素,这时有两种情况:⑴把它放到位置n,那么,对于剩下的n-1个元素,由于第k个元素放到了位置n,剩下n-2个元素

2015-12-02 12:43:01 343

深入理解计算机系统(3th)随书代码

深入理解计算机系统第三版随书代码,深情分享,共同学习。

2018-03-24

文本挖掘(英文版)

2016-04-03

计算理论试卷答案

计算理论试卷答案

2016-01-03

Lucene创建与搜索索引

Lucene创建与搜索索引。个人做的流程总结。

2015-10-18

算法导论课程表

算法导论课程表,配合算法导论学习,可以功力倍增,事半功倍

2015-09-18

空空如也

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

TA关注的人

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