码迷,mamicode.com
首页 > 其他好文 > 详细

数字游戏【后缀积问题,一个数学分析问题】

时间:2020-03-03 01:07:15      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:logs   cst   type   rgb   names   ref   实现   ==   code   

此题着重考虑每加上一个数会对,前面得-+0产生什么样的影响。分析可知插入0为特殊点。然后就可以通过代码实现。

1 1 0 1 3 41 -1等模拟运行下就能法现其规律。


技术图片


  1 #include <algorithm>
  2 #include <iostream>
  3 #include <cstring>
  4 
  5 using namespace std;
  6 typedef long long LL;
  7 LL _1 = 0, _0 = 0, __1 = 0;
  8 LL cnt1, last, cnt2;
  9 
 10 void add(int num, int pos){
 11 
 12 	if(num == 0){
 13 		_0 += pos;
 14 		last = pos;
 15 		cnt1 = cnt2 = 0;
 16 		return;
 17 	}
 18 	if(num > 0){
 19 		_1 += (++cnt1), _0 += last, __1 += cnt2;
 20 		return;
 21 	}
 22 	_1 += cnt2, __1 +=  (++cnt1), _0 += last;
 23 	swap(cnt1, cnt2);
 24 }
 25 
 26 int main(){
 27 	int n, m;
 28 	cin >> n >> m;
 29 	int cnt = 0;
 30 	for(int i = 0; i < n; ++ i){
 31 		cnt++;
 32 		int num;
 33 		cin >> num;
 34 		add(num, cnt);
 35 	}
 36 
 37 	while(m--){
 38 		int op;
 39 		cin >> op;
 40 		if(op == 2) cout << _1 << " " << _0 << " " << __1 << endl;
 41 		else{
 42 			int t;
 43 			cin >> n;
 44 			for(int i = 0; i < n; ++ i){
 45 				int num;
 46 				cnt++;
 47 				cin >> num;
 48 				add(num, cnt);
 49 			}
 50 		}
 51 	}
 52 	return 0;
 53 
 54 }

数字游戏【后缀积问题,一个数学分析问题】

标签:logs   cst   type   rgb   names   ref   实现   ==   code   

原文地址:https://www.cnblogs.com/rstz/p/12399113.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!