250pts 这题实在没什么可说的。。。。 #include <vector> #include <list> #include <map> #include <set> #include <deque> #include <stack> #include <bitset> #include <string> #include <functional> #include <numeric> #include <utility> #include <sstream> #include <iostream> #include <iomanip> #include <cstdio> #include <cmath> #include <cstdlib> #include <ctime> #include <algorithm> using namespace std; class ToastXToast { public: int bake(vector <int> under, vector <int> over) { sort(under.begin(),under.end()); sort(over.begin(),over.end()); int n=under.size(); int m=over.size(); if(over[0]<under[0]) return -1; if(over[m-1]<under[n-1]) return -1; if(over[0]>under[n-1]) return 1; return 2; } }; 500pts 不给力的期望题啊! #include <vector> #include <list> #include <map> #include <set> #include <deque> #include <stack> #include <bitset> #include <string> #include <functional> #include <numeric> #include <utility> #include <sstream> #include <iostream> #include <iomanip> #include <cstdio> #include <cmath> #include <cstdlib> #include <ctime> #include <algorithm> using namespace std; #define MAXN 102 struct node{ int ind; long long val; }; bool comp(node a,node b){ if(a.val<b.val) return true; else if(a.val==b.val&&a.ind>b.ind) return true; return false; } class KingdomXCitiesandVillages { public: double determineLength(vector <int> cX, vector <int> cY, vector <int> vX, vector <int> vY) { int n=cX.size(); int m=vX.size(); vector<node> mat[52]; int i,j; node tmp; for(i=0;i<m;i++) for(j=0;j<m+n;j++) if(i!=j){ if(j<m) tmp.val=(long long)(vX[i]-vX[j])*(vX[i]-vX[j])+(long long)(vY[i]-vY[j])*(vY[i]-vY[j]); else tmp.val=(long long)(vX[i]-cX[j-m])*(vX[i]-cX[j-m])+(long long )(vY[i]-cY[j-m])*(vY[i]-cY[j-m]); tmp.ind=j; mat[i].push_back(tmp); } // cout<<mat[0][0].val<<" "<<mat[0][1].val<<endl; for(i=0;i<m;i++) sort(mat[i].begin(),mat[i].end(),comp); double ret=0.0; for(i=0;i<m;i++){ int size=mat[i].size(); double sp=0.0; for(j=0;j<size;j++) if(mat[i][j].ind>=m){ ret+=(1-sp)*sqrt(mat[i][j].val*1.0); break; } else{ ret+=(1.0/((j+2)*(j+1)*1.0))*sqrt(mat[i][j].val*1.0); sp+=1.0/((j+2)*(j+1)*1.0); } } return ret; } };