当前位置: 首页 > news >正文

2017 计蒜之道 初赛 第一场 B.阿里天池的新任务

该文被密码保护

    

  

 

 

 

          

  

 

 

 

2017 计蒜之道 初赛 第一场 B.阿里天池的新任务

  

 1 /* QYP kuai wo dai ma*/
 2 #include<algorithm>
 3 #include<iostream>
 4 #include<iomanip>
 5 #include<cstring>
 6 #include<cstdlib>
 7 #include<cstdio>
 8 #include<queue>
 9 #include<ctime>
10 #include<cmath>
11 #include<stack>
12 #include<map>
13 #include<set>
14 #define rep(i,a,b) for(register int i=a;i<=b;i++)
15 #define ll long long
16 #define re register
17 using namespace std;
18 const int N=1e6;
19 int w[N+10];
20 int n,a,b,L,R;
21 char s[N+10],t[N+10];
22 int nxt[N+10];
23 inline int gi() {
24     re int res=0;
25     char ch=getchar();
26     while(ch<'0'||ch>'9') ch=getchar();
27     while(ch>='0'&&ch<='9') res=res*10+ch-'0',ch=getchar();
28     return res;
29 }
30 void get_w() {
31     w[1]=b;
32     for(re int i=2;i<=n;i++) w[i]=(w[i-1]+a)%n;
33 }
34 void get_s() {
35     for(re int i=1;i<=n;i++) {
36         if(w[i]>=L&&w[i]<=R) {
37             if(w[i]%2==0) s[i]='A';
38             else s[i]='T';
39         }
40         else {
41             if(w[i]%2==0) s[i]='G';
42             else s[i]='C';
43         }
44     }
45 }
46 void NEXT() {
47     int len=strlen(t+1);
48     nxt[1]=0;
49     int j=0;
50     for(re int i=2;i<=len;i++) {
51         while(j&&t[j+1]!=t[i]) j=nxt[j];
52         if(t[j+1]==t[i]) nxt[i]=++j;
53     }
54 }
55 void KMP() {
56     int lens=strlen(s+1),j=0;
57     int lent=strlen(t+1);
58     int ans=0;
59     for(re int i=1;i<=lens;++i) {
60         while(j&&t[j+1]!=s[i]) j=nxt[j];
61         if(t[j+1]==s[i]) ++j;
62         if(j==lent) {ans++;j=nxt[j];}
63     }
64     cout<<ans;
65 }
66 int main() {
67     freopen("2.in","r",stdin);
68     freopen("2.out","w",stdout);
69     n=gi(),a=gi(),b=gi(),L=gi(),R=gi();
70     s[0]='@',t[0]='$';
71     scanf("%s",t+1);
72     get_w();
73     get_s();
74     NEXT();
75     KMP();
76     return 0;
77 }

 

转载于:https://www.cnblogs.com/ypz999/p/6883175.html

相关文章:

  • C# WebApi 返回JSON
  • 可执行文件的装载
  • 自己定义控件 播放GIF动画
  • WEB服务器-Nginx之虚拟主机、日志、认证及优化
  • day06 tar命令使用,vim简单操作以及linux开机过程
  • 面面观 | 使用dokcer 构建 mariadb 数据库
  • 3 个在 Linux 中永久并安全删除文件和目录的方法
  • 再会Java
  • 自动化运维工具SaltStack详细部署
  • PHP MySQL
  • 算法之选择排序算法
  • 我会采更多的雏菊
  • c语言中字符串函数的使用
  • 利用jquery编写加法运算验证码
  • 更改计算机名称,影响TFS之前映射的工作区 使用。
  • [译] 怎样写一个基础的编译器
  • 〔开发系列〕一次关于小程序开发的深度总结
  • 08.Android之View事件问题
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • javascript数组去重/查找/插入/删除
  • JSONP原理
  • Laravel Telescope:优雅的应用调试工具
  • mysql 数据库四种事务隔离级别
  • pdf文件如何在线转换为jpg图片
  • react 代码优化(一) ——事件处理
  • Vue.js 移动端适配之 vw 解决方案
  • 前端面试总结(at, md)
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 使用common-codec进行md5加密
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 用quicker-worker.js轻松跑一个大数据遍历
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 第二十章:异步和文件I/O.(二十三)
  • 我们雇佣了一只大猴子...
  • ​2020 年大前端技术趋势解读
  • #DBA杂记1
  • #每日一题合集#牛客JZ23-JZ33
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (1)虚拟机的安装与使用,linux系统安装
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (五)c52学习之旅-静态数码管
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .bat文件调用java类的main方法
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • ;号自动换行
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [ 第一章] JavaScript 简史
  • [AutoSar]状态管理(五)Dcm与BswM、EcuM的复位实现
  • [C#]C# winform部署yolov8目标检测的openvino模型
  • [C++][基础]1_变量、常量和基本类型
  • [C++]二叉搜索树
  • [cocos creator]EditBox,editing-return事件,清空输入框
  • [DP 训练] Longest Run on a Snowboard, UVa 10285
  • [EFI]MSI GF63 Thin 9SCXR电脑 Hackintosh 黑苹果efi引导文件