题意:给你n个照片,从第一个照片开始看,如果一张照片是'w',那么要花费b时间去反转他,否则不用反转,看一张从来没看过的照片要1时间, 从一张滑动到另一张要a时间。如果一张照片看过,则不用再反转,也不用再傻1s。求在不超过T时间的前提下最多能看多少张。

思路:首先模拟这个选着过程,这里引入两个指针,lr代表从起点开始从右遍历,ll代表从后遍历到最后一个符合条件的位置,ll到lr之间串如果符合题意则求ans。

注意ll和lr之间一定不超过n。

 1 #include <iostream>
 2 #include <string.h>
 3 #include <stdio.h>
 4 #include <algorithm>
 5 #include <cmath>
 6 #include <cstdlib>
 7 using namespace std;
 8 const double pi=acos(-1);
 9 const int maxn=500010;
10 char str[maxn];
11 int s[2*maxn];//二倍空间:0到n-1是往后遍历,n到2*n-1是往前遍历
12
13 int main() {
14     int n,a,b,t;
15     while(~scanf("%d%d%d%d",&n,&a,&b,&t)) {
16         scanf("%s",str);
17         int sum=0;
18         for(int i=0; i<n; i++) {
19             if(str[i]=='w')
20                 s[i]=s[i+n]=b+1;
21             else
22                 s[i]=s[i+n]=1;
23             sum+=s[i];
24         }
25         sum-=s[0];
26         int ll=1,lr=n;
27         int ans=0;
28         while(ll<=n&&lr<2*n) {
29             sum+=s[lr++];
30             while(lr-ll>n||sum+(lr-ll-1+min(lr-n-1,n-ll))*a>t) {
31                 sum-=s[ll++];
32             }
33             ans=max(ans,lr-ll);
34         }
35         cout<<ans<<endl;
36     }
37     return 0;
38 }

View Code

转载于:https://www.cnblogs.com/ITUPC/p/5337529.html

codeforces 650B - Image Preview相关推荐

  1. Codeforces 650B 二分

    题目:http://codeforces.com/problemset/problem/650/B 题意: :给n张图片循环可看,每张图片的朝向为横(w)|竖(v),但是手机是竖直放置的.开始时打开的 ...

  2. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  3. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  4. 【codeforces 812C】Sagheer and Nubian Market

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

  5. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

  6. codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...

    题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...

  7. CodeForces 595A

    题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...

  8. codeforces A. Jeff and Digits 解题报告

    题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...

  9. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

最新文章

  1. 阿里问题定位神器 Arthas 的骚操作,定位线上BUG,超给力
  2. python映射类型-Python中字典映射类型的学习教程
  3. lnmp 60秒的服务器缓存时间
  4. android 按下缩小效果松开恢复_iPhone XS/XS Max如何强制重启?如何进入恢复模式或DFU模式?...
  5. ckeditor java 上传_java使用CKEditor实现图片上传功能
  6. 图片压缩软件_简单易用的图片压缩软件gt;给图片减肥
  7. [Vue.js]实战 -- 电商项目(三)
  8. 超越java jb51_.net mvc超过了最大请求长度的解决方法
  9. 白板机器学习笔记 P3-P8 高斯分布
  10. 知道吗?9个搜索引擎优化(SEO)最佳实践
  11. 简洁高效的原型图设计工具Mockplus
  12. android smb同步,SMBsync安卓下最好的同步备份工具
  13. 博士申请 | 澳门科技大学李楠楠老师组招收2022秋季入学全奖博士生
  14. 网站关键词密度定义,关键词密度对网站优化有什么关系!
  15. 微信公众号系列之测试号使用
  16. 实现图片验证码与手机短信验证码
  17. 带领大家进入win+r(运行)
  18. 网络计算机应急处理,国家计算机网络应急技术处理协调中心-计算机网络安全应急处理.ppt...
  19. M1的MacBook Air性能评测
  20. ResNet :( residual 、residual bottleneck)

热门文章

  1. 浙南联合训练赛20180414
  2. Windows系统下oracle数据库每天定时备份
  3. 安全市场五巨头将面临新兴厂商的挑战
  4. [转载]CentOS6nbsp;快速搭建轻量级远程桌面nbsp;Xfcenb
  5. java编程笔记18 文件压缩与解压缩
  6. 用PHP忙了一晚上写的图片缩略和图片等比缩放函数
  7. I2C总线之(三)---以C语言理解IIC
  8. Alsa驱动分析(转)
  9. 编写Arduino支持的C++类库
  10. 学习笔记(21):Python网络编程并发编程-队列的使用