acm
文章平均质量分 65
laserss
laserss@qq.com
展开
-
HDU1319 & PKU3518 - Prime Cuts
#includeusing namespace std;int list[1010]={0,1,2,3};int Find(int N) //小于N的素数的个数 { int i; for(i=1;i<=1000;i++) if(N<list[i]) { i--; break; }原创 2012-07-05 21:35:53 · 733 阅读 · 1 评论 -
PKU3518 Prime Gap
prime gap仅以素数开头和结束的序列 例如:13 14 15 16 17 (长度为17-13=4) 给定一个整数k ,输出包含 k 的prime gap的长度。 如果k是素数 ,输出0 #include#includeusing namespace std;bool Isprime(int n) //素原创 2012-07-06 11:11:51 · 1321 阅读 · 0 评论 -
hdu1035 Robot Motion 模拟
mp[r] [c] [0]保存 地图上(r,c) 的方向如下 N(8) W(4) E(6) S(2)mp[r] [c] [1]保存点(r,c)被经过的次数 当第三次遇到(r,c)是不再继续否则mp[r] [c] [1]++ #include原创 2012-07-08 09:44:01 · 542 阅读 · 0 评论 -
hdu3560Graph’s Cycle Component 并查集
看了那么多题解 看不懂怎么判断环就算了 代码还是错的- -哎……一个大牛写的 ,很简单的思路http://yimaoblog.diandian.com/post/2011-02-22/18444418#notes 思想:并查集判断部分的个数,用点的度来判断是否是环,点构成环的充要条件是该环中每个点的度皆为2; 代码流程:1、初始化每个点的度为0,每个点所原创 2012-07-07 19:30:52 · 846 阅读 · 0 评论 -
pku计算几何题集
计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠。3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模板。如果代码一片混乱,那么会严重影响做题正确率。4.注意精度控制。5.能用整数的地方尽量用整数,要想到扩大数据的方法(扩大一倍,或扩大sqrt2)。因为整数不用考虑浮点误差,而且运算比浮点转载 2012-07-09 16:49:11 · 655 阅读 · 0 评论 -
hdu1205 吃糖果解题思路
仔细想想其实不那么难的把最多的那种 M(共计max个) 摆成一列,产生max-1个间隔,对于M来说,其他的糖果都是异类 (共计 sum-max个),可以用来填充间隔,但是如果sum-max当sum-max>=max-1时,M的间隔一定能被填满 printf("Yes\n");注意sum数值较大 在异类中任选一种糖果N (N循环上一步直至结束MMMMM原创 2012-07-10 20:33:08 · 1333 阅读 · 0 评论 -
hdu2544 bellmanford实现
//hdu2544 #include #define Infinity 0x3f3f3f3fusing namespace std;struct Edge_Node{ int s,e,c; //start end cost } g[10005];int dist[105];原创 2012-07-10 10:58:58 · 869 阅读 · 0 评论 -
hdu2112HDU Today dijkstra最短路
hdu2112HDU Today1.无向图2.起点和终点可能是同一点,输出为0#includeusing namespace std;#define INF 1000000000int mp[160][160],visit[160],V;char name[160][35];int num(char t[]){ int i; for(i=1;i原创 2012-07-15 22:55:20 · 811 阅读 · 0 评论 -
hdu1690 Bus System floyed最短路
hdu1690 Bus System floyd中3个循环的顺序弄反了 wa了一天 = = 正确顺序应该是先 中间节点 k ,然后才是 i , j。 #includeusing namespace std;int INF = -1; __int64 mp[110][110],location[110],N,M,L1,L2,L3,L4,C1,C2,C原创 2012-07-14 15:52:19 · 807 阅读 · 0 评论 -
pku 3259 Wormholes (Bellman ford判断负权边)
题目链接: pku3259 Wormholes 之前在数据结构书上看了dijkstra 和floyed(从来没有自己写过) 但是有负权边的一直不会 所以专门找了题目看看怎么写 感觉上bellmanford 跟 dijkstra 处理问题的关键步骤差不多都是不断的松弛 但是bellmanford顺序不同dijkstra是对每个点进行松弛原创 2012-07-09 11:09:33 · 764 阅读 · 0 评论 -
hdu2680最短路Choose the best route
hdu2680Choose the best route 先将多个起点用一个超级源点连接 ,权值为0然后用dijkstra就可以得到结果了 #includeusing namespace std;#define INF 100000000int mp[1010][1010],dist[1010];bool visit[1010];int main(){原创 2012-07-13 16:23:46 · 637 阅读 · 0 评论 -
hdu1596 find the safest road 最短路dijkstra
hdu1596 find the safest road 最短路程改为最大概率之前的INF,min,三角不等式都需要修改 #includeusing namespace std;#define INF 10000000int N,visit[1010];double mp[1010][1010],dist[1010];double dij(int s,in原创 2012-07-13 20:02:11 · 1307 阅读 · 0 评论 -
hdu1282回文数猜想
hdu1282回文数猜想 字符串的操作太弱了。。。。花了将近3个小时,还好一次就过了 不然真的会疯掉 #includeusing namespace std;int main(){ char x[20],y[20],t[100][20]; int i,j,num,len,n; while(scanf("%s",x)!=EOF) { num=0;原创 2012-07-17 11:19:55 · 1048 阅读 · 0 评论 -
最短路学习
dijkstra bellmanford spfa floyd的区别: bellman-ford 可以有负权,但不能有负权回路,spfa是bellman-ford的队列优化,时间发咋度o(ke),其中k为所有顶点进队的平均次数,可以证明k一般小于等于2。 dijkstra 不可以有负权,但效率比bellman-ford快,o(2n次方),用二叉堆优化o(原创 2012-07-08 21:13:40 · 762 阅读 · 0 评论 -
hdu2036 求多边形面积
题目: hdu2036按逆时针方向给出平面上一系列点的坐标求出面积需要了解多边形面积公式简单多边形的面积求解:http://www.zhongsisi.com/solving-simple-polygons/向量叉乘:http://wenku.baidu.com/view/867e6edfad51f01dc281f11a.html高中学到的知识都要忘光了……ht原创 2012-07-18 10:23:05 · 3426 阅读 · 0 评论 -
hdu2068 RPG的错排
hdu2068RPG的错排 错排详解:http://blog.csdn.net/jiahui524/article/details/6624977...hdu2068思路:http://hi.baidu.com/owen563/item/90f206307cbeb32ab2c0c5cd...组合公式 :http://wenku.baidu.com/view/原创 2012-07-18 20:04:59 · 1300 阅读 · 0 评论 -
hdu1532 & pku1273 Drainage Ditches 网络流(最大流EK算法)
hdu1532 &pku1273 Drainage Ditches(最大流EK算法) 本题的算法流程1.初始化pre2.BFS求增广路径P 不存在:break ,return flow;3.求P中最小值aug4.修改P中残留容量,流flow++++ 需要注意:1°BFS找增广路径2°前缀数组pre的遍历 //pku原创 2012-07-10 09:23:34 · 821 阅读 · 0 评论 -
快速乘幂
http://blog.sina.com.cn/s/blog_87cb8e680100so6o.html 第一个,是二进制分解法:举例,求2的13次幂,13=8+4+1,所以2^13=2^1 * 2^4 * 2^8所以我们只用求2^1, 2^2, 2^4, 2^8,然后再做两次乘法就可以了,总共要4+3=7次乘法代码:int power(int a, int n) {i转载 2012-07-11 19:03:55 · 1574 阅读 · 0 评论 -
hdu1757A Simple Math Problem 矩阵乘法
hdu1757A Simple Math Problem 问题是怎么转化成矩阵相乘的呢?请参考:http://blog.csdn.net/fangzhiyang/article/details/6929747看懂了思路再用自己的代码实现(二维数组真心不方便,下次换结构体) #includeusing namespace std;int m0[11][11],m1原创 2012-07-20 01:21:23 · 1735 阅读 · 0 评论 -
hdu2068 & hdu 2049 错排组合
这部分涉及的知识为组合数和错排 ,参考http://blog.csdn.net/jiahui524/article/details/6624977 比较简单 hdu2068 #include#include__int64 C(int n,int m) //组合数公式{ __int64 u,d,i; //组合数公式中的原创 2012-07-18 22:50:33 · 2601 阅读 · 0 评论 -
poj1125Stockbroker Grapevine - floyd最短路
poj1125Stockbroker Grapevine题目生词比较多...翻译如下:http://poj.org/showmessage?message_id=162255首先,题目可能有多组测试数据,每个测试数据的第一行为经纪人数量N(当N=0时,输入数据结束),然后接下来N行描述第i(1每行开头数字M为该行对应的经纪人有多少个经纪人朋友(该节点的出度,可以为0),然后原创 2012-07-21 10:10:36 · 779 阅读 · 0 评论 -
Aizu 1180 Recurring Decimals
Aizu 1180 Recurring Decimals 看到字符串就头疼啊。。。。超麻烦 //Aizu 1180 Recurring Decimals//字符串 #include#include#includeusing namespace std;string aaaa[7]={ "0","0","00","000","0000","00000","00原创 2012-07-21 17:35:43 · 587 阅读 · 0 评论 -
HDU 动态规划(46道题目)倾情奉献~ 【只提供思路与状态转移方程】
Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱 最脑残的是把总的概率以为是抢N家银行的概率之和… 把状态转移方程写成了f[j]=max{f[j],f[j-q[i].v]+q[i].money}(f[j]表示在概率j之下能抢的大洋);正确转载 2012-07-22 12:39:36 · 1522 阅读 · 0 评论 -
hdu2037今年暑假不AC 贪心
hdu2037今年暑假不AC第一次看贪心感觉很像动态规划。。。。。。。。。。。。首先对n中节目排序例如题中数据排序后为0 71 32 93 43 84 145 106 128 1810 1515 1915 20之后就是贪心的思想了用最少的时间看最多的节目#includeusing namespace std;str原创 2012-07-23 20:42:43 · 815 阅读 · 0 评论 -
hdu1251 统计难题 字典树
hdu 1251 统计难题 字典树的解释及模板 背下来.. #includeusing namespace std;struct trie{ int num; bool isword; trie *child[26]; trie() { for(int i=0;i<26;i++) child[i]=0; num=0;isword=0; }}原创 2012-07-26 15:02:02 · 849 阅读 · 0 评论 -
hdu1075 What Are You Talking About-字典树
hdu1075 What Are You Talking About 模板是对了,但是题目的格式没弄清楚,然后换了一个主函数ac了。。。。 #includeusing namespace std;struct trie{ bool isword; char word[11]; trie *child[26]; trie() { for(int i=0;i原创 2012-07-26 19:26:47 · 718 阅读 · 0 评论 -
hdu1342&poj2245Lotto - dfs
hud1342dfs第二题 不怎么熟练看了别人的代码//hdu 1342 poj2245#include#includeusing namespace std;int ans[6],S[20];void dfs(int k,int next,int n){ int i,j; if(n==7) { for(i=1;i<=6;i++)原创 2012-08-12 18:30:45 · 783 阅读 · 0 评论 -
hdu3999 the order of a tree - BST二叉搜索树的前序遍历
hdu3999 the order of a tree二叉搜索树(BST)跟字典树相比,BST占用的资源少很多所以要不要释放资源都无所谓?还是养成一个好习惯吧,,#includeusing namespace std;struct BST{ int num; BST *lson,*rson; BST() { num=-1; lson=rson=0原创 2012-07-27 21:25:31 · 1007 阅读 · 0 评论 -
hdu1671Phone List - 字典树
hdu1671Phone List简单的字典树空间换时间,花销超大,,,如果有多组数据的话 呃那用完就释放吧 , 恩 。#includeusing namespace std;struct trie{ bool exist; int num; trie *next[10]; trie() { exist=0; num=0; for(int i=0;原创 2012-07-27 16:12:50 · 789 阅读 · 0 评论 -
PKU2262 Goldbach's Conjecture 数论-素数
PKU2262 Goldbach's Conjecture 用筛选法生成素数表prime[MAX]。。。 之前一直把最简单的试除法当做筛选法来用,还认为效率很高, 然后这题就一直一直time limit exceed 1、试除法 用 n 除以 2-sqrt(n),有一个能除尽就不是素数,否则是素数。 时间复杂度:O(sqrt(n)) 2、素数原创 2012-07-16 14:10:31 · 1363 阅读 · 0 评论 -
hdu 1875畅通工程再续-prim最小生成树
hdu 1875畅通工程再续 邻接矩阵中的数据必须初始化完整 #include#includeusing namespace std;const double INF=1000000000.0;double mp[100][100]; struct point{ int x,y;} P[100];double prim(int N){ int i,j,k原创 2012-07-29 18:52:23 · 906 阅读 · 0 评论 -
hdu1242 Rescue
hdu1242 Rescue广搜的模板弄明白之后就觉得……太简单了#include#includeusing namespace std;char mp[201][201];int m,n,dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};struct point{ int x,y,step; friend bo原创 2012-08-16 13:08:51 · 788 阅读 · 0 评论 -
hdu1385Minimum Transport Cost-floyd+打印路径
hdu1385肚子好饿!#include#include#include#define M 500#define INF 1000000000using namespace std;int mp[M][M],path[M][M],fee[M];int main(){ int n,a,b,i,j,k,min; while(scanf("%d原创 2012-08-16 17:54:41 · 795 阅读 · 0 评论 -
扩展欧几里德
在辗转相除gcd(a,b)的基础上加以扩展可以得到使等式 a*x+b*y=1 成立的解#includeusing namespace std;int x,y;int gcd(int a, int b){ return b == 0 ? a : gcd(b, a % b);}int exgcd(int a,int b,int &x,int &y){原创 2012-08-18 17:14:23 · 798 阅读 · 0 评论 -
hdu2824筛选法欧拉函数+求和
hdu2824筛选版本的欧拉公式模板#include#define MAX 3000000using namespace std;__int64 E[MAX+10];void init() //模板 { int i,j; memset(E,0,sizeof(E)); E[1]=1; for(i=2;i<=原创 2012-08-18 21:45:51 · 2662 阅读 · 0 评论 -
hdu2516取石子
hdu2516234(-1) 解释4 - 1 = 3 , n==3为必败点,所以4为必胜点56(-1)7(-2)89(-1)10(-2)11(-3)12(-1) 13然后就是斐波纳契……#includeusing namespace std;int num[50];void原创 2012-09-02 21:44:57 · 1429 阅读 · 0 评论 -
10%
7.1~7.5目标:最小生成树(prim),最短路,数论(素数),树状数组,动态规划(最大子序列) 了解了最短路的bellman-ford算法 和 网络流→最大流7.6~7.10目标:最大流EK算法,二分匹配-匈牙利算法,矩阵乘法 在bellmanford上花了太多时间导致剩下两个算法(二分匹配-匈牙利算法,矩阵乘法)都没有来得及看7.11~原创 2012-07-09 13:49:32 · 667 阅读 · 1 评论 -
hdu1072 nightmare
hdu1072 nightmare……跟hdu1242有些不同走过的路可以返回所以不要标记,换炸弹的倒计时限制队列的增长#include#include#includeusing namespace std;int mp[10][10],m,n,Sx,Sy,Dx,Dy,flag,dir[4][2]={{0,1},{0,-1},{1,0},{-1,0原创 2012-08-16 14:58:08 · 688 阅读 · 0 评论 -
一道母函数的模板题 (hdu 2082)
终于算弄明白母函数是什么东西了 = = , 呼~ 感觉它利用了高中学的二项式定理(就是用到组合数的那个) 完完全全的利用啊~~!以前用二项式求出最后那超长的x的表达式( 1 + C(n,1)*x^1 + C(n,2)*x^2 +~~~~~+ C(n,n-1)*x^(n-1) + C(n,n)*x^n )之后好歹还会给x赋个值算个答案到母函数这连赋值都省了……x就代表一个实体,原创 2012-07-17 22:03:04 · 2908 阅读 · 0 评论 -
hdu1085Holding Bin-Laden Captive!-简单题
hdu1085Holding Bin-Laden Captive!#includeusing namespace std;int main(){ int n1,n2,n5; while(scanf("%d%d%d",&n1,&n2,&n5),n1+n2+n5) { if(n1==0) printf("1\n"); else if(2*n2+n1<4) print原创 2012-09-04 21:01:30 · 668 阅读 · 0 评论