2019的hdu暑假作业(欢迎纠错)

1219

遍历计数。

 1 #include<bits/stdc++.h>
 2 #define QAQ 0
 3 
 4 using namespace std;
 5 
 6 char a[100010];
 7 int cnt[200];
 8 int main(){
 9     while(cin.getline(a,100005)){
10         memset(cnt,0,sizeof(cnt));
11         int l=strlen(a);
12         for(int i=0;i<l;i++){
13             cnt[a[i]]++;
14         }
15         for(int i='a';i<='z';i++){
16             printf("%c:%d\n",i,cnt[i]);
17         }
18         printf("\n");
19     }
20     return QAQ;
21 }
hdu 1219

1221

最大值一定到在圆心到矩形四个顶点里,最小值除了到顶点距离外,再判一下圆心到四条边距离。

 1 #include<bits/stdc++.h>
 2 #define QAQ 0
 3 
 4 using namespace std;
 5 typedef long long ll;
 6 const double eps=1e-7;
 7 
 8 double x,y,r,a1,b1,a2,b2,a3,b3,a4,b4,maxi,mini;
 9 ll T;
10 
11 double dis(double x1, double y1, double x2, double y2){
12     return sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );
13 }
14 
15 int main(){
16     scanf("%lld",&T);
17     while(T--){
18         scanf("%lf%lf%lf%lf%lf%lf%lf",&x,&y,&r,&a1,&b1,&a2,&b2);
19         a3=a1; b3=b2; a4=a2; b4=b1;
20         double l1=dis(x,y,a1,b1),l2=dis(x,y,a2,b2),
21         l3=dis(x,y,a3,b3),l4=dis(x,y,a4,b4);
22         
23         maxi=max( max(l1,l2) , max(l3,l4) );
24         mini=min( min(l1,l2) , min(l3,l4) );
25         
26         if(x>a1 && x<a2){
27             mini=min( mini, min( fabs(y-b1) , fabs(y-b2) ) );
28         }
29 
30         if(y>b1 && y<b2){
31             mini=min( mini, min( fabs(x-a1) , fabs(x-a2) ) );
32         }
33 
34         if(mini<=r && maxi>=r){
35             printf("YES");
36         }
37         else printf("NO");
38         printf("\n");
39     }
40     return QAQ;
41 }
hdu 1221

猜你喜欢

转载自www.cnblogs.com/miaomiaojie/p/11082021.html