1.字符串

题目描述 
小N现在有一个字符串S。他把这这个字符串的所有子串都挑了出来。一个S的子串T是合法的,当且仅当T中包含了所有的小写字母。小N希望知道所有的合法的S的子串中,长度最短是多少。
输入描述:
一行一个字符串S。只包含小写字母。S的长度不超过106.
输出描述:
一行一个数字,代表最短长度。数据保证存在一个合法的S的子串。
示例1
输入
ykjygvedtysvyymzfizzwkjamefxjnrnphqwnfhrnbhwjhqcgqnplodeestu
输出
49

思路:外层循环完整遍历字符数组,用一个int型数组记录出现字符次数,并记录字符数,用while寻找26个字符,字符数等于26后不断更新最短的长度;

#include <iostream>
#include <string.h>using namespace std;
char a[1000010];
int c[27];
int main()
{cin>>a;memset(c,0,sizeof(c));int le=1000010,count=0;int n=strlen(a);for(int i=1,j=1;i<=n;i++){if(c[a[i]-'a']==0){count++;}c[a[i]-'a']++;while(c[a[j]-'a']>1){c[a[j]-'a']--;j++;}if(count==26){le=min(le,i-j+1);}}cout<<le;return 0;
}

2.丢手绢

题目描述 
“丢~丢~丢手绢,轻轻地放在小朋友的后面,大家不要告诉她,快点快点抓住她,快点快点抓住她。”
牛客幼儿园的小朋友们围成了一个圆圈准备玩丢手绢的游戏,但是小朋友们太小了,不能围成一个均匀的圆圈,即每个小朋友的间隔可能会不一致。为了大家能够愉快的玩耍,我们需要知道离得最远的两个小朋友离得有多远(如果太远的话牛老师就要来帮忙调整队形啦!)。
因为是玩丢手绢,所以小朋友只能沿着圆圈外围跑,所以我们定义两个小朋友的距离为沿着圆圈顺时针走或者逆时针走的最近距离。
输入描述:
第一行一个整数N,表示有N个小朋友玩丢手绢的游戏。
接下来的第2到第n行,第i行有一个整数,表示第i-1个小朋友顺时针到第i个小朋友的距离。
最后一行是第N个小朋友顺时针到第一个小朋友的距离。
输出描述:
输出一个整数,为离得最远的两个小朋友的距离。
示例1
输入
3
1
2
3
输出
3
备注:
2 \leq N \leq 1000002≤N≤100000
距离和(圆圈周长)小于等于2147483647

思路:在存数据时计算出总长度,循环时当累计值>=总长度的一半时,比较前一半和后一半,取最小作为路径,再比较路径取出最大值;

#include <iostream>using namespace std;
int a[100010];
int main()
{int n,sum=0;cin>>n;for(int i=0;i<n;i++){cin>>a[i];sum+=a[i];}int s=0,le=0;for(int l=0,j=0;l<n;l++){while(s*2<sum){s+=a[j++%n];}if(s*2>=sum)le=max(le,min(s,sum-s));s-=a[l];}cout <<le<< endl;return 0;
}

3.[SCOI2005]扫雷MINE

题目描述 
相信大家都玩过扫雷的游戏。那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来。
万圣节到了 ,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷,那么它里面的数字 表示和它8连通的格子里面雷的数目。
现在棋盘是n×2的,第一列里面某些格子是雷,而第二列没有雷,如下图: 由于第一列的雷可能有多种方案满足第二列的数的限制,你的任务即根据第二列的信息确定第一列雷有多少种摆放方案。
输入描述:
第一行为N,第二行有N个数,依次为第二列的格子中的数。(1 ≤ N ≤ 10000)
输出描述:
一个数,即第一列中雷的摆放方案数。
示例1
输入
2
1 1
输出
2

思路:只要控制第一个的雷的情况就可以推出后面雷的情况,通过递推可以得出雷数

b[i]=a[i-1]-b[i-1]-b[i-2];最后控制特例i==n时a[i]==b[i-1]+b[i];

#include <iostream>using namespace std;
int a[10009],b[10009];int main()
{int n;cin>>n;for(int i=1; i<=n; i++){cin>>a[i];}int count=0;for(b[1]=0; b[1]<=1; b[1]++){int f=0;for(int i=2; i<=n; i++){b[i]=a[i-1]-b[i-1]-b[i-2];if(b[i]!=0&&b[i]!=1){f++;break;}if(i==n&&a[i]!=b[i]+b[i-1])f++;}if(f==0)count++;}cout << count << endl;return 0;
}

暑假每日算法学习打卡(八)----字符串,丢手绢,[SCOI2005]扫雷MINE(尺取法)【牛客】相关推荐

  1. 暑假每日算法学习打卡(十)----[HNOI2003]激光炸弹,「土」秘法地震(二维前缀和),Captcha Cracker【牛客】

    [HNOI2003]激光炸弹 题目描述  一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标. 现在地图上有n(N ≤ 10000)个目标,用整数Xi,Yi(其值在[0,5000])表示目 ...

  2. 每日算法刷题Day7-比较字符串大小,去掉多余的空格,单词替换

    ⭐每日算法题解系列文章旨在精选重点与易错的算法题,总结常见的算法思路与可能出现的错误,与笔者另一系列文章有所区别,并不是以知识点的形式提升算法能力,而是以实战习题的形式理解算法,使用算法.

  3. 图解算法学习笔记(八):贪婪算法

    目录 (1)背包问题 (2)集合覆盖问题 (3)NP完全问题 (4)小结 本章内容: 学习如何处理没有快速算法的问题(NP完全问题). 学习近似算法,使用它们找到NP问题的近似解. 学习贪婪策略. ( ...

  4. 21天挑战赛算法学习打卡——顺序查找

    ✅作者简介:C/C++领域新星创作者,为C++和java奋斗中 ✨个人社区:微凉秋意社区

  5. c语言socket面试题,【C++工程师面试宝典】学习说明_互联网校招面试真题面经汇总_牛客网...

    ● 请你讲述一下互斥锁(mutex)机制,以及互斥锁和读写锁的区别 参考回答: 1.互斥锁和读写锁区别: 互斥锁:mutex,用于保证在任何时刻,都只能有一个线程访问该对象.当获取锁操作失败时,线程会 ...

  6. java工程师面试宝典_【Java工程师面试宝典】学习说明_互联网校招面试真题面经汇总_牛客网...

    ● 请你讲讲Java里面的final关键字是怎么用的? 考察点:关键字 参考回答: 当用final修饰一个类时,表明这个类不能被继承.也就是说,如果一个类你永远不会让他被继承,就可以用final进行修 ...

  7. 计算机专业考研复试上机算法学习

    计算机专业考研复试上机算法学习 这篇博客是博主在准备可能到来的线下上机复试基于王道机试指南的学习,将各道习题链接和代码记录下来,这篇博客权且当个记录. 文章目录 计算机专业考研复试上机算法学习 1.S ...

  8. 计算机考研复试上机算法学习

    计算机考研复试上机算法学习 这篇博客是博主在准备可能到来的线下上机复试基于王道机试指南的学习,将各道习题链接和代码记录下来,这篇博客权且当个记录. 文章目录 计算机考研复试上机算法学习 1.STL容器 ...

  9. 牛客网算法教程-中级篇-第一章

    文章目录 学习目标: 学习内容: 学习时间: 学习产出: 1.旋转词-模拟 2.旋转矩阵-模拟 3.数轴覆盖-贪心 4.1 完整字符串1(括号字符串的有效性)-栈 4.2 完整字符串2(缺失的括号)- ...

最新文章

  1. C++ 笔记(24)— STL map 类(map实例化、插入、查找、删除)
  2. Linux-非结构化数据同步-Linux下Rsync+Rsync实现非结构化增量差异数据的同步2
  3. 图标尺寸规范_作为刚入门的UI设计师,你需要懂哪些设计规范?
  4. HDU3496-Watch The Movie
  5. mqtt调试助手_物联网入门,如何使用MQTT协议,连接Tlink物联网平台
  6. 20165230 2017-2018-2 《Java程序设计》第9周学习总结
  7. 这是一个沙雕题III(坑题)
  8. Cocos Creator 获取当前URL取参数
  9. WinForm------GridControl合并单元格
  10. java获取字符串长度_Java length()方法:获取字符串的长度
  11. conda 设置清华镜像源_conda使用清华镜像源问题
  12. 上古卷轴5json文件修改_改进名称的新Tempering名称定制SSE
  13. Koalas - 入门基本操作
  14. c语言编写计算机软件,基于C语言的计算机软件编程分析.doc
  15. 【记录】那些很实用的Nginx规则
  16. WIN10打印机显示服务器脱机,win10网络打印机显示脱机处理方法
  17. Linux 下安装java环境
  18. java毕业设计家庭理财管理系统mybatis+源码+调试部署+系统+数据库+lw
  19. java访问win10共享盘失败_win10系统共享文件访问不了怎么办,提示:没有权限使用网络资源...
  20. 以源码运行nacos2.0.3报错

热门文章

  1. xshell与vim命令合集
  2. 怎么在html中加入js,在HTML中怎么引用js?
  3. bzoj3609 [Heoi2014]人人尽说江南好 博弈
  4. 小程序之wxcharts(图表)
  5. foreach 里面使用bcmul或者直接运算符出现结果不正常,触发情景未知,有大佬知道请请留意告知
  6. jquery选择器和遍历总结
  7. 【计算机毕业设计】基于JSP的房产中介系统的设计与实现
  8. 纯java视频转图片,对图片换脸,再次图片合成视频,java视频换脸
  9. word 行 底色 底纹
  10. 《二代妖精之今生有幸》到底谁才是真正的男主啊?