标签:closed com color stack iostream mat show pre cst
第一题 跳一跳
题目:
题意:浅显。qwq
题解:2计数+1,到1就清空计数。
代码:
1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<cmath> 5 #include<queue> 6 #include<stack> 7 #include<cstring> 8 using namespace std; 9 #define ll long long 10 #define INF 0x3f3f3f3f 11 const int maxn = 1000+10; 12 13 int main(){ 14 int cnt = 1; 15 int sum = 0; 16 int n; 17 while(cin>>n && n){ 18 if(n == 2){ 19 sum += n * cnt; 20 cnt++; 21 //cout<<sum<<endl; 22 } 23 else{ 24 cnt = 1; 25 sum += 1; 26 //cout<<sum<<endl; 27 } 28 29 } 30 cout<<sum<<endl; 31 return 0; 32 }
第二题 小球碰撞
题目:
题意:撞到墙壁或者两球相撞都要改变方向,问t秒后各个球的位置。
题解:暴力,模拟。考虑边界。
代码:
1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<cmath> 5 #include<queue> 6 #include<stack> 7 #include<cstring> 8 using namespace std; 9 #define ll long long 10 const int maxn = 100+10; 11 12 int n,L,t; 13 int a[maxn]; 14 int flag[maxn]; 15 16 void print(){ 17 for(int i = 1; i <= n ; i++){ 18 cout<<a[i]<<" "; 19 } 20 cout<<endl; 21 } 22 23 int main(){ 24 25 cin>>n>>L>>t; 26 for(int i = 1 ; i <= n ;i++){ 27 cin>>a[i]; 28 flag[i] = 1; //初始右 29 } 30 31 for(int i = 1 ; i <= t; i++){ 32 for(int j = 1 ; j <= n ; j++){ 33 a[j] += flag[j]; 34 if(a[j] == 0 || a[j] == L){ 35 flag[j] = -flag[j]; 36 } 37 for(int k = 1; k <= n ;k++){ 38 if(a[j] == a[k] && j != k){ 39 flag[j] = -flag[j]; 40 flag[k] = -flag[k]; 41 } 42 } 43 } 44 //print(); 45 } 46 print(); 47 return 0; 48 }
标签:closed com color stack iostream mat show pre cst
原文地址:https://www.cnblogs.com/Asumi/p/9607648.html