
水题
煦--晨
菜鸟起飞
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu(1205)吃糖果
只要除了数目最多的糖果以外的其他所有糖果的数目之和加1(小心这里要用int64),大于等于数目最多的糖果数,就能吃完,否则不能。 #includeint main(){ int m,n,i,h; __int64 j,k; scanf("%d",&m); while(m--) { h=k=0; scanf("%d",&n); for(i=0原创 2013-07-31 18:40:01 · 559 阅读 · 0 评论 -
hdu(1018)Big Number(阶乘位数的计算)
这题要求n的阶乘的位数,如果n较大时,n的阶乘必将是一个很大的数,题中说1<=n<10000000,当n=10000000时可以说n的阶乘将是一个非常巨大的数字,对于处理大数的问题,我们一般用字符串,这题当n取最大值时,就是一千万个数字相乘的积,太大了,就算保存在字符串中都有一点困难,而且一千万个数字相乘是会涉及到大数的乘法,大数的乘法是比较耗时的,就算计算出结果一般也会超原创 2013-08-08 11:23:17 · 758 阅读 · 0 评论 -
hdu(1019)n个数的最小公倍数。。
#include"stdio.h"#include"math.h"int fun(int a,int b){ int r=1,c; if(a { c=a; a=b; b=c; } while(r>0) { r=a%b; a=b; b=r; } return a;}int main(){ int m,n,原创 2013-08-08 12:28:32 · 595 阅读 · 0 评论 -
hdu (2578) Dating with girls(1)
此题应注意的是;这n个数可能有相同的,所以把相同的留一个在这里,#include#includeint cmp(const void*a,const void*b){ return *(int*)a-*(int*)b;}int main(){ int m,n,i,j,k,h,low,hig,mid,p; int a[100005],b[原创 2013-08-22 16:45:39 · 601 阅读 · 0 评论 -
hdu(1164)
这题不利用素数更简单。。#include"stdio.h"#include"string.h"int map[70000];int main(){ int m,i,j; while(scanf("%d",&m)!=EOF) { j=1; for(i=2;i { while(m%i) i++; m=m/i; map[原创 2013-08-09 11:32:11 · 566 阅读 · 0 评论 -
hdu(1418) 抱歉
欧拉公式:简单多面体的顶点数V、面数F及棱数E间有关系 V+F-E=2(此题:顶点+面数-2=棱数)此外注意精度--int64 #include"stdio.h"int main(){ __int64 n,m; while(scanf("%I64d%I64d",&n,&m),n||m) { printf("%I64d\n",n+m-2); }原创 2013-08-23 19:09:22 · 516 阅读 · 0 评论 -
hdu(1563)Find your present!
整数的异或是先把它们化成二进制,再按位异或。比如3^5, 3=011,5=101,两数按位异或后为110,即6。几个数异或满足交换律。2^3^2=2^2^3=0^3=3. 两个相同的数异或为0,普通数都出现了偶数次,所以它 们异或后都是0,而0与那个特别数异或后还是那个特殊数。#include"stdio.h"int main(){ int m,n,s; whi原创 2013-08-16 13:55:59 · 696 阅读 · 0 评论 -
hdu(4493) Tutor
本来是很简单的题,但要考虑到四舍五入,就要把问题考虑全面了。小数点四舍五入,是要看小数点后第三位是否》5;另外输出的结果最后一位不能为零,所以要分别讨论小数点后两位是否都为零,还是哪一位为零。。 #include"stdio.h"#include"string.h"int main(){ int m,n,i,k; double sum,num; scanf(原创 2013-08-27 13:50:56 · 665 阅读 · 0 评论 -
hdu(4464)
比较水,直接输出最大的。。#include"stdio.h"#include"string.h"int main(){int m,n,i,j,r=1,sum;char a[1000];while(scanf("%d",&n)!=EOF){sum=0;for(i=0;i{m=0;scanf("%s",a);for(j=0;a[j];j++)原创 2013-08-17 20:08:23 · 628 阅读 · 0 评论 -
hdu(1046)
题意:n,m只要一个为偶数sum=n*m;不然sum=n*m-1+sqrt(2); #include"stdio.h#include"math.h"int main(){ int n,m,k,r=1; double sum; scanf("%d",&k); while(k--) { scanf("%d%d",&n,&m); print原创 2013-08-18 19:02:27 · 586 阅读 · 0 评论 -
hdu(1719)Friend
由题意知;如果x是friend则有x=a+b+a*b;则x=(a+1)*(b+1)-1;因为1,2是friend则只要x+1=2^m*3^n 满足这种形式即可; #include"stdio.h"#include"string.h"int main(){ int n; while(scanf("%d",&n)!=EOF) { if(n==0)原创 2013-09-02 19:34:12 · 514 阅读 · 0 评论 -
hdu(4707) Pet
由于没有出现环形,所以可以简单处理;#include"stdio.h"#include"string.h"int main(){ int i,m,n,k,h,p; int a[200000]; scanf("%d",&k); while(k--) { scanf("%d%d",&n,&m); me原创 2013-09-09 17:43:17 · 650 阅读 · 0 评论 -
hdu(4461) The Power of Xiangqi
把意思搞清楚很容易给解决了;注意最后一句话,当马或炮为零时并且sum大于0是sum减一;#include"stdio.h"#include"string.h"int main(){ int sum1,sum2; int k,m,n,a,b; char str[10]; scanf("%d",&k); while(k--) {原创 2013-09-05 18:55:35 · 527 阅读 · 0 评论 -
hdu (2710) Max Factor
题意:找出n个数中,所含素数因子最大的那个数; #include"stdio.h"#include"string.h"#include"math.h"#define N 30000int map[N];int main(){ int i,j,k,h,n,m; memset(map,0,sizeof(map)); map[1]=1;原创 2013-09-05 19:00:25 · 614 阅读 · 0 评论 -
hdu(1015)Safecracker
#include#include#include#includeint cmp(const void *a, const void *b){ return *(char *)b-*(char *)a;}int main(){ int target,len,c[50000],flag,i,j,w,r,q; char a[50000];原创 2013-08-08 12:43:31 · 535 阅读 · 0 评论 -
hdu(1276)士兵队列训练问题
题意很清楚,但要注意一点,就是判断for循环结束的条件是:就在在这一轮报完之后,m==3,即可结束。。 #include"stdio.h"#include"string.h"int main(){ int n,m,k,i,s,t; int a[6000]; scanf("%d",&k); while(k--) { scanf("%d",&n)原创 2013-08-19 15:47:30 · 616 阅读 · 0 评论 -
hdu(1194)
当两个数和为偶数时,他们的差也必为偶数。#includeint main(){ int n,m,k,h; scanf("%d",&n); while(n--) { scanf("%d%d",&m,&k); if((m%2==0&&k%2!=0)||(m%2!=0&&k%2==0)||(mk))原创 2013-07-31 18:46:50 · 674 阅读 · 0 评论 -
hdu(1178)Heritage from father
水题,主要考察了一个数学公式;#includeint main(){ int m,k; double n; while(scanf("%d",&m),m) { n=1.0*m*(m+1)*(m+2)/6.0; k=0; while(n>=10) {原创 2013-08-02 12:26:48 · 722 阅读 · 0 评论 -
hdu(1039)
利用函数来判断。。#include#includeint sum[27];char a[1000];int fun1(int k){ if(k==0||k==4||k==8||k==14||k==20) return 1; return 0;}int fun(){ int i,j,k=0; for(j=2;a[j];j++) {原创 2013-08-03 10:07:45 · 621 阅读 · 0 评论 -
Codeforces-334A
哎,被这道水题虐住了。。A. Candy Bags Time Limit : 2000/1000ms (Java/Other) Memory Limit : 524288/262144K (Java/Other)Total Submission(s) : 13 Accepted Submission(s) : 3Problem DescriptionGerald h原创 2013-08-03 23:21:08 · 974 阅读 · 0 评论 -
hdu(1014)Uniform Generator
看来要学好C语言,英语必须要好啊。。被这种题虐的感觉很不好。。看懂了题,明白一点即可,对于你,n,m,要使,他们的余数遍历m-1,只要n和m没有公约数就行了。。#include"stdio.h"#include"string.h"int n,m;int fun(int a,int b ){ int i; for(i=2;i if(a%i==0&&b%i原创 2013-08-03 19:04:28 · 590 阅读 · 0 评论 -
hdu(1031)Design T-Shirt
先把意思弄清楚就简单了。。首先对总值从大到小排序。。然后再在这k个数按序号从大到小排序。。就行了。。 #include"stdio.h"#include"string.h"#include"stdlib.h"struct point { double x; int y;}a[10000];int cmp(const void*a,const vo原创 2013-08-04 15:06:30 · 574 阅读 · 0 评论 -
hdu(1032)
只要注意各种细节就可以了。。#include"stdio.h"int main(){ int m,n,i,j,max,k,h,r,t; while(scanf("%d%d",&m,&n)!=EOF) { t=0; if(m>n) { r=m; m=n; n=r; t=1; } max=0; for(i=m;原创 2013-08-04 16:54:24 · 544 阅读 · 0 评论 -
hdu(1128)
理解题意之后:用标记法,来找出产生者,把他延伸都标记不输出;#include"stdio.h"#include"string.h"int mark[1000060];void fun(int k){ int t; t=k; while(k>0) { t+=k%10; k=k/10; } mark[t]=1;}int main()原创 2013-08-05 16:59:12 · 549 阅读 · 0 评论 -
hdu(1152)
题目意思是:以最中间的那个点为准点,建立坐标系,二四象限得点为stan的得分,一三象限为另外一个人的得分。分别输出他们的得分。。不计在坐标轴上的点。。#include"stdio.h"#include"string.h"int a[100000],b[100000];int main(){ int m,n,i,k; while(scanf("%d",&m),m)原创 2013-08-05 18:33:30 · 656 阅读 · 0 评论 -
hdu(2534)
纯属数学知识,只要两个数的最大公约数是一,都存在最大值,为n*m-n-m;#include"stdio.h"#include"string.h"__int64 fun(__int64 a,__int64 b){ __int64 i=1,j; if(a { j=a; a=b; b=j; } while(i!=0) { i=a%b;原创 2013-08-05 19:30:01 · 615 阅读 · 0 评论 -
hdu(1273)漫步森林
本题考查了一个数学公式:n个点则有n*(n-1)/2个点,每次都需要走n条线,则共走(n-1)/2次;;#include"stdio.h"#include"string.h"int main(){ int m; while(scanf("%d",&m),m) { printf("%d\n",(m-1)/2); }原创 2013-08-06 12:31:20 · 636 阅读 · 0 评论 -
hdu(3835)
注意:1、0*0+x*x=n, sum+=4;2、x*x+x*x=n, sum+=4;3. x*x+y*y=n; sum+=8; #include"stdio.h"#include"math.h"int main(){ int n,m,i,j,sum; while(scanf("%d",&n)!=EOF) { sum=0;原创 2013-08-18 19:26:45 · 604 阅读 · 0 评论 -
hdu(1046)Bother
//做这个题的方法就是;把每一个点都一次消为零,//到最后一个点的时候看他是否为零。。#include"stdio.h"#include"string.h"int main(){ int n,i; int a[1000]; while(scanf("%d",&n),n!=-1) { a[1]=n; for(i=2;i scanf("%d",&原创 2013-08-19 09:29:48 · 627 阅读 · 0 评论 -
hdu(4616) A Computer Graphics Problem
#include"stdio.h"#include"string.h"int main(){ int m,n,i,j,k,r=1; scanf("%d",&k); while(k--) { scanf("%d",&m); printf("Case #%d:\n",r++); n=(100-m)/10;原创 2013-09-20 16:52:24 · 524 阅读 · 0 评论