hdu2090

模拟

 1 #include<stdio.h>
 2 int main(){
 3     char b[100];
 4     double price=0,a1,a2;
 5     int i=0;
 6     while(scanf("%s%lf%lf",b,&a1,&a2)!=EOF){
 7         price+=a1*a2;
 8     //    printf("%.1lf\n",price);
 9     }
10     printf("%.1lf\n",price);
11     return 0;
12 }
View Code

 

hdu2091

模拟实现

 1 #include<stdio.h>
 2 
 3 int main(){
 4     char a;
 5     int b;
 6     int t=0;
 7     while(scanf("%c",&a)!=EOF&&a!='@'){
 8         scanf("%d%*c",&b);
 9         if(t++)printf("\n");
10         int i;
11         if(b==1){
12             printf("%c\n",a);
13             continue;
14         }
15         for(i=1;i<=b-1;i++)printf(" ");
16         printf("%c\n",a);
17         if(b>=3){
18                for(i=2;i<=b-1;i++){
19                 for(int j=1;j<=b-i;j++) printf(" ");
20                 printf ("%c",a);
21                 for(int j=1;j<=2*(i-1)-1;j++) printf(" ");
22                 printf ("%c\n",a);
23             }
24         }    
25         for(i=1;i<=2*b-1;i++)printf("%c",a);
26         printf("\n");
27     }
28     return 0;
29 }
View Code

 

hdu2092

暴力模拟

 1 #include<stdio.h>
 2 #include<math.h>
 3 
 4 int main(){
 5     int  m,n;
 6     while(scanf("%d%d",&n,&m)!=EOF&&(n!=0||m!=0)){
 7         double d=n*n-4*m;
 8         if(d<0){
 9             printf("No\n");
10             continue;
11         }
12         else{
13             double l1=n/2.0+sqrt(d)/2.0,l2=n/2.0-sqrt(d)/2.0;        
14             int t1=l1,t2=l2;
15             if(fabs(t1-l1)<1e-10&&fabs(t2-l2)<1e-10)printf("Yes\n");
16             else printf("No\n");
17         }
18     }
19     return 0;
20 }
View Code

 

hdu2093

麻烦一点的模拟

 1 #include<stdio.h>
 2 #include<string.h>
 3 struct list{
 4     char name[10];
 5     int am;
 6     int pt;
 7 }l[7];
 8 void ex(int i,int j){
 9     char temp[10];int t;
10     {
11         strcpy(temp,l[i].name);
12         strcpy(l[i].name,l[j].name);
13         strcpy(l[j].name,temp);
14     }
15     {
16         t=l[i].am;
17         l[i].am=l[j].am;
18         l[j].am=t;
19     }
20     {
21         t=l[i].pt;
22         l[i].pt=l[j].pt;
23         l[j].pt=t;
24     }
25 }
26 int main(){
27     int p[7];
28     int n,m;
29     while(scanf("%d%d",&n,&m)!=EOF){
30         for(int q=1;q<=6;q++){
31             l[q].am=l[q].pt=0;
32             scanf("%s",l[q].name);
33             for(int k=1;k<=n;k++){
34                 int a;
35                 scanf("%d",&a);
36                 if(a>0){
37                     l[q].am++;
38                     l[q].pt+=a;
39                 }
40                 char b=getchar();
41                 if(b=='('){
42                     scanf("%d",&a);
43                     l[q].pt+=m*a;
44                     getchar();
45                 }
46             }
47         
48         }
49         int i,j;
50         for(i=1;i<=5;i++){
51             for(j=i+1;j<=6;j++){
52                 if(l[i].am<l[j].am){
53                     ex(i,j);
54                 }
55                 else if(l[i].am==l[j].am&&l[i].pt>l[j].pt){
56                     ex(i,j);
57                 }
58                 else if(l[i].am==l[j].am&&l[i].pt==l[j].pt&&strcmp(l[i].name,l[j].name)>0){
59                     ex(i,j);
60                 }
61             }
62         }
63         for(i=1;i<=6;i++){
64             printf("%-10s %2d %4d\n",l[i].name,l[i].am,l[i].pt);
65         }
66     }
67     return 0;
68 }
View Code

 

hdu2094

有胜负关系,判断是否能够决出冠军(唯一不败),map记录某个人是否失败过

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<map>
 4 #include<string>
 5 #include<iostream>
 6 using namespace std;
 7 
 8 int main(){
 9     int n;
10     while(scanf("%d",&n)!=EOF&&n){
11         map<string,int>m;
12         int ans=0;
13         while(n--){
14             string a,b;
15             cin>>a>>b;
16             if(m[a]==0){
17                 ans++;
18                 m[a]=-1;
19             }
20             if(m[b]==0)m[b]++;
21             else if(m[b]==-1){
22                 m[b]=1;
23                 ans--;
24             }
25         }
26         if(ans==1)printf("Yes\n");
27         else printf("No\n");
28     }
29     return 0;
30 }
View Code

 

hdu2095

找唯一一个只出现一次的数,将所有数异或,最后得到的就是出现一次的数

 1 #include<stdio.h>
 2 int main(){
 3     int n;
 4     while(scanf("%d",&n)!=EOF&&n!=0){
 5         int a=0,b;
 6         for(int q=1;q<=n;q++){
 7             scanf("%d",&b);
 8             a^=b;
 9         }
10         printf("%d\n",a);
11     }
12     return 0;
13 }
View Code

 

hdu2096

最后两位的A+B,模拟

 1 #include<stdio.h>
 2 int main(){
 3     int T;
 4     while(scanf("%d",&T)!=EOF){
 5         for(int q=1;q<=T;q++){
 6             int a,b;
 7             scanf("%d%d",&a,&b);
 8             a%=100;
 9             b%=100;
10             int ans=(a+b)%100;
11             printf("%d\n",ans);
12         }
13 
14     }
15     return 0;
16 }
View Code

 

hdu2097

模拟

 1 #include<stdio.h>
 2 
 3 int main(){
 4     int n;
 5     while(scanf("%d",&n)!=EOF&&n!=0){
 6         int ans10=0,ans12=0,ans16=0;
 7         int t=n;
 8         while(t){
 9             ans10+=t%10;
10             t/=10;
11         }
12         t=n;
13         while(t){
14             ans16+=t%16;
15             t/=16;
16         }
17         t=n;
18         while(t){
19             ans12+=t%12;
20             t/=12;
21         }
22         if(ans10==ans12&&ans12==ans16)printf("%d is a Sky Number.\n",n);
23         else printf("%d is not a Sky Number.\n",n);
24     }
25     return 0;    
26 }
View Code