【题目链接】:http://codeforces.com/contest/239/problem/B

【题意】

给你一个长度为n的字符串,只包括‘<”>’以及数字0到9;
给你q个区间(n和q都小于等于100)
然后让你在这q个区间里面做一些操作;
有一个指针int,指向当前操作的位置,还有一个方向的int;
表示这个指针它要移动的方向;
每次对一个位置进行操作;
如果该位置是数字;
则把这个数字输出,然后这个数字递减1;
如果数字小于0了,则把它删掉;
然后把指针往方向int的方向移动一个单位;
如果是’>’或’<’则,把方向改成左或右;
然后往新的方向走,如果走了一步之后还是’<’或’>’
则把前一个’<’或’>’删掉;
问你最后0..9各输出了多少个;

【题解】

每次模拟一步即可;
直到cp指针跳出了区间为止;
可以用数组来模拟链表的删除过程;
对每个区间的操作,都把数组链表初始化一下即可;

【Number Of WA 】

0

【反思】

这种模拟删掉的过程用数组模拟链表的方法都比较方便;

【完整代码】

#include <bits/stdc++.h>
#define rep1(i,x,y) for (int i = x;i <= y;i++)
#define rep2(i,x,y) for (int i = x;i >= y;i--)
using namespace std;const int N = 100+10;int n,q,l,r,a[N][2],cp,dp,num;
int tot[10];
string s,s1;void get_next(){int ll = a[cp][0],rr = a[cp][1],tcp = cp;if (s1[cp]>='0' && s1[cp]<='9'){cp = a[cp][dp];num++;tot[s1[tcp]-'0']++;s1[tcp]--;if (s1[tcp]<'0'){a[ll][1] = rr;a[rr][0] = ll;}}else{if (s1[cp]=='<')dp = 0;elsedp = 1;cp = a[cp][dp];if (cp < l || cp > r) return;if (s1[cp]>='0' && s1[cp]<='9') return;a[ll][1] = rr,a[rr][0] = ll;}
}int main(){//freopen("D:\\rush.txt","r",stdin);cin >> n >> q;cin >> s;s = ' ' + s;rep1(i,1,q){num = 0;s1 = s;cin >> l >> r;rep1(j,l,r)a[j][0] = j-1,a[j][1] = j+1;rep1(j,0,9)tot[j] = 0;cp = l,dp = 1;while (1){get_next();if (cp <l || cp>r) break;}rep1(j,0,9)cout << tot[j] <<' ';cout << endl;}return 0;
}

转载于:https://www.cnblogs.com/AWCXV/p/7626244.html

【codeforces 239B】Easy Tape Programming相关推荐

  1. 【Codeforces 1096D】Easy Problem

    [链接] 我是链接,点我呀:) [题意] 让你将一个字符串删掉一些字符. 使得字符串中不包含子序列"hard" 删掉每个字符的代价已知为ai 让你求出代价最小的方法. [题解] 设 ...

  2. 【CodeForces - 1096D】Easy Problem(dp,思维)

    题目大意: 现在有一个由小写字母组成的字符串,去掉这个字符串的第i个位置的字符会有ai的代价.你的任务是去掉这个字符串中的一些字符使得该字符串中不包含子序列hard,且去掉字符的代价之和尽可能小. 输 ...

  3. 【CodeForces - 574B】Bear and Three Musketeers (枚举边,思维,优秀暴力)

    题干: Do you know a story about the three musketeers? Anyway, you will learn about its origins now. Ri ...

  4. 【CodeForces - 144C】Anagram Search(尺取,滑窗问题,处理字符串计数)

    题干: A string t is called an anagram of the string s, if it is possible to rearrange letters in t so ...

  5. 【CodeForces - 608C】Chain Reaction (二分 或 dp ,思维)

    题干: 题目大意: 题意是在一条直线上坐落着不同位置的灯塔,每一个灯塔有自己的power level,当作是射程范围.现在从最右边的灯塔开始激发,如果左边的灯塔在这个灯塔的范围之内,那么将会被毁灭.否 ...

  6. 「一题多解」【CodeForces 85D】Sum of Medians(线段树 / 分块)

    题目链接 [CodeForces 85D]Sum of Medians 题目大意 实现一个setsetset,支持插入,删除,求∑a5k+3∑a5k+3\sum a_{5k+3}.注意,setsets ...

  7. 【CodeForces 997C】Sky Full of Stars(组合计数)

    题目链接:[CodeForces 997C]Sky Full of Stars 官方题解:Codeforces Round #493 - Editorial 题目大意:有一个n×nn×nn\times ...

  8. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  9. 【codeforces 508B】Anton and currency you all know

    [题目链接]:http://codeforces.com/contest/508/problem/B [题意] 给你一个奇数; 让你交换一次数字; 使得这个数字变成偶数; 要求偶数要最大; [题解] ...

最新文章

  1. 一文读懂可解释机器学习简史,让你的模型再也不是“Black Box”
  2. 牛顿插值多项式(python实现)
  3. VMware Linux下拖拽补丁vmtools的安装和卸载
  4. 多样性算法在58部落的实践和思考
  5. 算法(3)--leetcode-explore-learn-数据结构-数组1
  6. MySQL 安装+管理
  7. java 如何去掉http debug日志_谈谈日志的最佳实践
  8. iScroll示例,下拉刷新,上拉刷新
  9. linux中批量替换文本中字符串
  10. 【html5插入透明Webm视频】
  11. 中国石油焦市场供需态势及投资潜力预测报告2021年版
  12. macos 如何优美地打开知网caj文件 - macos 如何打开caj文件
  13. wordpress最佳架构_动物和宠物的24个最佳WordPress主题
  14. 为了搞清深度学习的随机梯度下降我复习了下微积分
  15. Python 3 print() 输出自动换行
  16. Docker概述与基本使用
  17. 3.原子操作的实现原理
  18. SqlCommand.ExecuteNonQuery()的返回值问题
  19. js 字符串截取 slice 的小bug 以及处理方式
  20. 查询rssi指令_你的 iPhone 信号有多差?教你一招查询信号强度

热门文章

  1. Crosstool-ng制作交叉编译工具链
  2. [html] 怎样在文本框中禁用中文输入法?
  3. [vue] vue的is这个特性你有用过吗?主要用在哪些方面?
  4. [css] 移动端的布局用过媒体查询吗?写一个试试
  5. 工作334:uni-控制整个label区域可选
  6. [js] 举例说明面向对象编程有什么缺点?
  7. 前端学习(2619):vue插槽--具名插槽
  8. 前端学习(2576):选择何种方式的路由和底层原理
  9. 前端学习(1887)vue之电商管理系统电商系统之通过路由的形式显示用户列表
  10. 前端学习(1796):前端调试之html/css介绍