2012年7月26日

最大公约数

摘要: /辗转相除的简单函数形式,当其中一个为0时,则跳出while循环,此时x+y就为最小公约数/int slyar(int x,int y){ while(x>y?(x%=y):(y%=x)); return x+y;}/辗转相除:/#include"stdio.h"int main(... 阅读全文

posted @ 2012-07-26 15:27 Slege 阅读(130) 评论(0) 推荐(0) 编辑

多边形(n边形)面积计算公式hdu2036

摘要: 利用多边形(n边形)面积计算公式:S=0.5 * ( (x0*y1-x1*y0) + (x1*y2-x2*y1) + ... + (xn*y0-x0*yn) ), 其中点(x0,y0), (x1, y1), ... , (xn,,yn)为多边形上按逆时针顺序的顶点((x0,y0)与(xn,yn... 阅读全文

posted @ 2012-07-26 15:25 Slege 阅读(713) 评论(0) 推荐(0) 编辑

数论之数的因子个数

摘要: 1. N的因子个数 条件:给定任意一个一个正整数N 要求:求其因子的个数 首先给出结论:对于任意的整型N,分解质因数得到N= P1^x1 * P2^x2* …… * Pn^xn; 则N的因子个数M为 M=(x1+1) * (x2+1) * …… *(xn+1); 证明过程: 首先 举... 阅读全文

posted @ 2012-07-26 15:24 Slege 阅读(930) 评论(0) 推荐(0) 编辑

进制转换

摘要: int r_to_ten(int s[])//r进制转换为10进制{ int i,d=0; for(i=0;s[i];i++) d=d*R+str[i]-'0'; printf("%d\n",d);}int ten_to_r(int n)//10进制转换为r进制{ int k=0;k=0; c... 阅读全文

posted @ 2012-07-26 15:23 Slege 阅读(95) 评论(0) 推荐(0) 编辑

迭代法

摘要: hdu 3809; 一,迭代法 的基本概念: 迭代法事一种常用算法设计方法。迭代式一个不断用新值取代变量的旧值,或由旧值递推出变量的新值的过程。迭代机制需要以下一些要素: ①迭代表达式; ②迭代变量; ③迭代初值; ④迭代终止条件。 当一个问题的求解过程能够由一个初值使用一个... 阅读全文

posted @ 2012-07-26 15:22 Slege 阅读(603) 评论(0) 推荐(0) 编辑

90=2*3*3*5。分解质因数

摘要: 程序分析:对n分解质因数,应先找到一个最小的质因数,然后按下面的步骤: 1,如果这个质数刚好等于n,则说明分解结束,直接输出就可以 2,如果n不等于这个质数,且能被n整除,则输出这个质数 3,如果不能被整除,则i++; #includeint main(){ int n,i; whi... 阅读全文

posted @ 2012-07-26 15:17 Slege 阅读(176) 评论(0) 推荐(0) 编辑

打印菱形

摘要: #include"stdio.h"int main(){ int n,i,j,k; while(scanf("%d",&n)!=EOF) { for(i=0;i<=n-1;i++)//行数为n { for(j=0;j<=n-2-i;j++)//控制空格数, printf(" ");... 阅读全文

posted @ 2012-07-26 15:16 Slege 阅读(100) 评论(0) 推荐(0) 编辑

单链表!!

摘要: #include"stdio.h"#include"stdlib.h"struct linknode{ int date; struct linknode *next;};struct linknode *creat()//建立链表{ struct linknode *head,*tail,*t... 阅读全文

posted @ 2012-07-26 15:15 Slege 阅读(105) 评论(0) 推荐(0) 编辑

背包

摘要: P01: 01背包问题 这是最基本的背包问题,每个物品最多只能放一次 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择... 阅读全文

posted @ 2012-07-26 15:14 Slege 阅读(169) 评论(0) 推荐(0) 编辑

整数划分 以hoj1402为例

摘要: hoj1402整数划分问题 整数划分是一个经典的问题。希望这道题会对你的组合数学的解题能力有所帮助。 Input 每组输入是两个整数n和k。(1 i时 = dp[i-j][j]+dp[i][j-1] i>=j时 i记录的是该要分的数,j表示最大数不超过j的划分数,当j比i还大时当... 阅读全文

posted @ 2012-07-26 15:09 Slege 阅读(126) 评论(0) 推荐(0) 编辑

整数划分《递归法》

摘要: 整数划分问题(递归法) 整数划分问题是算法中的一个经典命题之一,有关这个问题的讲述在讲解到递归时基本都将涉及。所谓整数划分,是指把一个正整数n写成如下形式: n=m1+m2+...+mi; (其中mi为正整数,并且1 0),只有一种划分即{1}; ... 阅读全文

posted @ 2012-07-26 15:07 Slege 阅读(121) 评论(0) 推荐(0) 编辑

hdu 1232 畅通工程

摘要: 点击打开链接 做的第一个并查集#include"stdio.h"int set[1005];int find(int x){ int r; r=x; while(set[r]!=r) r=set[r]; return r;}void merge(int x,int y){ int f1,f2;... 阅读全文

posted @ 2012-07-26 15:05 Slege 阅读(89) 评论(0) 推荐(0) 编辑

hdu 1213 How Many Tables

摘要: 点击打开链接 并查集#include"stdio.h"int set[1005];int find(int x){ int r; r=x; while(set[r]!=r) r=set[r]; return r;}void merge(int x,int y){ int f1,f2; f1=f... 阅读全文

posted @ 2012-07-26 15:04 Slege 阅读(95) 评论(0) 推荐(0) 编辑

hdu 1272 小希的迷宫

摘要: 点击打开链接 给你多组n和m,表示,n和m联通,判断是否存在回路,若存在,输出Yes,否则为No 成回路时,输入的两个有共同的根节点。 只连通时,根节点为1, #include"stdio.h"int set[100005],visit[100005],flag;int find(in... 阅读全文

posted @ 2012-07-26 15:03 Slege 阅读(107) 评论(0) 推荐(0) 编辑

hdu 2708 Vertical Histogram

摘要: 点击打开链接 超级坑爹的题啊! 1:多组(题中怎么看怎么像单实例) 2:每行末尾的多余空格不要输出 #include"stdio.h"int main(){ char str[1000][100],s[4][100]; int i,j,sum; int ss[100]... 阅读全文

posted @ 2012-07-26 15:01 Slege 阅读(164) 评论(0) 推荐(0) 编辑

hdu 1028 Ignatius and the Princess III

摘要: 点击打开链接 简单DP #include"stdio.h"#include"string.h"int main(){ int dp[222]; int i,j,n; while(scanf("%d",&n)!=EOF) { memset(dp,0,sizeof(dp)); dp[0]=1; ... 阅读全文

posted @ 2012-07-26 14:59 Slege 阅读(103) 评论(0) 推荐(0) 编辑

hdu 2722 Here We Go(relians) Again

摘要: 点击打开链接 /*Review :这题其实没什么难度,就是题目特别恶心,又臭又长,再加上制图也很恶心,第一次做这么恶心的题,于是乎拖了几个小时。把输入分为横向路 和 纵向路 来处理会比较方便一点,这个想了好久啊……好笨好笨*/--------------------------------... 阅读全文

posted @ 2012-07-26 14:48 Slege 阅读(123) 评论(0) 推荐(0) 编辑

hdu 1224 Free DIY Tour

摘要: 点击打开链接 pass[k] 存k的前驱 map[i][j] 用力标记 i 到 j 的路可以通过。。 #include#includeint pass[105];int judge(int k){ while(pass[k]!=k) { k=pass[k]; ... 阅读全文

posted @ 2012-07-26 14:28 Slege 阅读(122) 评论(0) 推荐(0) 编辑

hdu 1217 Arbitrage

摘要: 点击打开链接 乘法+floyd #include"stdio.h"#include"string.h"#define INF 0int n,m;double map[31][31];char str[31][33];void floyd(){ int i,j,k; for(k=0;k1.0) ... 阅读全文

posted @ 2012-07-26 09:45 Slege 阅读(98) 评论(0) 推荐(0) 编辑

hdu 1385 Minimum Transport Cost

摘要: 点击打开链接 floyd+字典序 #include"stdio.h"#include"string.h"#define INF 99999999int map[505][505],tax[505],path[505][504];int n;void init(){ int i,j; for(i=... 阅读全文

posted @ 2012-07-26 09:00 Slege 阅读(98) 评论(0) 推荐(0) 编辑

导航