【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;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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql server 数据库还原

最近有接触到sql server 数据库&#xff0c;项目去外实施回来后&#xff0c;需要为数据库做数据还原&#xff0c;同步数据库测试环境&#xff0c;其实有二种方法。 第一种是把库文件全部拷过来&#xff0c;然后附加上来就可以了&#xff0c;这种方法挺简单。 第二种方法就是备…

Android 通知删除事件监听,截获通知

安卓12广播 if(this.getPackageName() !null){intent.setPackage(this.getPackageName()); } F01AMainActivity.this.sendBroadcast(intent); Intent intentCancel new Intent(getApplicationContext(),NotificationBroadcastReceiver.class); PendingIntent pendingIntentCa…

小程序设置页面背景颜色

首先&#xff0c;我使用的是mpvue开发。样式使用的less&#xff0c;并且全局会定义一套主题。 primary-color : #ff8730; second-color : #F48B4A; background-color :#F3F3F3; second-text-color :#787878;.flex-center-row {display: flex;flex-d…

【UVA 437】The Tower of Babylon(拓扑排序+DP,做法)

【Solution】 接上一篇,在处理有向无环图的最长链问题的时候,可以在做拓扑排序的同时,一边做DP; 设f[i]表示第i个方块作为最上面的最高值; f[y]max(f[y],f[x]h[y]);(x−>y)∈E 这样可以保证,按阶段进行DP,每次在获取f[x]的时候,你可以保证f[x]已经获得了; 最后取max(f[1…

Cass2008 for CAD2006 安装

1、首先安装CAD2006&#xff0c;装完破解&#xff0c;注&#xff1a;默认路径安装。 2、安装Cass2008 for cad2006,装完以后&#xff0c;打补丁1、补丁2 。注&#xff1a;默认路径安装。 3、将haitusoft 、 debug放在D盘根目录下&#xff0c;这个是公司自己开发的&#xff0c…

android Handler Message传递参数,handler子线程和主线程通讯

创建Handler private Handler handler new Handler() {Overridepublic void handleMessage(Message msg) {switch(msg.what){case 1 : String str1 msg.getData().getString("text1");//接受msg传递过来的参数String str2 msg.getData().getString("text2&…

hapi 使用 lab 和 code 进行测试

测试库有很多&#xff0c;我选了lab。 1、安装lab和code yarn add lab code2、创建test文件夹 test文件夹里面的js文件会被跑测试。比如创建index.js。 const { expect } require(code); const Lab require(lab); const lab exports.lab Lab.script();lab.test(returns t…

远程桌面无法连接服务器,启动Terminal Services 服务报1053错误

今天碰到一棘手问题&#xff0c;一上午数据库服务器都无法连接&#xff0c;远程桌面也连不上了&#xff0c;但是可以PING通。项目组的同事一直反映数据库无法连接&#xff0c;耽误工作进度&#xff0c;真急人啊。 跑到机房一看&#xff0c;机器轰轰巨响&#xff0c;进入桌面&a…

【codeforces 534D】Handshakes

【题目链接】:http://codeforces.com/contest/534/problem/D 【题意】 n个人依次进入一个房间; 进进来的人会和房间里面没有组队的人握一次手; (这里的握手只计算主动握手的那个人的握手次数); (任意时刻,任意3个人都能组队)&#xff1b; 给出每个人的握手信息; 问你n个…

lab 常用配置参数 代码片段

1、--leaks 启用内存泄漏检测&#xff0c;并在检测到时向您发出警告 2、代码片段 experiment(getting started with hapi testing,, () > {// 这种写法会跳过测试test(lab considers this test as TOOD and skips it)// 这种写法不会跳过测试test(always succeeding :), (…

android 底部表格布局TableLayout

添加依赖compile com.flyco.tablayout:FlycoTabLayout_Lib:2.1.2aar置于底部布局&#xff08;最外层必须是RelativeLayout&#xff09;<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/a…

Arcgis10安装说明

1、 先安装dotnet framework 3.5 ,必须要装这个才能运行安装程序。 2、 接着安装Arcgis Desktop &#xff0c;只需下一步&#xff0c;下一步执行就好了。完成后&#xff0c;停掉服务。 3、 安装LicenseManager &#xff0c;下一步执行就可以。 4、 接着来破解&…

前端学习(2606):vue简单叙述

第一步 引入 第二步new Vue 第三步 data绑定数据

wux-button 样式扩展 增加shape属性

1、原来的写法和界面图如下 <wux-button block type"orange">拍照确认</wux-button>2、现在的写法只需要增加一个shape"round"参数&#xff0c;可以实现按钮边框为半圆 <wux-button block type"orange" shape"round"&g…

android webView注入js方法

需要在页面加载完成之后才能注入自定义js方法 webView.setWebViewClient(new WebViewClient() {Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) { // view.loadUrl(url);return true;//true时&#xff0c;不可点击跳页效果&…

前端框架Bootstrap简单介绍

下载&#xff1a; 解压之后&#xff1a; 把这些文件拷贝到项目中 页面使用时 只需要引入&#xff1a; 然后我们就可以参考官网来设计需要的前端页面了 设计一个按钮&#xff1a;button 只需要标明css样式中使用的类 下面就是现实效果&#xff1a; 转载于:https://www.cnblo…

CASS软件学习笔记

最近需要学习数据处理&#xff0c;用到的软件是Cass6.1 软件&#xff0c;下面我将学习中的笔记进行了整理。 1、Cass 6.1 支持是CAD2004 &#xff0d;2006&#xff0c;安装的话&#xff0c;先装CAD&#xff0c;然后破解&#xff0c;再装Cass &#xff0c;然后打上补丁&#xf…

vue学习中遇到的错误 Duplicate keys detected: ‘[object Object]‘. This may cause an update error.

前端入门自学&#xff0c;说错的请大神指点。 Avoid using non-primitive value as key, use string/number value instead. Duplicate keys detected: ‘[object Object]’. This may cause an update error.运行后出现这些警告&#xff0c;意思是检测到重复的键值。 把:key里…