【codeforces 239B】Easy Tape Programming
【题目链接】: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;
else
dp = 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;
}
【codeforces 239B】Easy Tape Programming的更多相关文章
- 【Codeforces 1096D】Easy Problem
[链接] 我是链接,点我呀:) [题意] 让你将一个字符串删掉一些字符. 使得字符串中不包含子序列"hard" 删掉每个字符的代价已知为ai 让你求出代价最小的方法. [题解] 设 ...
- 【codeforces 415D】Mashmokh and ACM(普通dp)
[codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...
- 【codeforces 761C】Dasha and Password(动态规划做法)
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 【codeforces 761C】Dasha and Password(贪心+枚举做法)
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 【32.22%】【codeforces 602B】Approximating a Constant Range
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 【35.02%】【codeforces 734A】Vladik and flights
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 【74.89%】【codeforces 551A】GukiZ and Contest
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 【codeforces 750F】New Year and Finding Roots
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 【29.89%】【codeforces 734D】Anton and Chess
time limit per test4 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
随机推荐
- 通过页面预加载(preload)提升小程序的响应速度
GitHub: https://github.com/WozHuang/mp-extend 主要目标 如果小程序在打开新页面时需要通过网络请求从接口中获取所用的数据,在请求完成之前页面都会因为没有数据 ...
- 安装SSH、配置SSH无密码登录 ssh localhost
集群.单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server ...
- Vue引用第三方datepicker插件无法监听datepicker输入框的值
一.背景 在Vue项目中使用了第三方的datepicker插件,在选择日期后vue无法检测到datepicker输入框的变化 <label class="fl">日期: ...
- 刷新页面vuex数据不消失和不跳转页面
先说点什么 vuex和路由拦截这一块捣鼓的有一段时间了,总算是爬出来了,特地来分享一下,首先声明没有什么基础介绍,用的是登录状态存储sessionStorage的方法!!! 进入正题 刷新 刷新相当与 ...
- xmllint命令
xmllint是一个很方便的处理及验证xml的工具,linux下只要安装libxml2就可以使用这个命令,下面整理一些常用功能 1. --format 此参数用于格式化xml,使其具有良好的可读性. ...
- Maven学习总结(25)——Eclipse Maven Update 时JDK版本变更问题
1.新建一个Maven项目JDK版本和系统版本不对应, 2.右键Maven项目->Maven->Update ProjectJDK版本改变了, 3.操作系统的JDK重装了新的版本,这是引起 ...
- java内存管理之内存模型
1,运行时数据区域 1. 程序计数器 (program counter register) 2. Java虚拟机栈 (jvm stack) 3. 本地方法栈 (native method stack) ...
- angular-Scope
Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带. Scope 是一个对象,有可用的方法和属性. Scope 可应用在视图和控制器上. 当你在 Ang ...
- maven这些工具负责创建项目,然后maven负责打包好war包扔进tomcat容器,tomcat容器接受的只是jar包
maven这些工具负责创建项目,然后maven负责打包好war包扔进tomcat容器,tomcat容器接受的只是jar包 2.tomcat不管你什么编译的,也不管你开发工具是什么.Tomcat只接受w ...
- debian mysql 定时自己主动备份的脚本
#!/bin/sh LOG=/var/log/mysql-backup.log # mysql db info USER_ROOT=XXXXXX USER_PWD=XXXXXXX # mysql da ...