2012年10月29日
摘要: 此题是一道找规律的问题,只要在找的时候细心一下,轻松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 @ 小浩 阅读(544) 评论(0) 推荐(0) 编辑
摘要: 此题就是一道简单的数学问题!!没有太多好说的,就是利用了一下反三角函数,就轻松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) 编辑
摘要: 此题的思路比较简单,就是用的穷举方法,为什么用这个方法呢?呵呵!其实你可以清楚的看到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 @ 小浩 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 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 @ 小浩 阅读(203) 评论(0) 推荐(0) 编辑
  2012年10月25日
摘要: 对于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 @ 小浩 阅读(6763) 评论(0) 推荐(0) 编辑
摘要: 此题是一道简单题,可以有多种方法,这里将我所知道的每种方法都列出来,仅供参考,其实原理都差不多,方法一:利用字符数组来存放电话号码:#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) 编辑
  2012年10月24日
摘要: 说实话,此题是一道有严重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 @ 小浩 阅读(308) 评论(0) 推荐(0) 编辑
  2012年10月23日
摘要: 哎,说实话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 @ 小浩 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 简单题,直接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) 编辑
  2012年10月22日
摘要: 此题是一道数学题思路比较简单,就是考虑的时候想全面了就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) 编辑