随笔 - 684  文章 - 0  评论 - 156  阅读 - 399万
10 2012 档案
杭电2083
摘要:此题的思路是穷举法,有就是从第一个朋友开始,依次算出最短距离,然后求出最短的距离!*对于sum=0xffffff的讲解请参考本人的http://www.cnblogs.com/xiohao/archive/2012/10/10/2718747.html祝你成功ac!!呵呵!#include<iostream>#include<cmath>using namespace std;int main(){int M,N,i,a[10005],j;__int64 sum,s;scanf("%d",&M);while(M--){sum=0xffffff 阅读全文
posted @ 2012-10-29 20:34 @ 小浩 阅读(309) 评论(0) 推荐(0) 编辑
杭电2073
摘要:此题是一道找规律的问题,只要在找的时候细心一下,轻松ac应该是没问题的!!此题的规律不止一个,这里我说一下我解题的规律吧!我分了3步来计算!!1)如果两个点在一条直线上,那么两点间的坐标满足(x1+y1)==(x2+y2),这时两点间的距离是s=s1*fabs(x1-x2);2)如果两点不在一条直线上,并且两点在斜率为(-1)的直线上的距离为: { for(i=(x1+y1);i<(x2+y2);i++) s=s+sqrt(i*i+(i+1)*(i+1)); }3)如果两点不在一条直线上,并且两点在斜率为不为(-1)的直线上的距离为: { for(j=(x1+y1+1);j<(x2 阅读全文
posted @ 2012-10-29 20:24 @ 小浩 阅读(547) 评论(0) 推荐(0) 编辑
杭电2080
摘要:此题就是一道简单的数学问题!!没有太多好说的,就是利用了一下反三角函数,就轻松ac了!!!此题需要注意以下几点:1)PI的值等于acos(-1);2)反三角函数求完的结果是弧度制,要乘以180/arcos(-1)变成角度制!3)关系式arccos=(a*a+b*b-c*c)/(2*a*b);祝你成功ac!!!#include <iostream>#include<cmath>using namespace std;int main(){int T;double x1,x2,y1,y2,a,b,c,d;cin>>T; getchar();while(T--){ 阅读全文
posted @ 2012-10-29 20:03 @ 小浩 阅读(301) 评论(0) 推荐(0) 编辑
杭电2079
摘要:此题的思路比较简单,就是用的穷举方法,为什么用这个方法呢?呵呵!其实你可以清楚的看到n(1 <= n <= 40),k(1 <= k <= 8)的取值范围,用穷举的办法即可去、轻松ac,而且还不会超时!呵呵!首先统计各个学分的个数,然后依次穷举即可!#include<iostream>using namespace std;;int main(){ int T,n,k,a1,a2,a3,a4,a5,a6,a7,a8,i1,i2,i3,i4,i5,i6,i7,i8,a,b,sum,i; cin>>T; getchar(); while(T--) { 阅读全文
posted @ 2012-10-29 19:45 @ 小浩 阅读(324) 评论(0) 推荐(0) 编辑
简单java应用程序备录
摘要:public class B{ public static void main(String args[]){ Rect A=new Rect(); Rect C=new Rect(3,5); System.out.println(A.computerArea()+' '+C.computerGirth()); System.out.println(C.computerGirth()+' '+A.computerArea());}} class Rect { double sideA,sideB; double sideC,sideD; Rect(){ this 阅读全文
posted @ 2012-10-29 19:26 @ 小浩 阅读(204) 评论(0) 推荐(0) 编辑
关于printf函数输出先后顺序的讲解!!
摘要:对于printf函数printf("%d%d\n",a,b);函数的实际输出顺序是这样的先计算出b,然后在计算a,接着输出a,最后在输出b;例子如下:#include<iostream>using namespace std;int main(){int i=3,j=5;printf("%d %d\n",(i++)-(--j),j=(i+=2));printf("%d %d\n",i,j);return 0;} 此题的执行过程如下; 首先对于第一个printf先计算出j=(i+=2),这样此时i=i+2=5,j=5; 接着 阅读全文
posted @ 2012-10-25 11:50 @ 小浩 阅读(6767) 评论(0) 推荐(0) 编辑
杭电2081
摘要:此题是一道简单题,可以有多种方法,这里将我所知道的每种方法都列出来,仅供参考,其实原理都差不多,方法一:利用字符数组来存放电话号码:#include<iostream>using namespace std;int main(){int i,N;cin>>N;char a[20];getchar();while(N--){scanf("%s",a); printf("6");for(i=0;i<11;i++)if(i>5)printf("%c",a[i]);cout<<endl;}ret 阅读全文
posted @ 2012-10-25 11:23 @ 小浩 阅读(354) 评论(0) 推荐(0) 编辑
杭电2078
摘要:说实话,此题是一道有严重bug的问题,对于xhd没晚能复习的科目数m根本就没用上!!!哎不管那么些了,反正ac了!呵呵!此题这样想xhd得复习效率是前一课程和后一课程复习效率差的平方,所以令前一课程效率取最大100,后一门课程取最小的效率y即可!!#include<iostream>using namespace std;int main(){int T;int n,m,i,x,y;scanf("%d",&T);while(T--&&cin>>n>>m){y=100;for(i=0;i<n;i++){cin& 阅读全文
posted @ 2012-10-24 20:57 @ 小浩 阅读(310) 评论(0) 推荐(0) 编辑
杭电2077
摘要:哎,说实话Hanio塔这样的题,要是思路不对,真是干着急啊!就是无法ac,哎!对了,此题的解题思路可以参考杭电2064,依然是递推的问题!!对比杭电2064,此题附加了一个规则,就是允许最大的一个盘子放到其他盘子的的上面,首先这样考虑:1)把最左边的1号杆上的n-1个盘子移到2号中间的杆上; //移动次数f(n-1)2)把最左边第n个盘子(即最大的盘子从1号移动到2号,再从2号移动到3号);//移动次数23)再把2号杆上的n-1个盘子移动到3号杆上;//移动次数f(n-1);总的移动次数等于f(n-1)+f(n-1)+2=2*f(n-1)+2;接着,对于n前面的n-1个盘子的移动就符合以前的规 阅读全文
posted @ 2012-10-23 21:22 @ 小浩 阅读(318) 评论(0) 推荐(0) 编辑
杭电2044
摘要:简单题,直接ac!!#include<iostream>using namespace std;int main(){ int n,i,a,b,k=0;long long A[100];cin>>n; getchar();while(k<n){ cin>>a>>b;A[a]=0;A[a+1]=1;A[a+2]=2;for(i=a+3;i<=b;i++)A[i]=A[i-1]+A[i-2];cout<<A[b]<<endl;k++;}return 0;} 阅读全文
posted @ 2012-10-23 09:44 @ 小浩 阅读(171) 评论(0) 推荐(0) 编辑
杭电2076
摘要:此题是一道数学题思路比较简单,就是考虑的时候想全面了就ok了!呵呵!首先理解30度/1h=0.5度/1min=(1/120)/1s,理解这个比例关系,此外注意:1)判断一下h的大小,如果大于12小时,令h=h-12; 2)在计算完角度的时候,判断一下角度的大小如果大于180度,令“角度=360-角度”;**祝你成功AC!呵呵!!#include<iostream>#include<math.h>using namespace std;int main(){int T,h,m,s,b;double a;cin>>T;getchar();while(T--){ 阅读全文
posted @ 2012-10-22 18:50 @ 小浩 阅读(253) 评论(0) 推荐(0) 编辑
如何统计一行字母中单词的个数!!
摘要:题目大致是这样的:给你一行字母,其中只有空格和单词,你的任务是求出其中字母的个数!简单acm题,此题注意一下输入字符串的时候使用了cin.getchar(a,100),这样更利于空格的输入!!#include<iostream>using namespace std;int main(){char a[100];int i,j,sum; while(cin.getline(a,100)&&a[0]!='#')//输入多个测试实例,当遇到'#',结束输入!{ sum=0; i=j=0; while(a[i]!='\0') 阅读全文
posted @ 2012-10-21 20:51 @ 小浩 阅读(464) 评论(0) 推荐(0) 编辑
关于字符串的几种输入方法的简单讲解!
摘要:关于字符串的几种输入方法!1). 当已知所输入字符的个数时; 可用for循环语句和scanf函数来实现 例子 如下: #include<iostream> using namespace std; int main(){char a[10];//假设已知输入10个字符int i;for(i=0;i<10;i++)scanf("%c",&a[i]); getchar();for(i=0;i<10;i++) printf("%c",a[i]); cout<<endl; return 0;}2).当无法确定所输入字符 阅读全文
posted @ 2012-10-21 20:50 @ 小浩 阅读(1524) 评论(0) 推荐(0) 编辑
有关杭电acm问题的分类
摘要:转载的!呵呵呵!!!第一篇 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最近点对问题,用分治 1008 简单题 1009 贪心 1010 搜索题,剪枝很关键 1011 1012 简单题 1013 简单题(有个小陷阱) 1014 简单题 1015 可以看作搜索题吧 1016 经典的搜索 1017 简单数学题 1018 简单数学题 1019 简单数学题 1020 简单的字符串处理 1021 找规律的数学题 1022 数据结构的题(栈的应用) 1 阅读全文
posted @ 2012-10-19 20:35 @ 小浩 阅读(483) 评论(0) 推荐(0) 编辑
杭电2075
摘要:此题真的是简单的再不能简单了!呵呵!我一直纠结,出这样的题是什么意思呢?不懂!哎,不说那些废话了,直接ac吧!呵呵!#include<iostream>using namespace std;int main(){int l,m,n;cin>>l;while(l--){ cin>>m>>n;puts(m%n==0?"YES":"NO");}return 0;} 阅读全文
posted @ 2012-10-19 20:35 @ 小浩 阅读(252) 评论(0) 推荐(0) 编辑
杭电2072
摘要:本人已经ac了的代码!!仅供参考!此题注意两以下两点即可ac,1.注意空格的数量不一定是一个2.注意统计不同单词的个数**说实话,此题确实挺恶心~~#include<iostream>#include<cstring>using namespace std;int main(){char a[10000],b[1000][100];int i,j,m,n,l,sum,p,q;while(cin.getline(a,10000)&&a[0]!='#'){ sum=0; i=j=m=0; while(a[i]!='\0') { 阅读全文
posted @ 2012-10-19 20:34 @ 小浩 阅读(702) 评论(1) 推荐(1) 编辑
杭电2069
摘要:杭电2069此题也是一道简单的c语言案例实训题,此题的大致意思如下:你可以使用5种面额的coins,分别是50coins,25coins,10coins,5coins,1coins!对于每个随机给的钱数n,请你将n换成若干个50coins,25coins,10coins,5coins,1coins!此题还需注意以下:所有的面coins数之和小于100coins!!让我们一起ac吧!呵呵呵!#include<iostream>using namespace std;int main(){int n,i,j,k,l,m,sum;while(cin>>n){sum=0;for 阅读全文
posted @ 2012-10-19 20:24 @ 小浩 阅读(343) 评论(0) 推荐(0) 编辑
杭电2070
摘要:此题的是Fibbonacci数列的一个简单变形题,此题的意思是:对于每个给定的整数n,求出对应位置上f(n),它给的公式是:f(0) = 0 f(1) = 1 f(n) = f(n-1) + f(n-2)它公式都给了!等什么,赶快AC吧!!!*注意一下本题要使用64位整数及__int64,输出要用printf("%I64d\n",a[n]);否则将溢出!!!#include<iostream>using namespace std;int main(){__int64 a[55];int n,i;while(cin>>n&&n!=-1 阅读全文
posted @ 2012-10-19 20:24 @ 小浩 阅读(258) 评论(0) 推荐(0) 编辑
杭电2071
摘要:此题是一道不能再简单的acm题了!!呵呵!此题的意思是:给你一排double类型的数,找出其中最大的一个!!!注意结果保留两位小数!!!呵呵!!还等什么,赶快ac吧!!!#include<iostream>using namespace std;int main(){int n,m,i;double a[105];cin>>n;while(cin>>m&&n--){ double b=0.0;for(i=0;i<m;i++){cin>>a[i]; if(b<a[i]) b=a[i];}printf("%.2l 阅读全文
posted @ 2012-10-19 20:24 @ 小浩 阅读(249) 评论(0) 推荐(0) 编辑
递归调用简单的讲解
摘要:学过数据结构的同学应该知道,递归调用其实就是c语言的栈,及栈里的特点:先进后出的原则!!没学过的也没关系,递归调用的实质也就是循环调用,下面我用一个简单的例子加以说明: #include<stdio.h> int main(){ int n; int f(int m); scanf("%d",&n); printf("%d\n",f(n)); return 0; } int f(int m){if(m==1) return 2;else return f(m-1);//每当m!=1的时候就不断地调用int f(int m),直到m== 阅读全文
posted @ 2012-10-15 20:41 @ 小浩 阅读(2291) 评论(0) 推荐(0) 编辑
杭电2064
摘要:此题是一道简单的递归 此题是一道递归运算题,这题又是一道汉诺塔问题!!!只要了解其规律,呵呵,你就可以很快AC了!! 这是一般的汉诺塔问题的解题方法照片!!!弄了好久也没弄好本题的照片,所以只好尽量用语言描述了!哈!此题只是在原型上略微修改一下移动方法如下:第1步:初始状态 第2步:把上面的n-1个盘移到第3号杆上 第3步:把第n个盘从1移到2 第4步:把前n-1个从3移到1,给第个盘让路 第5步:把第n个盘从2移到3 所以便有以下规律:f(n)=3*f(n-1)+2;最后注意一下要用64位整数即可!!即__int64,同时输出要用 printf("%I64d\n",f(n 阅读全文
posted @ 2012-10-14 19:58 @ 小浩 阅读(290) 评论(0) 推荐(0) 编辑
关于while(n--)和while(n)和if(n)的简单讲解~!
摘要:其中while(n):n是bool型变量时,就是代表n为true时运行循环,n是int型时,就是代表不为0时运行循环n为表达式,就代表表达式成立时运行循环下面是一个测试例子:#include<iostream>using namespace std;int main(){int n;scanf("%d",&n);while(n){cout<<n<<endl;n--;} return 0;}while(n--)的原型是while(n&&n=n-1)所以它的使用及可参照while(n)只是加了一个条件!测试例子:#in 阅读全文
posted @ 2012-10-11 19:19 @ 小浩 阅读(7119) 评论(0) 推荐(0) 编辑
杭电2061
摘要:此题的翻译如下:背景:新的学期即将到来,也正逢杭州电子科技大学50周年校庆。无论你的专业是什么,我唯一要告诉那么的是:“珍惜大学的生活,利用好时间。” 很多人认为大学的生活回是丰富多采。但事实是,大学生活也同样忙碌。如果你要掌握书上的知识,你的空闲时间必须花在自学和实践上,尤其是实践。我认为,作为一位大学生,所有人都必须端正自己的学习态度。“没有不劳而获的事情”,杭电也设立了奖学金,你能得到吗?它主要依据是学生获得的GPA(测评平均分)。现在,我将告诉你它的规则,你的任务就是编程计算GPA。假如有K门课程,第i门课的学分为Ci,你的成绩为为Si,则GPA为:GPA = (C1 * S1 + C 阅读全文
posted @ 2012-10-11 19:07 @ 小浩 阅读(418) 评论(0) 推荐(0) 编辑
杭电2060
摘要:杭电2060的翻译如下:当菲利普要放松一下自己的时候,他喜欢去玩QQ里的斯诺克游戏,虽然他还只是个小菜鸟。也许你还不知道这个游戏的规则,没关系,我会先为你介绍。一共有21个球在台面上,其中包括15个红球和6个彩球:黄、绿、褐、蓝、粉、黑。选手需要用一个白球来使这些球滚进洞里,那些球所代表的值的和就是他的得分。选手必须先把一个红球打进洞里,然后它得到红球相应的分值(1分),然后他就有一次机会去选择打一个彩球。在红球还未全部打进洞里之前,打进去的彩球需要重新拿出来。换句话说,也就是最后桌上将会只留下彩球。选手按下面的顺序来击球:黄(2分)、绿(3分)、褐(4分)、蓝(5分)、粉(6分)、黑(7分) 阅读全文
posted @ 2012-10-10 19:42 @ 小浩 阅读(518) 评论(0) 推荐(0) 编辑
关于0xffffff的简单讲解!!
摘要:如果是32位机器的话,在内存里面的存储形式就是这样的!其中0x表示16进制,f在16进制中就表示十进制数15,这样0xffffff就表示一个16进制的数fffffff,例如: 0xf就表示16进制的f,也就是10进制的15. 0xff就表示16进制的ff,也就是10进制的(15*16+15)。此外,0xffffff和0x00ffffff 也是一样的! 测试实例: #include<iostream> using namespace std; int main() { double min; min=0xf; cout<<min<<endl;return 0; 阅读全文
posted @ 2012-10-10 19:42 @ 小浩 阅读(11994) 评论(0) 推荐(0) 编辑
杭电2059
摘要:此题是我转载的,开始我也不太懂怎么弄,后来才理解!!如果你现在也是不太懂,让我们一起ac它吧!这道题的思路大致如下:假设乌龟修了n个充电站,那么如果把起点和终点也算一个充电站的话一共有n+2个充电站,这样第一个充电站充电的时间是0,接着进行两个循环,其中for(i=1;i<n+2;i++)是从第一个充电站开始循环,对于每个i,对于循环for (j=0;j<i;j++)依次算出i其前面的每个充电站是否充电的时间!最后把最短的时间付给min即可求出乌龟的最佳方案!!#include<iostream>using namespace std;int main(){ int i 阅读全文
posted @ 2012-10-09 20:03 @ 小浩 阅读(509) 评论(0) 推荐(0) 编辑
杭电2058
摘要:这是我的穷举源码,可惜超时了!哎!!!#include<iostream> using namespace std; int main() {int n,m,i,j,a;while(scanf("%d%d", &n, &m), m+n){ for(i=1;i<=n;i++) { a=0; for(j=i;j<=n;j++) {a=a+j; if(a==m) cout<<"["<<i<<","<<j<<"]"<& 阅读全文
posted @ 2012-10-02 15:57 @ 小浩 阅读(349) 评论(0) 推荐(0) 编辑
杭电2057
摘要:此题是一道简单的c语言应用题,注意以下几点即可轻松AC呵呵!@1@ 16进制的输入和输出要用scanf("%I64X%I64X",&n,&m)和printf("%I64X\n",n+m)!@2@ 注意输出的时候%I64X只能输出正的,所以在输出的时候要在前面先进行判断正负!!@3@ 祝你好运!good luck!!!#include<iostream>using namespace std; int main(){ __int64 n,m,a; while(scanf("%I64X%I64X",&n 阅读全文
posted @ 2012-10-02 13:01 @ 小浩 阅读(316) 评论(0) 推荐(0) 编辑
杭电2056
摘要:此题是一道求两个矩形公共面积的题,此题注意所给的两个矩形是平行于x轴或者平行于y轴的,这样他们的公共部分就只能是矩形了,这样使问题简单了不少!!由于所输入的两个坐标可能不同,所以先进行一下统一,都变成统一的模式!!!最后进行计算!!!#include<iostream>using namespace std;int main(){ int i; double a[2], b[2]; double x[4], y[4];while (scanf("%lf%lf", x, y) != EOF) { for (i = 1; i < 4; i++) scanf(& 阅读全文
posted @ 2012-10-02 11:30 @ 小浩 阅读(354) 评论(0) 推荐(0) 编辑
杭电2054
摘要:此题比较麻烦,主要在于所比较的两个数比较可能超出double等类型的正常范围,所以你只能选择字符数组来存放这些数字,同时请注意在字符数组中0011.0100和11.01是相等的!此外还应注意当其中一个数1.000这样的数时,不仅要去掉小数点后面的0还要把小数点也一定去掉!其中关于strchr的函数请参考http://www.cnblogs.com/xiohao/archive/2012/10/01/2709763.html!祝贺你轻松解决啊!呵呵!#include<iostream>#include<string.h>using namespace std; void 阅读全文
posted @ 2012-10-01 16:55 @ 小浩 阅读(839) 评论(0) 推荐(0) 编辑
杭电2055
摘要:此题是一道简单的转换题!记住A呵呵a的ASCII值分别是65和97,如果没记住也没关系呵呵!用类型转换‘A’和‘a’也可以呵呵!#include<iostream>using namespace std;int main(){int n,x,m;char z;cin>>n;getchar();while(n--){ cin>>z>>x; if(z>=65&&z<=90) m=z-'A'+x+1; if(z>=97&&z<=122) m=(-1)*(z-'a'+ 阅读全文
posted @ 2012-10-01 15:52 @ 小浩 阅读(230) 评论(0) 推荐(0) 编辑
关于函数strchr();
摘要:原型:extern char *strchr(const char *s,char c); const char *strchr(const char* _Str,int _Val) char *strchr(char* _Str,int _Ch) 头文件:#include <string.h> 功能:查找字符串s中首次出现字符c的位置 说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。 返回值:Returns the address of the first occurrence of the character in the string if successf 阅读全文
posted @ 2012-10-01 15:51 @ 小浩 阅读(282) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示