UCF Local Programming Contest 2013(Practice)

# A

# 题意

# 题解

 1 //A
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 void solve(int r){
 5     string str1,str2;
 6     cin>>str1>>str2;
 7     cout<<"Game #"<<r<<":"<<endl;
 8     cout<<"   "<<"The input words are "<<str1<<" and "<<str2<<"."<<endl;
 9     reverse(str1.begin(),str1.end());
10     reverse(str2.begin(),str2.end());
11     string res1,res2;
12     for(int i=0,j=0;i<str1.size()&&j<str2.size();i++,j++){
13         if(str1[i] != str2[j] || i==str1.size()-1 || j==str2.size()-1){
14             res1=str1.substr(i,str1.size());
15             res2=str2.substr(j,str2.size());
16             break;
17         }
18     }
19     reverse(res1.begin(),res1.end());
20     reverse(res2.begin(),res2.end());
21     cout<<"   The words entered in the notebook are "<<res1<<" and "<<res2<<"."<<endl;
22     cout<<endl;
23 }
24 int main(){
25     int t;
26     cin>>t;
27     for(int i=1;i<=t;i++){
28         solve(i);
29     }
30 }

# B

# 题意

# 题解

 1 // B
 2 #include<bits/stdc++.h>
 3 #define pdd pair<double,double>
 4 #define db double
 5 #define x first
 6 #define y second
 7 using namespace std;
 8 const int N=55;
 9 pdd a[N];
10 void solve(int r){
11     cout<<"Test case #"<<r<<":"<<" ";
12     int res=0;
13     int n;
14     cin>>n;
15     for(int i=0;i<n;i++)
16         cin>>a[i].x>>a[i].y;
17     unordered_map<string,bool>rec;
18     for(int i=0;i<n;i++)
19         for(int j=0;j<i && j!=i;j++)
20             for(int k=0;k<j && k!=i && k!=j;k++){
21                     db x1 = a[i].x, y1 = a[i].y;
22                     db x2 = a[j].x, y2 = a[j].y;
23                     db x3 = a[k].x, y3 = a[k].y;
24                     db d12 = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
25                     db d13 = sqrt(pow(x1 - x3, 2) + pow(y1 - y3, 2));
26                     db d23 = sqrt(pow(x2 - x3, 2) + pow(y2 - y3, 2));
27                     db s=(d12+d23+d13)/2;
28                     db delta = (s-d12)*(s-d13)*(s-d23);
29                     db jud=fabs(x1*y2+y1*x3+x2*y3-y2*x3-y3*x1-y1*x2)/2;
30                     if(delta <=0 || jud==0)
31                         continue;
32                     else {
33                         res++;
34                     }
35                 }
36 
37     cout<<res<<" "<<"triangle(s) can be formed."<<endl;
38     cout<<endl;
39 }
40 int main(){
41     ios::sync_with_stdio(0);
42     cin.tie(0);
43     cout.tie(0);
44     int t;
45     cin>>t;
46     for(int i=1;i<=t;i++){
47         solve(i);
48     }
49 }

# C

# 题意

# 题解

 1 //C
 2 #include<bits/stdc++.h>
 3 #define pdd pair<double,double>
 4 #define db double
 5 #define fi first
 6 #define se second
 7 using namespace std;
 8 const int N=55;
 9 pdd a[N];
10 unordered_map<int,string>u;
11 
12 void solve(int r){
13     string a;
14     unordered_map<char,int>p;
15     cin>>a;
16     cout<<"UCF Hold-em #"<<r<<": "<<a<<endl;
17     for(int i=0;i<a.size();i++){
18         p[a[i]]++;
19     }
20     int res;
21     bool flag=0;
22     while(!flag){
23     for(auto x:p){
24         if(x.se == 4) {
25             res=5;
26             flag=1;
27         }
28     }
29     if(flag)break;
30     bool cnt1=0,cnt2=0;
31     for(auto x:p){
32         if(x.se>=3) {
33             cnt1=1;
34             continue;
35         }
36         if(x.se>=2){
37             cnt2=1;
38             continue;
39         }
40     }
41     if(cnt1 && cnt2){
42         flag=1;
43         res=4;
44     }
45     if(flag)break;
46     for(auto x:p){
47         if(x.se == 3) {
48                 res=3;
49                 flag=1;
50             }
51         }
52     if(flag)break;
53         for(auto x:p){
54             if(x.se == 2) {
55                 res=2;
56                 flag=1;
57             }
58         }
59         if(flag)break;
60     res=1;
61     break;
62     }
63     cout<<"Best possible hand: "<<u[res]<<endl<<endl;
64 }
65 int main(){
66     ios::sync_with_stdio(0);
67     cin.tie(0);
68     cout.tie(0);
69     int t;
70     cin>>t;
71     u[5]="FOUR OF A KIND";
72     u[4]="FULL HOUSE";
73     u[3]="THREE OF A KIND";
74     u[2]="TWO OF A KIND";
75     u[1]="BUST";
76     for(int i=1;i<=t;i++){
77         solve(i);
78     }
79 }

# D

# 题意

# 题解

# E

# 题意

# 题解

# F

# 题意

# 题解

# G

# 题意

# 题解

# H

# 题意

# 题解

# I

# 题意

# 题解

 1 #include<queue>
 2 #include<cassert>
 3 #include<cstdio>
 4 #include<cstring>
 5 #include<cstdlib>
 6 #include<iostream>
 7 #include<algorithm>
 8 #include<unordered_map>
 9 #define fi first
10 #define se second
11 
12 using namespace std;
13 
14 typedef long long ll;
15 typedef pair<int,int>pii;
16 
17 const int mod=1e9+7;
18 const int inf=0x3f3f3f3f;
19 const int N=1e6+5;
20 
21 ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
22 ll qmi(ll a,ll b) {ll res=1;a%=mod; assert(b>=0); for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}
23 
24 pii a[N];
25 
26 bool check(pii a,pii b,pii c){
27     int x1=b.fi-a.fi,x2=c.fi-a.fi;
28     int y1=b.se-a.se,y2=c.se-a.se;
29     if(x1*y2==x2*y1) return false;
30     return true;
31 }
32 
33 int main(){
34     // freopen("in","r",stdin);
35     int CASE=0;
36     int _;for(scanf("%d",&_);_;_--){
37         int n;scanf("%d",&n);
38         for(int i=1;i<=n;i++) scanf("%d%d",&a[i].fi,&a[i].se);
39         int ans=0;
40         for(int i=1;i<=n;i++)
41             for(int j=i+1;j<=n;j++)
42                 for(int k=j+1;k<=n;k++)
43                     ans+=check(a[i],a[j],a[k]);
44         printf("Test case #%d: %d triangle(s) can be formed.\n\n",++CASE,ans);
45     }
46     return 0;
47 }

猜你喜欢

转载自www.cnblogs.com/hhyx/p/12466142.html