P2030 遥控车

    • 2通过
    • 11提交
  • 题目提供者LittleZ
  • 标签二分字符串递推高精洛谷原创
  • 难度尚无评定

提交该题 讨论 题解 记录

最新讨论

  • 暂时没有讨论

题目描述

平平带着韵韵来到了游乐园,看到了n辆漂亮的遥控车,每辆车上都有一个唯一的名字name[i]。韵韵早就迫不及待地想玩名字是s的遥控车。可是韵韵毕竟还小,她想象的名字可能是一辆车名字的前缀(也就是说能确定一个i,使s是name[i]的前缀),这时她就能玩第i辆车;或者是一个无中生有的名字,即s不是任何一辆车名字的前缀,这时候她什么也不能玩。

你需要完成下面的任务:

1.韵韵想了m个她想要的名字,请告诉她能玩多少次。

2.由于管理员粗心的操作,导致每辆车的摆放位置都可能出现微小的差错,原来第i辆车现在的位置可能是i-1、i、i+1中的任意一个(第1辆车的位置不可能是0,第n辆车的位置不可能是n+1)。请你计算出共有多少种可能的排列。

注:数据保证当s是name[i]的前缀时,i是唯一确定的。一辆车可以玩多次。

输入输出格式

输入格式:

第一行是2个正整数n、m。

接下来n行,每行1个字符串name[i],表示第i辆车的名字。接下来m行,每行1个字符串s,表示韵韵想要的名字。

输出格式:

第一行输出韵韵能玩的次数。第二行输出共有多少种可能的排列。

输入输出样例

输入样例#1:

4 4
Abcd
DeF
AAa
aBccc
Ab
AA
AbC
aBcc
输出样例#1:

3
5

说明

【注意】

对于题目涉及到的字符串严格区分大小写,且长度小于255。

【数据范围】

对于20%的数据 n≤10,m≤10;

对于40%的数据 n≤1000,m≤1000;

对于100%的数据 n≤10000,m≤10000。

题解:

第一问是字符串的简单运用,第二问是n-1的高精度斐波那契数列

排序+二分答案

我们先把所有的车的名字排序(sort大法好)

因为 题目中有说 “ 数据保证当s是name[i]的前缀时,i是唯一确定的"

这句话很重要,这说明s不可能是一个以上的名字的前缀

给我们的信息是,这题使用二分答案,而不是二分出上下界(所以要很注意题目的用词)

AC代码:

#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<iostream>
using namespace std;
#define N 10010
string s[N],c[N];
int n,m,len,ans,a[N],b[N],d[N];
void jia(){
memset(d,,sizeof d);
for(int i=;i<=len;i++){
d[i]+=a[i]+b[i];
if(d[i]>){
d[i+]+=d[i]/;
d[i]%=;
}
}
while(d[len+]) len++;
for(int i=;i<=len;i++) a[i]=b[i];
for(int i=;i<=len;i++) b[i]=d[i];
}
int main(){
ios::sync_with_stdio(false);
cin>>n>>m;
a[]=;b[]=;len=;
for(int i=;i<=n;i++) cin>>s[i];
for(int i=;i<=n;i++) jia();
sort(s+,s+n+);
for(int i=;i<=m;i++){
cin>>c[i];
int pos=lower_bound(s+,s+n+,c[i])-s;
if(!s[pos].find(c[i],)) ans++;
}
cout<<ans<<endl;
for(int i=len;i;i--) cout<<d[i];
return ;
}

P2030 遥控车的更多相关文章

  1. noip推荐系列:遥控车[字符串+高精+二分答案]

    [问题描述] 平平带着韵韵来到了游乐园,看到了n辆漂亮的遥控车,每辆车上都有一个唯一的名字name[i].韵韵早就迫不及待地想玩名字是s的遥控车.可是韵韵毕竟还小,她想象的名字可能是一辆车名字的前缀( ...

  2. 用Micro:bit控制遥控车

    很多遥控车是用Arduino来控制,同样也可以用Micro:bit来控制.这篇文章我们就来做个测试. 这次需要用到扩展板,管脚比较多,请参考下图 一.材料: •micro:bit 二片 •micro: ...

  3. 让我们一起摇摆 Turnipbit体感遥控车

    相信大家对Microbit是非常熟悉的,而今天我们做的这个小玩具所用的核心板是Turnipbit,是基于 Microbit开发的一块适合儿童适用的板卡.基本使用原理是一样的,这里就不多介绍了,代码这方 ...

  4. 用SufaceGO加微软全家桶做个遥控车(一)

    作为一个dotnet技术的新手我是不好意思写帖子的,原因就是本人技术太水了,写出的帖子肯定会让人笑话.所以这次我是厚着脸皮写出这个帖子的,希望大佬们轻喷了.我的目标就是用SurfaceGo实现一个和我 ...

  5. 初试Code First(附Demo)

    写在前面 新建项目 安装EntityFramework程序包 创建模型 创建上下文DbContext 创建数据库.读/写数据 配置连接字符串 Code First 迁移 示例Demo下载 后记 以前逛 ...

  6. Windows Iot:让Raspberry Pi跑起来(1)

    首先请大家原谅我的"不务正业",放着RabbitHub不写,各种系列的文章不写搞什么Iot,哈哈,最近心血来潮想搞个速度极快的遥控车玩,望着在角落的Raspberry Pi恶狠狠的 ...

  7. [vijos1459]车展

    [vijos1459]车展 试题描述 遥控车是在是太漂亮了,韵韵的好朋友都想来参观,所以游乐园决定举办m次车展.车库里共有n辆车,从左到右依次编号为1,2,-,n,每辆车都有一个展台.刚开始每个展台都 ...

  8. Vijos P1459 车展 treap求任意区间中位数

    描述 遥控车是在是太漂亮了,韵韵的好朋友都想来参观,所以游乐园决定举办m次车展.车库里共有n辆车,从左到右依次编号为1,2,…,n,每辆车都有一个展台.刚开始每个展台都有一个唯一的高度h[i].主管已 ...

  9. javascript: detect mobile devices or browser

    http://detectmobilebrowsers.com/ http://hgoebl.github.io/mobile-detect.js/ http://www.hand-interacti ...

随机推荐

  1. 解决WCF接口无法传递object参数的问题

    在某些场合中,我们需要提供以object为参数的方法.不过在WCF中,由于需要序列化与反序列化,因此它要求所有WCF传递的参数类型都是已知的,无法传递object这种未知类型.即使用了KnownTyp ...

  2. mysql中删除已有字段的唯一性约束?

    username varchar() NOT NULL unique 如何把unique约束删除? 解决方法:在你建好的表...右击 ——索引/索引类型——把username唯一键去掉

  3. JS、CSS、Image预加载

    Image预加载 <div class="hidden"> <script type="text/javascript"> var im ...

  4. IDEA使用properties配置文件进行mysql数据路连接

    1. 新建一个web项目(过程不需要教了吧,所以就省略啦) 2. 右键点击新建的项目名,选择创建文件目录(Directory),一般properties文件夹命名应为resoures; 3.右键点击新 ...

  5. 图解C/C++多级指针与多维数组

    声明:本文转自 chenyang_yao ,欢迎阅读原文. 指针与数组是C/C++编程中非常重要的元素,同时也是较难以理解的.其中,多级指针与“多维”数组更是让很多人云里雾里,其实,只要掌握一定的方法 ...

  6. AutoEncoders原理

    目录 Auto-Encoders How to Train? Auto-Encoders How to Train?

  7. Python-基本图形绘制及库引用

    turtle库的使用 概述:turtle(海龟)库是turtle绘图体系的python实现 turtle库的理解: -有一只海龟,其实在窗体正中心,在画布上游走 -走过的轨迹形成了绘制的图形 -海龟由 ...

  8. 【状压+状态转移】A Famous Airport Managere

    https://www.bnuoj.com/v3/problem_show.php?pid=25653 [题意] 给定一个3*3的九宫格,模拟一个停机坪.第一个格子一定是'*',代表take off ...

  9. 【区间DP+好题】String painter

    https://www.bnuoj.com/v3/contest_show.php?cid=9149#problem/G [题意] 给定两个长度相同的字符串A,B.每次操作都能把A中的任意一个子段变成 ...

  10. 2018/2/16 解析Logback的AppenderBase源码,并举一反三的实现Logback扩展功能的思路,以及它的实际业务应用场景

    在学习Logback的过程中,知道了它有一个可以将日志往第三方数据源写的功能,这个功能的实现就是这个AppenderBase类,不禁想看看它的源码. 下面是AppenderBase类的所有子类(也就是 ...