暴力swap导致TLE问题解决办法

B. Pasha and String

题目很简单,就是将字符串中从某一位置到另一位置之间的片段逆序,基本思路就是利用swap两两交换。这时候题目会出现问题就是超时Time limit exceeded ,两两交换太过于耗费时间,原因在于中间有交换过去又交换回来相当于没做改变的交换浪费了时间,有没有更好的办法呢?因为颠倒的都是中间的数,所以可以统计片段中每个字母颠倒的次数,若为奇数次则交换;偶数次则不交换。还有一个地方注意,因为题目当中提示了,每次的ai小于等于二分之一倍的字符串的长度,所以统计颠倒次数的时候循环变量到达字符串长度的一半即可。因为是片段,片段中间的字符都要颠倒,所以有a[i] += a[i - 1],之前也有过类似的统计方法,应该学会。

 1 #include<iostream>
 2 #include <string>
 3 using namespace std;
 4 int a[100005];
 5 int main()
 6 {
 7     string s;
 8     cin >> s;
 9     int len = s.size();
10     int m;
11     cin >> m;
12     for (int i = 0; i < m; i++)
13     {
14         int t;
15         cin >> t;
16         a[t]++;
17     }
18     for (int i = 1; i <= len / 2; i++)
19         a[i] += a[i - 1];
20     for (int i = 0; i <= len / 2; i++)
21     if (a[i] & 1)
22         swap(s[i-1], s[len - i]);
23     cout << s << endl;
24     return 0;
25 }

  

  

时间: 2024-08-29 09:01:28

暴力swap导致TLE问题解决办法的相关文章

mysql,用存储过程插入中文导致乱码问题解决办法

DELIMITER $$ USE `u2_test10`$$ DROP PROCEDURE IF EXISTS `Pro_apply`$$ CREATE DEFINER=`root`@`%` PROCEDURE `Pro_apply`(IN aid INT,IN uid INT,IN reas CHAR(50) CHARACTER SET utf8)//char(50) 这只urf-8BEGIN DECLARE score INT; SELECT COUNT(*) INTO score FROM

带有ListView的界面无法通过手势左右滑动切换界面问题解决办法

问题描述: 在做OnGestureListener滑动切换窗口的时候,会遇到这样的问题.就是当界面中含有ListView的时候,OnGestureListener的左右触屏滑动就被ListView自己吃掉了. 问题分析: 在Android系统中,事件的分发和响应都按照一定的优先级仅仅有条的进行着.如果Activity中包含ListView那么系统的onTouchEvent事件会优先分发给ListView去处理,这时ListView的OnItemClickListener监听器会优先响应onTou

libreoffice转换文件为pdf文件乱码问题解决办法

最近系统需要一个office文件预览功能 解决方案为使用libreoffice将office文件转换为pdf文件,然后使用swftools将pdf文件转换为swf文件 最后在前台使用flexpaper浏览swf文件,即可实现预览 环境搭建完成,转换也没有问题,但是预览效果看到所有中文全部为乱码 下载转换后的pdf文件也是乱码,由此可见时libreoffice转换这一步出现了问题 服务器转换文件乱码主要是由于没有中文字体导致的,我在ubuntu desktop系统下使用libreoffice打开o

MVC几种找不到资源的问题解决办法

转自:http://www.cnblogs.com/xyang/archive/2011/11/24/2262003.html 在MVC中,controller中的Action和View中的.cshtml文件名称有一个对应的关系. 当不对应时,有以下几种情况发生: 一.找不到视图的错误 请求URL:http://localhost:13850/Customer/Create controller中有对应的Action: View中没有相应的视图 报错信息: 解决方式:在View中添加相应的Vie

Windows XP系统下添加任务计划常出现问题解决办法

Windows XP系统下添加任务计划常出现问题解决办法 计划任务就是让电脑在指定的时间内执行指定的动作(计划动作),这些动作可以是一个程序,也可以是一个批处理,但是至少是可以运行的(通俗一些就是双击可以运行的). 添加步骤:“开始”-->“设置”-->“控制面板”-->“任务计划”(或者“开始”-->“程序”-->“附件”-->“系统工具”-->“任务计划”),打开到“任务计划”窗口后,双击“添加任务计划”,然后一步一步按步骤运行.     问题一:在试着设置任

oracle Plsql 执行update或者delete时卡死问题解决办法

oracle Plsql 执行update或者delete时 遇到过Plsql卡死问题或者导致代码执行sql的时候就卡死. 在开发中遇到此问题的时候,本来把sql复制出来,在plsql中执行,Sql本身拼写无误,但是出现plsql卡死的情况, 在代码中,执行sql的地方打断点debug,发现执行sql,仍然没有响应.经过网上查资料,猜测导致这种情况的原因是 可能在PLSQL Developer执行update时没有commit,oracle将该条记录锁住了. 可以通过以下办法解决: 先查询锁定记

android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法

        Leaning_wk每一次的进步都会拉近与成功的距离! 帐号设置退出   关闭 qq_15855289的博客 目录视图 摘要视图 订阅 异步赠书:Kotlin领衔10本好书      免费直播:AI时代,机器学习如何入门?      程序员8月书讯      每周荐书:Java Web.Python极客编程(评论送书) android使用友盟实现第三方登录.分享以及微信回调无反应问题解决办法 标签: android友盟第三方登录分享微信登录回调问题 2017-02-10 16:2

centos7 初次开机问题解决办法

centos7初次开机问题解决办法

zabbix导入模版问题解决办法

当我们监控一些东西需要使用zabbix模版的时候,而模版没有怎么办?最简单的方法就是导入模版了 模版可以去https://www.zabbix.org/wiki/Zabbix_Templates/Official_Templates这里下载 而在导入的时候会报一些错误,下面给出导入vmware template报错的解决办法: 首先检查zabbix中是不是有模版对应的value map,没有的话导入的时候就报错啦. 手工创建value map: zabbix:在Administrator->ge