自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 收藏
  • 关注

原创 hdu 2203 亲和串

strstr()函数:包含文件:string.h函数名: strstr函数原型:extern char *strstr(char *str1, char *str2);功能:从字符串str1中查找是否有字符串str2,如果有,从str1中的str2位置起,返回str1中str2起始位置的指针,如果没有,返回null。返回值:返回该位置的指针,如找不到,返回空

2014-01-15 11:33:10 553 1

原创 hdu 1042 N!

#include#includeint a[40000];//根据N的大小,4*N就是开辟数组的长度int main(){ int n,m,i,j,t; while(scanf("%d",&n)!=EOF) { memset(a,0,sizeof(a)); a[0]=1; t=0; for(i=1;i<=n;i++)

2014-01-15 11:31:28 400

原创 poj 2356 Find a multiple

题目大意:输入一个N,然后输入N个数,从这N个数中找出M个连续的数的和sum是N的倍数。分析: 观察S[i].恰好有个N个S[i],又是N的倍数,联想到抽屉原理!•1)如果{Si}中存在一个数Sk为n的倍数,那么选前k个数即可•2)如果{Si}中不存在n的倍数,那么S1,S2,...Sn除以n所得的n个余数将分布在区间[1,n-1]中,那么必定存在i,j(iimod n

2014-01-15 11:30:29 652

原创 南阳 636 世界末日

#include#include#define N 10010int main(){ int a[N],b[N],n,m,i,s,begin,end; while(scanf("%d",&n)!=EOF) { for(i=1;i<=n;i++) scanf("%d",&a[i]); memset(b,0,sizeof(b)); s=begin=end=0; for

2014-01-15 11:28:57 659

原创 poj 3370 Halloween treats

#include#include#define N 100010int main(){ int a[N],b[N],n,m,i,s,begin,end; while(scanf("%d%d",&n,&m)&&n+m) { memset(b,0,sizeof(b)); for(i=1;i<=m;i++) scanf("%d",&a[i]); begin=end=0;

2014-01-15 11:27:31 478

原创 南阳 139 我排第几个

康拓展开:把一个整数X展开成如下形式X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! 其中,a为整数,并且0全排列:有N个不同的整数,全排列的话有N!个组合 。#include#includeint main(){ int a[12],p[12],n,m,i,j,sum; char s[13]; for(

2014-01-15 11:26:33 809

原创 南阳 8 一种排序

#include#include#includetypedef struct In{ int bian; int chang; int kuan;};In ch[1010];//结构体int cmp(const void *a,const void *b){ In *c=(In *)a; In *d=(In *)b; if(c->bian!=d->bian) ret

2014-01-15 11:22:49 521

原创 南阳 678 最小K个数之和

#include#include#include#define N 100010int cmp(const void *a , const void *b){ return *(int *)a-*(int *)b;}int main(){ int a[N],n,m,i,sum; while(scanf("%d%d",&n,&m)!=EOF) { for(i=0;i<n;

2014-01-15 11:21:41 474

原创 南阳 60 谁获得了最高奖学金

#include#includetypedef struct Stu{ char name[20]; int qc; int cs; char gb; char xs; int lw;};Stu stu[110];int main(){ int n,m,i,j,s[110],sum,t,a; scanf("%d\n",&n); while(n--) { sca

2014-01-15 11:20:48 658

原创 南阳 305 表达式求值

#include#includeint count(int a,int b,char c){ if(c=='d') return a+b; if(c=='i') return a<b?a:b; if(c=='a') return a>b?a:b;}int main(){ char s[310],a[310]; int n,m,b[310],i,atop,btop,num;

2014-01-15 11:19:45 654

原创 poj 1363 Rails

题意:给出从1~n辆进站的火车,输入一组数据,判断能否按输入的这组数据火车出站#include#includeint main(){ int a[1010],b[1010],n,i,p,j,btop; while(scanf("%d",&n),n) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); while(1) {

2014-01-15 11:17:32 498

原创 hdu 1306 String Matching

#include#includeint main(){ int s[1010],i,j,t,r,n,m,x,y; char a[1010],b[1010]; while(scanf("%s",a)&&(strcmp(a,"-1"))) { scanf("%s",b); memset(s,0,sizeof(s)); n=strlen(a); m=strlen(b);

2014-01-15 11:16:25 614 1

原创 hdu 1022 Train Problem I

#include#includeint main(){ int n,m,i,ctop,p,c[20],d[20],t; char a[20],b[20]; while(scanf("%d",&n)!=EOF) { memset(d,0,sizeof(d)); //memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); scanf("

2014-01-15 11:15:18 463

原创 poj 1579 Function Run Fun

#include#includeint s[25][25][25];//把算过的存进去,节省时间int w(int a,int b,int c){ if(a<=0||b<=0||c<=0) return 1; else if(a>20||b>20||c>20) return s[20][20][20]=w(20,20,20); if(s[a][b][c]) return s[a][b

2014-01-15 11:13:33 517

原创 hdu 1576 A/B

#includeint main(){ int n,m,t,i; scanf("%d",&n); while(n--) { scanf("%d%d",&m,&t); for(i=1;;i++) { if((t%9973*i)%9973==m) break;//同余定理 } printf("%d\n",i); } return 0;}总结:(1)gcd

2014-01-15 11:11:55 493

原创 hdu Binary Tree Traversals

题意:根据前序和中序,算出后序 #includeint buildTree(int n,int *a,int *b,int *c){ int *p=b,t; if(n<=0) return 0; while(1) { if(*a==*p) break;//找出中根的位置 else p++; } t=p-b; build

2014-01-15 11:09:30 527

原创 poj 2255 Tree Recovery

strchr()函数:功能就是找出在字符串str中第一次出项字符ch的位置,找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置),找不到就返回空指针(就是 null)。

2014-01-15 11:06:25 493

原创 南阳 6 喷水装置(1)

#include#include#include#includeint cmp(const void *a,const void *b){ return *(double *)b>*(double *)a?1:-1;}//函数的类型标示符一般为intint main(){ int n,m,i; double r[610],s; scanf("%

2014-01-15 10:58:13 496

原创 南阳 14 会场安排问题

分析:先按结束时间进行排序,结束时间越早,安排活动越多,在将开始时间与上一个结束时间进行比较 #include#include#includetypedef struct In{ int x; int y;};In pos[10010];int cmp(const void *a,const void *b){ In *c=(In *)a; In *d=(In *)b;

2014-01-15 10:56:19 648

原创 南阳 47 过河问题

解题报告:首先按照过河时间从小到大排序,当n>3时候,就是考虑用最小时间先把用时最长的两个人送过河,且手电筒仍然留在未过河的这边,剩下的再依次求解。把当前用时最长的两个人送过河可以考虑两种方案:方案一:  1 号和 2 号先过河,然后 1 号回来,n 号和 n-1 号过河,然后 2 号再回来用时:2*a[2]+a[1]+a[n];方案二:  1 号和 n 号先过

2014-01-15 10:53:55 583

原创 南阳 71 独木舟上的旅行

思路:每条船最多只能乘坐两个人,结合一些常识我们很容易想到解决思路:每条船上安排一个体重大的和体重小的。有了思路后,方法就简单了,先安排一个体重大的上船,如果此船还能承下体重较小的乘客时,则两人一条船,否则此船只能承载一个人。另外,为使寻找体重大的和体重小的乘客,需要先按体重从大到小排序。这样只需从数组两头向中间遍历一遍即可。#include#include#inc

2014-01-15 10:51:24 766

原创 hdu 1863 畅通工程

#include#include#define inf 100000int map[110][110],dis[110];int n,vis[110];int Prim(){ int i,j,k,tmp,ans; for(i=1;i<=n;i++) dis[i]=inf;//初始化 dis[1]=0; for(i=1;i<=n;i++){ tmp=inf; for(j

2014-01-07 17:48:05 523

转载 最小生成树

设G = (V,E)是无向连通带权图,即一个网络。E中的每一条边(v,w)的权为c[v][w]。如果G的子图G’是一棵包含G的所有顶点的树,则称G’为G的生成树。生成树上各边权的总和称为生成树的耗费。在G的所有生成树中,耗费最小的生成树称为G的最小生成树。构造最小生成树的两种方法:Prim算法和Kruskal算法。  一、最小生成树的性质  设G = (V,E)是连通带权图,U是V

2014-01-07 17:43:15 578

原创 hdu 1050 Moving Tables

解题思路:假设从1->399(或者2->400)的走廊是一条线段,每搬一张桌子(如从30号房间搬到40号房间),则线段30->40被重复了一次。如果另外再搬一张桌子(如从35号房间搬到45号房间),则线段35->45被重复了一次。而相同的线段35->40则被重复了两次。问题转化为求最大重复次数。那很好办了,一个201大小的数组表示走廊位置,初始化为0. 若30->40重复(30号房间搬桌子

2014-01-06 22:43:38 550

原创 poj 3253 Fence Repair

题目大意:FJ需要修补牧场的围栏,他需要 N 块长度为 Li 的木头(N planks of woods)。开始时,FJ只有一块无限长的木板,因此他需要把无限长的木板锯成 N 块长度为 Li 的木板,Farmer Don提供FJ锯子,但必须要收费的,收费的标准是对应每次据出木块的长度,比如说测试数据中 5 8 8,一开始,FJ需要在无限长的木板上锯下长度 21 的木板(5+8+8=21),

2014-01-06 22:41:12 527

原创 南阳 86 找球号(一)

看清题!!!#include#include#includeint cmp(const void *a,const void *b){ return *(int *)a-*(int *)b;}int b[100010];int a[1000010];int main(){ int n,m,i,f,r,mod,t; memset(a,0,sizeof(a)); mem

2014-01-06 22:39:34 633

原创 南阳 132 最长回文子串

#include #include #include char str[5010];int pos[5010];char ch[5010];int main(){ int i,j,k; int T; int len; int max; int from,to; scanf("%d%*c",&T); //getchar();

2014-01-06 22:38:18 687

原创 南阳 658 字符串右移

#include#includechar a[105];int main(){char b;int c;while(scanf("%s%c%d",a,&b,&c)!=EOF){int d,len,i;len=strlen(a);d=c%len;for(i=len-d;i<len;i++)putchar(a[i]);for(i=0;i<len-d;i++)putchar

2014-01-06 22:37:21 501

原创 南阳 84 阶乘的0

描述计算n!的十进制表示最后有多少个0输入第一行输入一个整数N表示测试数据的组数(1每组测试数据占一行,都只有一个整数M(0输出输出M的阶乘的十进制表示中最后0的个数比如5!=120则最后的0的个数为1样例输入63601001024234568735373样例输出0142425358612183837思

2014-01-06 22:34:44 632

原创 南阳 69 数的长度

Stirling公式(斯特林公式)N!=1*2*3*4*5*............*N;如果要计算N!后得到的位数,则我们可以知道其等于lgN!+1lgN!=lg1+lg2+lg3+lg4+lg5+....................+lgN;但是当N很大的时候,我们可以通过数学公式进行优化:(即Stirling公式)N!=sqrt(2*pi*N)*(N/e)^N;(pi

2014-01-06 22:33:07 593

原创 hdu 1276 士兵队列训练问题

陷阱一:每一次报数都必须报到队伍最后一个人才重新开始。陷阱二:报数过程如果人数#include#includeint main(){ int n,m,i,s,t,j,k; int a[5010],b[10]; scanf("%d",&n); while(n--) { memset(a,0,sizeof(a)); sc

2014-01-06 22:31:40 761

原创 hdu 1249 三角形

Problem Description用N个三角形最多可以把平面分成几个区域? Input输入数据的第一行是一个正整数T(1 Output对于每组测试数据,请输出题目中要求的结果. Sample Input212 Sample Output28公式:an=a(n-1)+6(n-1)=3n(n-1)+2;n>=1 公式推

2014-01-06 22:27:52 452

原创 南阳 105 9的余数

解题思路:         弃九法#include#includechar s[1000010];int main(){ int n,m,i,sum; scanf("%d",&n); while(n--) { scanf("%s",s); m=strlen(s); for(sum=i=0;i<m;i++)

2014-01-06 22:24:42 788

原创 南阳 485 A*B Problem

解题思路:     弃九法 #include#includeint main(){ char s1[20],s2[20]; int n,i,sum1,sum2,a,b; scanf("%d",&n); while(n--) { scanf("%s%s",s1,s2); a=strlen(s1);

2014-01-06 22:22:46 547

原创 南阳 655 光棍的yy

描述 yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见11:11,这个很纠结啊。现在给你m个1,你可以把2个1组合成一个2,这样就不是光棍了,问这样的组合有多少种??例如(111  可以拆分为 111 12 21  有三种)输入第一行输入一个n表示有n个测试数据以下n行,每行输入m个1(1 输出输出这种组合种数,占一行样例输入311111

2014-01-06 22:19:14 839

原创 南阳 33 蛇形填数

先判断,再填数;在很多情况下,最好在做一件事之前检查是不是可以做,而不是做完再后悔。#include#includeint main(){ int a[110][110]; int n,m,i,j; scanf("%d",&n); memset(a,0,sizeof(a)); m=a[i=0][j=n-1]=1; while(m<n*n)

2014-01-06 22:14:20 557

原创 hdu 2072 单词数

#include#includeint main(){ char s[100],str[100][100],g[100]; int n,m,i,a,b; while(gets(s)&&strcmp(s,"#")) { n=strlen(s); for(a=b=i=0;i<n;i++) { if(s

2014-01-06 22:12:17 581

原创 hdu 1877 又一版 A+B

#include#includeint main(){ int k,i,n,m; int a[10000]; while(scanf("%d",&k)&&k) { scanf("%d%d",&n,&m); memset(a,0,sizeof(a)); n=n+m; if(!n) printf(

2014-01-06 22:07:45 536

原创 hdu 2037 今年暑假不AC

#include#includetypedef struct In{ int x,y;};In num[110];int cmp(const void *a,const void *b){ In*c=(In *)a; In*d=(In *)b; if(c->y!=d->y) return c->y-d->y; else return d->x-

2014-01-06 22:05:38 481

原创 hdu 2206 IP的计算

#include#includeint main(){ char s[110]; int n,m,i,a,b,t; int sum[10],str[10]; while(gets(s)) { memset(sum,0,sizeof(sum)); memset(str,0,sizeof(str)); n=s

2014-01-06 22:04:37 967

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除