
ACM——之路
南山小翁
活在当下,要有思想,每个人不是随随便便就能成功!
展开
-
uva10038
一道简单的题目 学到一点东西 感觉剪枝就是找bug 挺爽的// 做这种题目的时候,一定要细心 1.注意数据的取值2.正负号问题 3.开始和结尾的值的大小#include#include#define max 3007long long num[max];long long check[max];int main(){ long long ans; long lon原创 2012-09-27 11:23:40 · 613 阅读 · 1 评论 -
hdu1247 简单的字典树
题意:给你n个单词,这些单词组成一个单词表。然后,在对这其中的的每个单词进行拆分(拆成两个单词),判断是否拆分完的单词是否都在这个单词表中,如果是输入该单词。 #include#include#includestruct dirtree{ struct dirtree *child[26]; bool vis;};char word[50000]原创 2013-01-11 11:04:45 · 698 阅读 · 0 评论 -
hdu1251 字典树的动态存储 不错!
#include#include#includestruct dirtree{ struct dirtree *child[26]; int n;};struct dirtree *root;void BuildTree(char *word){ int len=strlen(word); struct dirtree *tem,*Root;原创 2013-01-11 11:10:09 · 530 阅读 · 0 评论 -
表达式求值问题
OnlineJudge调查问卷ACboy(ACboy)收件箱(0)注销最值问题Time Limit: 1000MS Memory limit: 65536K题目描述 最值问题一直是我们比较关注的问题,设想一下当给定一个不含括号算数表达式后,加入适当的括号,必会取得最值。为了简化问题今天我们只考虑算术原创 2013-03-11 22:51:53 · 674 阅读 · 0 评论 -
poj1840 hash映射
注意short hash[25000001]; 用int会超时暴力解决。。。。。公式变形,利用hash映射,多对一。#include#include#define max 25000000short hash[25000001];//注意a,x1,b,x2的组合数(50*50^3*2)*2int main(){ int a,b,c,d,e; int x1,x2,原创 2013-03-14 16:26:03 · 695 阅读 · 0 评论 -
比赛题目
Give Me the NumberTime Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 7 Accepted Submission(s) : 2Problem DescriptionNumbers in Engl原创 2013-03-14 21:39:08 · 651 阅读 · 0 评论 -
zoj3204
题意:给你N台电脑,让你把它们全部连在一起,当把两个电脑连在一起时,有一定的花费,问你最小的花费是多少?注意:i和j相连同j和i相连是一样的,可以间接的连在一起,例如:i和j相连,j和t相连,那么i和t也相连。按照字典序输出,利用qsort()排序。然后判断连通度即可。#include#include#include#define max 110using namespace st原创 2013-03-22 14:30:26 · 663 阅读 · 0 评论 -
hdu1671字典树+动态分配内存
题意很好理解,这里只介绍思路:以前做字典树,为了方便都是静态分配内存,所以代码写出来很容易出bug,学了强连通之后,发现动态分配内存狠给力,所以就尝试用动态分配内存做了两道题目:题很简单,自己只是想学习一下动态分配内存#include#include#include#include#includeusing namespace std;int flag=0;struct原创 2013-04-15 20:41:49 · 1532 阅读 · 0 评论 -
hdu1247 字典树 单词拆分 如果让我说:我只能说,实力决定一切
思路:与普通的字典树不同的是,该题 我们需要把一个单词拆分成两个单词,例如:bbccc 可以拆分成:b bccc等等。然后判断拆分后的两个单词是不是在字典树中。#include#include#include#includeusing namespace std;struct dirtree{ struct dirtree *child[26];原创 2013-05-01 10:38:53 · 634 阅读 · 0 评论 -
AVL树的插入、删除、旋转
什么是AVL树?在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个儿子子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(logn)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者G.M. Adelson-Velsky和E.M. Landis,他们在1962年的论文《An alg转载 2012-11-14 19:53:35 · 619 阅读 · 0 评论 -
poj1056 http://poj.org/problem?id=1056
字典树题目:#include#include#define max 3000struct node{ bool ju; struct node *next[16];} Node,Rood[max];int sum=0;int BuildTree(char *word){ node *root=&Node; while(原创 2012-10-28 17:10:11 · 888 阅读 · 0 评论 -
poj2513 很好的一道题目 并查集+字典树
题意:You are given a bunch of wooden sticks. Each endpoint of each stick is colored with some color. Is it possible to align the sticks in a straight line such that the colors of the endpoints that touc原创 2012-10-27 15:38:56 · 787 阅读 · 0 评论 -
poj2524 很简单的一道并查集
题意很简单:就是求不连通的个数。 //好久没做并查集了,快没感觉了,找了个简单的题目练练。//以后得注意了,学的东西要及时巩固。//时间有点长 可以继续优化;//rank[]的值不可以随便更改。//但是自己可以增加一个判断常量。#include#include#define MAX 50002int farther[MAX];int rank[MA原创 2012-10-13 18:30:12 · 481 阅读 · 0 评论 -
poj并查集小结
并查集小结并查集大体分为三个:普通的并查集,带种类的并查集,扩展的并查集(主要是必须指定合并时的父子关系,或者统计一些数据,比如此集合内的元素数目。)POJ-1182经典的种类并查集POJ-1308用并查集来判断一棵树。。注意空树也是树,死人也是人。POJ-1611裸地水并查集POJ-1703种类并查集POJ-1988看上去似乎和种类并查集无关,但其实仔转载 2012-10-14 09:39:30 · 2038 阅读 · 0 评论 -
hdu1671
一道水题:判断有没有前缀。 #include#include#define max 100010struct node{ bool tem; struct node *next[12]; node() { for(int i=0; i<11; i++) next[i]=NULL; }} Node,Root原创 2012-10-31 19:22:56 · 440 阅读 · 0 评论 -
poj2945 字典树题目
判断相同字符的个数#include#include#define max 510010struct node{ int len; int ju; struct node *next[26];} Node,Root[max];int sum=0;int num[max];void BuildTree(char *word){ node *root=&原创 2012-10-31 19:50:39 · 949 阅读 · 0 评论 -
poj3295 http://poj.org/problem?id=3295
一道表达式求值的题目: //思路://5个变量(取0||1)有32种取值方式 可以将他们全部找出来 进行判断是不是为永真式//从后面进行处理//k->x&&y//A->x||y//N->!x//implies->(!x)||y//E->x==y;#include#include#include#includeusing namespace std;stack tem;原创 2012-10-23 12:03:13 · 591 阅读 · 0 评论 -
线段树的题目
//zoj 1610 线段覆盖//poj 2777 线段覆盖//poj 2528 需要离散化,建树不同,需要处理不同->注意这组数据 3 1 10 1 3 6 10 the ans is 3.//hdu 1754 求区间最大值//hdu 1166 求区间和//hdu 1698 成段更新//poj 3468 成段更新//ural 1019 覆盖加统计最长同一个颜色//zoj 230转载 2012-11-01 14:07:12 · 1425 阅读 · 0 评论 -
hdu 3791
//今天刚学完二叉查找树 找个题目练练 这个题目有点水 直接用数组存吧//二叉查找树#include#include#include#define max 3000char Tree1[1100],Tree2[max],Tree3[max];void buildTree(char *temTree,int pos,char data){ if(temTree[pos]=='原创 2012-10-23 20:58:12 · 1592 阅读 · 0 评论 -
poj2001 http://poj.org/problem?id=2001 简单的字典树题目
暑假集训的时候 做了10道字典树的题目 今天发现遗忘的狠厉害啊 所以 做了道简单的找感觉。#include#includestruct node{ int count; node *next[26];} root,Root[26000];int big=0;char work[1010][21];void buildTree(char *root1){ no原创 2012-10-26 19:25:16 · 615 阅读 · 0 评论 -
poj2001 从现在开始,我要做的足够 强大
思路:字典树,我们对每个单词中的字母 进行记录出现的个数,在查找的过程中,我们可以 我们只需要查找到知道前缀中的字母出现了一次,或则找到单词末尾 #include#include#include#includeusing namespace std;struct node{ int sum; struct node *next[26];原创 2013-05-01 19:33:12 · 574 阅读 · 0 评论