八戒学完了算术,师父打算给八戒一个买礼物的任务。他们即将到达女儿国,师父给八戒m个盘缠,要他去买些礼物,已备到时候用做给女儿国国王、大臣们的见面礼。由于不知道即未来迎接他们的人数,为了尽量让女儿国的小姐姐们高兴,师父要八戒尽可能多买几件礼物备着。ios
领了任务,拿了盘缠的八戒来到不远处的礼品店,他发现店里一共有n件商品,每件商品各有价格。因而,八戒要算一算手里的m个盘缠,最多能买几件礼物。spa
5 60 40 20 10 20 30
3
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 int main() 5 { 6 int n,m; 7 cin>>n>>m; 8 int a[n]; 9 for(int i=0;i<n;++i){ 10 cin>>a[i]; 11 } 12 13 int sum=0; 14 sort(a,a+n); 15 if(a[0]>m) 16 { 17 cout<<0; 18 return 0; 19 } 20 for(int i=0;i<n;++i) 21 { 22 sum+=a[i]; 23 if(i<n-1) 24 { 25 if(sum<=m&&m<sum+a[i+1]) 26 { 27 cout<<i+1; 28 return 0; 29 } 30 if(sum==sum+a[i+1]) 31 { 32 cout<<i+2; 33 return 0; 34 } 35 36 } 37 38 } 39 if(m>=sum) 40 { 41 cout<<n; 42 return 0; 43 } 44 }
在线性代数、计算几何中,向量点积是一种十分重要的运算。code
给定两个n维向量a=(a1,a2,...,an)和b=(b1,b2,...,bn),求点积a·b=a1b1+a2b2+...+anbn。blog
3 1 4 6 2 1 5
36
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int n,a[1000],b[1000]; 6 cin>>n; 7 for(int i=0;i<n;++i) 8 { 9 10 cin>>a[i]; 11 } 12 for(int i=0;i<n;++i) 13 { 14 15 cin>>b[i]; 16 } 17 int k=0; 18 for(int i=0;i<n;++i) 19 { 20 k+=a[i]*b[i]; 21 22 } 23 cout<<k; 24 25 return 0; 26 }