摘要: //差分约束 >=求最长路径 #include#include#includeusing namespace std;#define N 1010#define M 1010*1010//注意边和点集的数组大小struct edge{ int to,value,next;};struct e... 阅读全文
posted @ 2014-07-21 19:06 keyboard3 阅读(143) 评论(0) 推荐(0) 编辑
摘要: #include#include#include#includeusing namespace std;#define N 5505#define M 55000//注意边和点集的数组大小struct edge{ int to,value,next;}edges[M];int heads[N]... 阅读全文
posted @ 2014-07-21 14:48 keyboard3 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 引用别人的解释:题意:有n个村庄,村庄在不同坐标和海拔,现在要对所有村庄供水,只要两个村庄之间有一条路即可,建造水管距离为坐标之间的欧几里德距离(好象是叫欧几里德距离吧),费用为海拔之差现在要求方案使得费用与距离的比值最小很显然,这个题目是要求一棵最优比率生成树,概念有带权图G, 对于图中每条边e[... 阅读全文
posted @ 2014-07-18 19:14 keyboard3 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 有向图是否具有欧拉通路或回路的判定:欧拉通路:图连通;除2个端点外其余节点入度=出度;1个端点入度比出度大1;一个端点入度比出度小1 或 所有节点入度等于出度欧拉回路:图连通;所有节点入度等于出度#include#include#define MAX 27int in[MAX],out[MAX];i... 阅读全文
posted @ 2014-07-16 22:09 keyboard3 阅读(126) 评论(0) 推荐(0) 编辑
摘要: #include#include#include#define max 10int dp[max][3];int number[max];//dp[i][0] 前i位数中不符合要求的总个数//dp[i][1] 前i位数中最高位是2的个数//dp[i][2] 前i位数中存在含4和有连续62的个数voi... 阅读全文
posted @ 2014-05-19 20:01 keyboard3 阅读(224) 评论(0) 推荐(0) 编辑
摘要: /*初始化并查集的所有集合 和根节点直接的关系 找到父节点 合并集合,并更新点和父节点直接的关系判断是否是真话 if 父节点不相等 true 加入集合中 if 相等 if() 判断在集合中与 根节点的关系对不对 对 true [加入集合]错 false 主函数: 创建集合 找到2点... 阅读全文
posted @ 2014-05-09 20:44 keyboard3 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 开学后的一个多月因为要准备acm省赛,所以docnet视频基本没看了!不过,虽然在省赛前每天都在做题,赛前刷了80多题吧!!但是比赛的时候就3题,渣啊!只做出了3个水题,后面两个小时搞两题就是出不来,不要紧,第一次比赛难免的。明年再继续!说实话acm真的可以锻炼人的思考问题和解决问题的能力还有就是算... 阅读全文
posted @ 2014-05-02 15:37 keyboard3 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 看到网上除了射线法,很长一段代码之外,看到了一个很简单的算法解决这个问题,特意转了过来/* 这个算法是源自《计算机图形学基础教程》(孙家广,清华大学出版社),在该书 的48-49页,名字可称为"改进的弧长法"。该算法只需O(1)的附加空间,时间复杂度为O (n),但系数很小;最大的优点是具有很高的精度,只需做乘法和减法,若针对整数坐标则 完全没有精度问题。而且实现起来也非常简单,比转角法和射线法都要好写且不易出错。 首先从该收中摘抄一段弧长法的介绍:"弧长法要求多边形是有向多边形,一般规 定沿多边形的正向,边的左侧为多边形的内侧域。以被测点为圆心作单位圆,将全部有 阅读全文
posted @ 2014-04-10 20:22 keyboard3 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 事实证明还是,题目拿到手之后,还是还是好好动手划一下比较好,不然直接想打哪!打到哪!很容易乱掉的。将数字倒着弄成字符串比较好处理。#include#include#define MAX 505char str[MAX][200];int ch1(char *a,char *b){ int l1,len,flag,coun=0,l2; int i=0,j=0; l1=strlen(a); l2=strlen(b); if(l1>l2) return 1; else if(l1=0;i--) { if(a[i]>b[i]... 阅读全文
posted @ 2014-04-08 09:09 keyboard3 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 好开心,手动自己按照字典树的思想用c写了一个优化后的trie字典树,就是用链表来代替26个大小的字符数组。完全按照自己按照自己的想法打的,没有参考如何被人的代码。调试了一天,居然最后错在一个小问题上,郁闷啊!!!最后终于调试出来了!!一次提交就ac了!!开心溢于言表啊!!!!!!/*trie树:插入: 插入一段字符串: 每个字符作为树的一层(同一层的节点通过兄弟节点项连),每个节点如果有后继节点的话,就把最大的后继放到其后面。 如果字符串结束,就在该节点处,connt++;然后用一个字符串指针指向实际匹配的字符串的地址。查询: 给定一个字符串,通过字符串... 阅读全文
posted @ 2014-04-06 22:01 keyboard3 阅读(190) 评论(0) 推荐(0) 编辑