TZOJ--1518: 星星点点 (二进制模拟)
1518: 星星点点
描述
输入一个由“*”和“.”组成的字符串,然后根据规则生成下一行字符串:
如果该行的第i和第i+1个位置上的符号不同,则下一行的第i个位置上为“*”,否则为“.”,其最后一个位置的字符由上一行的第一个和最后一个字符决定。反复应用上述规则足够多次后,某行的字符排列可能在以后的行中再次出现,或者不会再次出现。找出最近的相同的两行之间相差的行数。
输入
上述字符串,长度2<=L<=30。
输出
相差的行数(即行号相减)。
样例输入
.*.
***.
样例输出
3
1
题目来源
ZJGSU
题目链接:tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=1518
模拟题,按照题目意思模拟,将每一个出现的字符串存入map中,判断是否出现重复的,但用字符串模拟会TLE,题目中只有两种字符,所以转换成二进制进行模拟,根据题目要求提取出转换式子y=(((y&1)<<(n-1))|(y>>1))^y;。
#include <string>
#include <cstdio>
#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);string s;map<int,int>m;while(cin>>s){int k=0,n=s.length(),y=0;for(int i=0;i<n;i++){if(s[i]=='*')y|=(1<<i);}//cout<<y<<" ";m.clear();while(1){k++;if(m[y])break;m[y]=k;y=(((y&1)<<(n-1))|(y>>1))^y;//cout<<y<<endl;}//mp[s]=k-m[s];cout<<k-m[y]<<endl;}
}
转载于:https://www.cnblogs.com/Anidlebrain/p/10028978.html
TZOJ--1518: 星星点点 (二进制模拟)相关推荐
- 1212: 核电站问题动态规划等多种方法(以及二进制模拟)
文章目录 问题 小白的代码 二进制模拟 大佬的码 思路分析 代码实现 另一份代码 分析 大佬代码又又又来了 问题 1212: 核电站问题 时间限制: 1 Sec 内存限制: 128 MB 提交: 72 ...
- TZOJ 4621 Grammar(STL模拟)
描述 Our strings only contain letters(maybe the string contains nothing). Now we define the production ...
- hdu与poj题目分类
POJ 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(po ...
- 杭电oj题目题型分类(转)
1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...
- HDOJ题目分类大全
版权声明:本文为博主原创文章,欢迎转载,转载请注明本文链接! https://blog.csdn.net/qq_38238041/article/details/78178043 杭电里面有很多题目, ...
- HDU题目分类大全【大集合】
基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056.105 ...
- 杭电OJ题目分类(转载)
1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...
- hdoj杭电问题分类
杭电上的题虽然多,但是一直苦于找不到问题分类,网页都是英文的,所以平时做题也没怎么看,今天仔细一看,问题分类竟然就在主页....做了那么久的题居然没发现,表示已经狗带..不要笑,不知道有没有像我一样傻 ...
- 转载:Hdu 题目分类
原址点击 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056. ...
最新文章
- LVM-HOWTO/学习笔记(二)
- 推荐百度地图的新功能--“三维”
- 微型激光投影廉价版本
- DevOps笔记-05:IT行业中BA、SM、PO、PM、PD、Dev、Ops、QA都是什么角色
- swift 基础学习之属性修饰符
- Device is not certified by Google
- vsftp 配置参数详解
- CAT8八类网线标准、测试与应用
- 《Redis入门指南(第 2 版)》读后感
- cmd命令行激活win7
- Bloodsucker ZOJ-3551 期望DP
- pdf文件如何在安卓手机端不用下载在线预览
- Tuxera NTFS2023免费版Mac电脑系统读写软件
- 干货 : 揭秘信息可视化图表的设计方法
- 学习OpenCV——Kalman滤波
- java 有指针吗_java中到底有没有指针(转)
- cmd命令行切换目录路径
- 四门轿跑 标致发布Exalt概念车设计图
- Python爬虫+BI分析,做一份酷炫的A股牛市可视化!
- Bumblebee之负载、限流和故障处理实践