
ACM
文章平均质量分 64
殇之流剑
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SDIBTOJ1350-最小重量机器设计问题
题目链接:http://acm.sdibt.edu.cn/JudgeOnline/problem.php?id=1350题目描述:给出n个部件在m个商家的价格,及其制造的重量,求在不大于给定价格d下,最小的重量。题意分析:很经典的深搜回溯。我加了几组还算强大的测试数据,下列代码中的几个剪枝必须有哦,才能在OJ通过。否则,嘿嘿,等着TLE吧。代码如下:#include原创 2012-12-04 14:52:45 · 1146 阅读 · 0 评论 -
ZOJ_1078_Palindrom Numbers
#include#includeint main(){ int m,n,len; int i,j,flag,fac; char s[30]; int a[17]; while(scanf("%d",&n) && n){ memset(a,0,sizeof(a)); fac = 0;原创 2012-02-22 15:53:25 · 393 阅读 · 0 评论 -
Dijkstra
#include#includeusing namespace std;const int INF=99999999;const int MAX=205;int map[MAX][MAX];int dis[MAX];int vis[MAX];int m,n;void Init(){ int i,j; int u,v,w;原创 2012-04-06 16:36:32 · 408 阅读 · 0 评论 -
网络流_Ford_Fulkerson
/*求容量网络的最大流,输入:首先输入顶点个数n和弧数m,然后输入每条弧的数据,每条弧的数据格式为u v c f(分别表示起点、终点、容量和流量)。源点为0,汇点为n-1。输出:输出各条弧及其流量,以及求得的最大流流量。*/#include#include#include#define MAX 1000#define INF 100000#def原创 2012-03-26 12:34:01 · 687 阅读 · 0 评论 -
最短路径之Floyd_邻接矩阵
/*最短路径——Floyd邻接矩阵(有向网或无向网)Floyd算法允许图中有带负权值的边,但不允许有包含负权值的回路;算法时间复杂度:O(n^3);*///代码如下:#include#include#define INF 99999999#define MAX 50int map[MAX][MAX];int A[MAX][MAX];原创 2012-03-16 20:59:52 · 1301 阅读 · 0 评论 -
欧拉函数
/*欧拉函数在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明。φ函数的值 Euler函数通式:φ(x)=x(1-1/p1)(1-1原创 2012-03-07 17:13:29 · 481 阅读 · 0 评论 -
筛选法求素数_2
#include#define MAX 700000int prime[MAX];int count=0;int Check_Prime( int n ){ int i; if( (n!=2 && !(n%2)) || (n!=3 && !(n%3)) || (n!=5 && !(n%5)) || (n!=7 && !(n%7)) )原创 2012-03-05 16:49:24 · 587 阅读 · 0 评论 -
筛选法求素数_1
/*i是不是素数可以根据prime[i]来判定*/#include#define MAX 1000000int prime[MAX];void Init_Prime(){ int i,j; for(i=2; i if(prime[i] == 0) for(j=2*i; j pr原创 2012-03-05 16:48:06 · 513 阅读 · 0 评论 -
并查集_2
#include#define MAX 1000int parent[MAX];int N;//初始化void UFset(){ for( int i=0; i parent[i] = -1;}//查找并返回结点x所属集合的根结点int Find( int x ){ int s; //查找位置 //原创 2012-03-05 16:46:29 · 460 阅读 · 0 评论 -
并查集_1
#include#define MAX 1000int father[MAX],rank[MAX];int N;//初始化void Make_set(){ for(int i=0; i father[i] = i; rank[i] = 1; } }原创 2012-03-05 16:45:21 · 425 阅读 · 0 评论 -
Kruskal算法
/*利用Kruskal算法求无向网的最小生成树,并输出依次选择的各边及最终求得的最小生成树的权*//*输入:顶点个数n和边数m,然后输入m条边的数据u、v、w,分别表示这条边的两个顶点和权值*/#include#include#define MAXN 50#define MAXM 50struct edge{ int u,v,w; //边的顶点原创 2012-02-22 16:59:23 · 658 阅读 · 0 评论 -
HDU1003
#includeint main(){ int T,n,x; int i,j,count=0; int start,end; int sum,maxsum; scanf("%d",&T); while(T--){ count++; scanf("%d",&n); sum=0;原创 2012-03-05 18:27:46 · 405 阅读 · 0 评论 -
HDU_1005_ Number Sequence
/*分析:观察可以发现一个为49循环节*/#includeusing namespace std;const int MAX=50;int s[MAX];int main(){ int a,b,n; int i; while(cin>>a>>b>>n && (a+b+n) ){ s[1]=s[2]=1;原创 2012-04-12 20:24:48 · 427 阅读 · 0 评论 -
HDU4255-A Famous Grid
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4255题意描述:在一个蛇形矩阵中,素数的格子不能走,问从一个合数到另一个合数最少需要几步,没有解时输出impossible。题目分析:1、因为素数的地方不能走,所以需要打印素数表; 2、蛇形矩阵需要打印,这里我做了一个处理,定义了一个结构体G,把每个数所在的位置保存了下来,原创 2012-07-22 16:12:18 · 606 阅读 · 0 评论 -
HDU4279-Number
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4279题意描述:如果数A是B的特殊数,那么A既不能被B整除,且A与B不能互素。我们定义f(x)为x之内x的特殊数的个数。那么给出两个数,求这两个数之间f(x)为奇数的数的个数,假设G(n)为1到n之间f(x)为奇数的数的个数。题意分析:经过打表分析可知,当x≤5时,G(x)=0;当x>5时,G(原创 2012-09-12 16:14:59 · 714 阅读 · 0 评论 -
POJ2478(典型的欧拉函数)
题意:就是求出分数a/b ,其中数1殴拉函数:就是求小于n的所有整数a,并且gcd (a,n) = 1(1它有一个公式及一些定理:如果n是素数,那么殴拉函数f(n) = n-1.f (n^k) =n^k-n^(k-1)如果,gcd (n,m)= 1 ,那么f (n*m) = f (n)*f(m) (积性函数)如果:p1,p2...pr是整除m的不同素数(由算术基本定理)原创 2012-03-07 16:04:37 · 1466 阅读 · 0 评论 -
POJ3725-I know the k-th integer
题目链接:http://poj.org/problem?id=3725题意描述:就是对于n个数,按字典序排序,如果给出第k位的数字m,求出最小的n。题意分析:分两种情况判断,先判断n不存在的情况。如果当n=m时,m排在t位上,如果k代码如下:#include#include//#include__int64 wei( __int64 m ){原创 2012-10-07 19:54:41 · 1466 阅读 · 0 评论 -
关于整除
一、能被*整除:(1) 1与0的特性: 1是任何整数的约数,即对于任何整数a,总有1|a;0是任何非零整数的倍数,a≠0,a为整数,则a|0。(2) 能被2整除: 若一个整数的末位能被2整除,即这个整数的末位是0、2、4、6、8,则这个数能被2整除。 (3) 能被3整除: 若一个整数的各位数字和能被3整除,则这个数能被3整除。 (4) 能被4整除:原创 2012-11-16 21:15:39 · 1609 阅读 · 0 评论 -
HDU_1085_Holding Bin-Laden Captive!
母函数 题意,给定1、2、5三种硬币,输入各种硬币的数量,问最小不能表示多大的钱数。 此题分析:构造G(x)=(1+x+x^2+x^3+x^4+…)(1+x^2+x^4+x^6+…)(1+x^5+x^10+x^15+…)这样一个母函数,所求即为x^n的系数最开始为0的那项。(其中x表示面值,1表示不选,次方数表示面值的权值)。#include#inc原创 2012-03-23 19:51:59 · 611 阅读 · 0 评论 -
HDU_1398_Square Coins
母函数的典型题题目。 题意:有面值为(1,2^2,3^2,4^2, ……17^2)元的硬币,要求付n元钱,问有几种付法。 此题分析:构造G(x)=(1+x+x^2+x^3+x^4+…)(1+x^4+x^8+x^12+…)(1+x^9+x^18+x^27+…)……这样一个母函数,所求即为x^n的系数。(其中x表示面值,1表示不选,次方数表示面值的权值)。 母原创 2012-03-23 17:23:30 · 481 阅读 · 0 评论 -
POJ1523-SPF
题目链接:http://poj.org/problem?id=1523题意解析:给出图关系,在图中找关节点,且每个关节点的连通分支题意分析:赤裸裸的Tarjan算法、、、代码如下:#include#include#include#define MAX 1010#define max(a,b) ( a>b ? a:b )#define min(a,b)原创 2012-07-19 11:11:54 · 771 阅读 · 0 评论 -
ZOJ_1002_Fire Net
这是一道搜索的简单题,题目的数据比较小,采用深搜就可以解决了、、、代码如下:#includechar map[5][5];int n,count;//判断在(r,c)的位置是否可以放置碉堡,应为是从小到大开始找的,所以只往前找就可以了、、、int Check_put(int r,int c){ int i; //注意不要从小到大找,因为要考原创 2012-03-10 20:42:01 · 597 阅读 · 0 评论 -
USACO-1.5.3 Superprime Rib 特殊的质数肋骨
题目链接:http://acm.sdibt.edu.cn/JudgeOnline/problem.php?id=2319代码如下:#includeint d[9][18] = { { 0 }, { 2,3,5,7,0 }, { 23,29,31,37,53,59,71,73,79,0 }, { 233,239,293,311,313原创 2012-09-28 15:01:37 · 1638 阅读 · 1 评论 -
Prime算法
/*利用Prim算法求无向网的最小生成树,并依次输出选择的各条边和最小生成树的权值*/#include#include#include#define INF 999999#define MAX 600int map[MAX][MAX];int lowcost[MAX];int n;int sum_weight;//初始化void Init原创 2012-02-22 16:58:08 · 796 阅读 · 0 评论