CSP2017-03

  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 }

 

posted @ 2021-11-05 12:22  Sylvia_lee  阅读(33)  评论(0编辑  收藏  举报