hdu2073
数学
#include<stdio.h>
#include<math.h>
double len(double x){
return sqrt(x*x+(x+)*(x+));
} int main(){
int N;
while(scanf("%d",&N)!=EOF){
for(int q=;q<=N;q++){
double x1,y1,x2,y2;
double l=;
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
if(x1+y1==x2+y2){
l=abs(y1-y2)*sqrt(2.0);
}
else{
double a,b;
if(x1+y1>x2+y2){
double t;
t=x1;x1=x2;x2=t;
t=y1;y1=y2;y2=t;
}
a=x1+y1;b=x2+y2;
int i;
for(i=a;i<b;i++) l+=len(i);
l+=((a+b)*(b-a-)/+y1+x2)*sqrt(2.0);
}
printf("%.3lf\n",l); }
}
return ;
}
hdu2074
模拟
#include<stdio.h> char pic[][]; int main(){
int n,count=;
char a,b;
while(scanf("%d %c %c",&n,&a,&b)!=EOF){
if(count)printf("\n");
count++;
int i,j,h,l,c=;
char m;
for(i=(n+)/;i>=;i--){
h=i;l=n+-i;
m=(c%)?a:b;
c++;
for(j=h;j<=l;j++){
pic[h][j]=pic[l][j]=pic[j][h]=pic[j][l]=m;
}
}
pic[][]=pic[][n]=pic[n][]=pic[n][n]=' ';
if(n==)pic[][]=a;
for(i=;i<=n;i++){
for(j=;j<=n;j++){
printf("%c",pic[i][j]);
}
printf("\n");
}
}
return ;
}
hdu2075
暴力
#include<stdio.h>
int main()
{
int T;
while (scanf("%d",&T)!=EOF)
{
int i;
for (i=;i<=T;i++)
{
long long A,B;
scanf("%I64d%I64d",&A,&B);
if (A%B) printf("NO\n");
else printf("YES\n");
}
}
return ;
}
hdu2076
计算时钟夹角,数学
#include<stdio.h>
#include<math.h> int main(){
int h,m,s,T;
while(scanf("%d",&T)!=EOF){
for(int q=;q<=T;q++){
scanf("%d%d%d",&h,&m,&s);
if(h>=)h-=;
double a,b;
a=(*h+*m/60.0+*s/3600.0);
b=(*m+*s/60.0);
double t=a-b;
if(t>) t=-t;
else if(t<-) t=t+;
else if(t<) t=-t;
int p=t;
printf("%d\n",p);
}
}
return ;
}
hdu2077
汉诺塔改,数学公式
#include<stdio.h>
long long a[],b[],c[],k[]; void fun(){
int i;
k[]=;
for(i=;i<=;i++)k[i]=*k[i-]+;
a[]=;
for(i=;i<=;i++)a[i]=k[i-]+a[i-]+;
b[]=;
for(i=;i<=;i++)b[i]=b[i-]++k[i-];
c[]=;
for(i=;i<=;i++)c[i]=a[i-]++b[i-];
} int main(){
fun();
int T;
while(scanf("%d",&T)!=EOF){
for(int q=;q<=T;q++){
int n;
scanf("%d",&n);
printf("%I64d\n",c[n]);
}
}
return ;
}
hdu2078
模拟
include<stdio.h> int main()
{
int T;
while (scanf("%d",&T)!=EOF)
{
int i;
for (i=;i<=T;i++)
{
int n,m;
scanf("%d%d",&n,&m);
int max=,j,min=,a;
for (j=;j<=n;j++)
{
scanf("%d",&a);
if (a<min) min=a;
}
printf("%d\n",(max-min)*(max-min));
}
}
return ;
}