CSP201703-1 分蛋糕
1 // 2 // main.cpp 3 // CSP201703-1 分蛋糕 4 // 5 // Created by sylvia on 2021/11/5. 6 // Copyright © 2021 apple. All rights reserved. 7 // 8 9 #include <iostream> 10 using namespace std; 11 #define M 1000+4 12 int n,a[M],num,w=0,k,p; 13 int main(){ 14 cin>>n>>k; 15 for (int i=1;i<=n;i++){ 16 cin>>p; 17 w+=p; 18 if(w>=k){ 19 w=0; 20 num++; 21 } 22 } 23 if (w>0) num++; 24 cout<<num<<endl; 25 return 0; 26 }View Code
CSP201703-2 学生排队
虽然是个水题,起初还以为*号指的是位置号,然后就非常开心的用vector写了,结果发现是学号,然后就去搜了搜find函数和distance函数,害挺好用
头文件都是<algorithm>
vector<int>::iterator iter; //定义向量迭代器
iter=find(a.begin(),a.end(),id);//从a的开头到结尾找id,找到就返回迭代器
int dist=distance(a.begin(),iter);//使用distance定位位置,两个参数begin-end,返回的是两者之间的距离
//比如a中存放的是3 4 5 6 7 ,若iter为5的位置,那么返回的是2
1 // 2 // main.cpp 3 // CSP201703-2 学生排队 4 // 5 // Created by sylvia on 2021/11/5. 6 // Copyright © 2021 apple. All rights reserved. 7 // 8 9 #include <iostream> 10 #include <vector> 11 #include <string.h> 12 #include <math.h> 13 #include <algorithm> 14 using namespace std; 15 vector<int> a; 16 vector<int>::iterator iter; 17 int n,m,id,dis,flag; 18 int main(){ 19 cin>>n>>m; 20 for (int i=1;i<=n;i++) a.push_back(i); 21 while (m--){ 22 cin>>id>>dis; 23 iter=find(a.begin(),a.end(),id); 24 int dist=distance(a.begin(),iter); 25 int tmp=a[dist]; 26 a.erase(a.begin()+dist); 27 a.insert(a.begin()+dist+dis,tmp); 28 } 29 for(int i=0;i<a.size();i++){ 30 cout<<a[i]<<' '; 31 } 32 cout<<endl; 33 34 }