Codeforces 650B Image Preview(尺取法)
题目大概说手机有n张照片。通过左滑或者右滑循环切换照片,滑动需要花费a时间;看一张照片要1时间,而看过的可以马上跳过不用花时间,没看过的不能跳过;有些照片要横着看,要花b时间旋转方向。那么问T时间下最多可以看多少张相片。
先确定左滑最多能看到哪张,然后用另一个指针从第一张照片往右移动,这代表先右滑然后左滑的方式看照片,而每次向右的指针移动计算其时间,不合法的话就通过向左的指针向右移修正时间;
而先左滑然后右滑的方式同理。
模拟题,好难写。。不过写好后提交居然就1A了。。
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- using namespace std;
- char str[];
- bool vis[];
- int main(){
- int n,a,b,T;
- scanf("%d%d%d%d",&n,&a,&b,&T);
- scanf("%s",str);
- int i=,j=,ans=;
- int t=T,cnt=;
- while(j<n){
- if(str[j]=='w') t-=b;
- --t;
- if(t<) break;
- ++cnt;
- t-=a;
- ++j;
- }
- if(cnt==){
- putchar('');
- return ;
- }
- ans=max(ans,cnt);
- t=T;
- for(int k=; k<cnt; ++k){
- if(str[k]=='w') t-=b;
- --t;
- if(k!=cnt-) t-=a;
- vis[k]=;
- }
- j=cnt-;
- while(true){
- if(--i==-) i=n-;
- if(vis[i]) break;
- t-=a;
- if(str[i]=='w') t-=b;
- --t;
- t-=a;
- while(t< && j> && vis[j]){
- t+=a;
- if(str[j]=='w') t+=b;
- ++t;
- --cnt;
- vis[j]=;
- --j;
- }
- if(t<) break;
- ++cnt;
- ans=max(ans,cnt);
- }
- memset(vis,,sizeof(vis));
- i=; j=;
- t=T; cnt=;
- while(cnt<n){
- if(str[i]=='w') t-=b;
- --t;
- if(t<) break;
- ++cnt;
- t-=a;
- if(--i==-) i=n-;
- }
- ans=max(ans,cnt);
- t=T;
- for(int k=,tmp=; k<cnt; ++k){
- if(str[tmp]=='w') t-=b;
- --t;
- if(k!=cnt-) t-=a;
- vis[tmp]=;
- if(--tmp==-) tmp=n-;
- }
- if(++i==n) i=;
- while(true){
- if(++j==n) j=;
- if(vis[j]) break;
- t-=a;
- if(str[j]=='w') t-=b;
- --t;
- t-=a;
- while(t< && i && vis[i]){
- t+=a;
- if(str[i]=='w') t+=b;
- ++t;
- --cnt;
- vis[i]=;
- if(++i==n) i=;
- }
- if(t<) break;
- ++cnt;
- ans=max(ans,cnt);
- }
- printf("%d",ans);
- return ;
- }
Codeforces 650B Image Preview(尺取法)的更多相关文章
- Codeforces 958F2 Lightsabers (medium) 尺取法
题目大意: 输入n,m,分别表示人的个数和颜色的个数,下一行输入n个数,对应每个人的颜色,最后一行输入对应每个颜色的人应有的数量: 问是否能找出一个区间,满足条件但有多余的人,输出多余的人最少的个数, ...
- codeforces 650B . Image Preview 二分
题目链接 B. Image Preview time limit per test 1 second memory limit per test 256 megabytes input standar ...
- Codeforces 650B Image Preview
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
- Codeforces Educational Codeforces Round 5 D. Longest k-Good Segment 尺取法
D. Longest k-Good Segment 题目连接: http://www.codeforces.com/contest/616/problem/D Description The arra ...
- Codeforces Round #364 (Div.2) C:They Are Everywhere(双指针/尺取法)
题目链接: http://codeforces.com/contest/701/problem/C 题意: 给出一个长度为n的字符串,要我们找出最小的子字符串包含所有的不同字符. 分析: 1.尺取法, ...
- Codeforces Round #354 (Div. 2)_Vasya and String(尺取法)
题目连接:http://codeforces.com/contest/676/problem/C 题意:一串字符串,最多改变k次,求最大的相同子串 题解:很明显直接尺取法 #include<cs ...
- codeforces 814 C. An impassioned circulation of affection 【尺取法 or DP】
//yy:因为这题多组数据,DP预处理存储状态比每次尺取快多了,但是我更喜欢这个尺取的思想. 题目链接:codeforces 814 C. An impassioned circulation of ...
- Codeforces 676C Vasya and String(尺取法)
题目大概说给一个由a和b组成的字符串,最多能改变其中的k个字符,问通过改变能得到的最长连续且相同的字符串是多长. 用尺取法,改变成a和改变成b分别做一次:双指针i和j,j不停++,然后如果遇到需要改变 ...
- CodeForces 701C They Are Everywhere 尺取法
简单的尺取法…… 先找到右边界 然后在已经有了所有字母后减小左边界…… 不断优化最短区间就好了~ #include<stdio.h> #include<string.h> #d ...
随机推荐
- [Android Pro] Gradle Tips#1-tasks
reference to : http://trickyandroid.com/gradle-tip-1-tasks/ http://blog.csdn.net/lzyzsd/article/deta ...
- git安装--linux下的安装
一般linux自带git版本很旧,会有一定问题,可以先卸载系统自带git: yum remove git下载及安装git: wget https://github.com/git/git/archiv ...
- pmap
.[root@localhost security]# pmap -d : -bash Address Kbytes Mode Offset Device Mapping r-x-- : bash b ...
- Codeforces Round #371 (Div. 2)(set\unique)
B. Filya and Homework time limit per test 1 second memory limit per test 256 megabytes input standar ...
- poj 1837
题目链接:http://poj.org/problem?id=1837 题目大意: 有一个天平,左臂右臂各长15,然后给出n,m,n代表有几个挂钩,挂钩给出负数代表在左臂的距离,正数则在右臂m代表有m ...
- 三、jQuery--jQuery基础--jQuery基础课程--第12章 jQuery在线聊天室
在线聊天室案例 一.功能简介: 1.用户需要登录后才能进入聊天室交流 2.已无刷新的方式,动态展示交流后的内容和在线人员的基本信息 3.登录后的用户可以提交文字和表情图标 技术重点:利用ajax的无刷 ...
- 二、JavaScript语言--JS实践--倒计时效果
主要内容:分析不同倒计时效果的计算思路及方法,掌握日期对象Date,获取时间的方法,计算时差的方法,实现不同的倒时计效果. Javascript 日期对象: Date()返回当前的日期和时间 getY ...
- 造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:
1.监听服务没有启动 windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务. 2.数据库实例没有启动 windo ...
- php 复习
<?php 一.php基础语法1.输出语句:echo print print_r var_dump() 2.php是弱类型语言强制转换类型: (类型)变量 settype(变量,类型) 3.变量 ...
- 数据结构和算法 – 6.构建字典: DictionaryBase 类和 SortedList 类
6.1.DictionaryBase 类的基础方法和属性 大家可以把字典数据结构看成是一种计算机化的词典.要查找的词就是关键字,而词的定义就是值. DictionaryBase 类是一种用作专有字 ...