GCJ Qualification Round 2016 D题
这题就是找规律。小数据还是挺容易想的。大数据得再深入分析一下。
题意挺绕的。
其实就是字符串转换。字符串只能有两种字母,L或G。给定K和C,就能通过规则生成目标字符串。
那么,如果知道了K和C,以及目标字符串,那么是能够倒推出原字符串的。
现在问题是,目标字符串也不全给你看,限定你最多看s个。但是呢,也不要求你完全倒推出原字符串,而是只需要知道原字符串里是不是至少有一个G字符即可。
小数据极其简单,为什么呢,因为S=K,而看S个目标串字符完全可以倒推出原字符串啊。
因为原串的第1个字符,会在目标串的第1个字符;原串的第2个字符,会在目标串的第K+2个字符;原串的第3个字符,会在目标串的第2*K+3个字符……
然而,仅仅为了知道原串中是不是至少有一个G字符,必然不需要看这么多。于是继续分析。
例如,当K=5, C=2时,原串共有2^5=32种可能,相应的目标串(长度为25)也有32种,所以,我们最原始的方法,就是在这32种目标串里,每次选一个字符,以筛掉一半,最后去找那个全部为L的目标串(只有这一种才不含G字符,别的情况都含有G字符)。
然而通过将这32个目标串列出来发现,其实可以通过选择特定字符,一下子筛掉超过一半。
比如,第一次不是选1号字符,而是选择2号字符。如果2号字符为L,那么不仅说明原串的1号字符是L,而且2号字符也是L,这样一下子就能筛掉3/4的目标串。
同理,第二次选2*K+4号字符……,这样又能筛掉3/4的目标串。这样总的查看字符数量就几乎减少了一半。不管是不是最优解,但是比之前的笨方法肯定是高效了。
GCJ Qualification Round 2016 D题的更多相关文章
- GCJ Qualification Round 2016 C题
题意是给定了一个叫“jamcoin”的定义,让你生成足够数量满足条件的jamcoin. jamcoin其实就可以理解成一个二进制整数,题目要求的要么长度为16位,要么为32位,一头一尾两个位必须是1, ...
- GCJ Qualification Round 2016 B题
经典的翻饼问题,直接做:从下往上看,已翻好的饼忽略掉:从上往下,连续的已翻好的一起翻过来:整个翻过来. /* * Author : ben */ #include <cstdio> #in ...
- Facebook Hacker Cup 2014 Qualification Round 竞赛试题 Square Detector 解题报告
Facebook Hacker Cup 2014 Qualification Round比赛Square Detector题的解题报告.单击这里打开题目链接(国内访问需要那个,你懂的). 原题如下: ...
- Facebook Hacker Cup 2014 Qualification Round
2014 Qualification Round Solutions 2013年11月25日下午 1:34 ...最简单的一题又有bug...自以为是真是很厉害! 1. Square Detector ...
- [C++]Store Credit——Google Code Jam Qualification Round Africa 2010
Google Code Jam Qualification Round Africa 2010 的第一题,很简单. Problem You receive a credit C at a local ...
- DP VK Cup 2012 Qualification Round D. Palindrome pairs
题目地址:http://blog.csdn.net/shiyuankongbu/article/details/10004443 /* 题意:在i前面找回文子串,在i后面找回文子串相互配对,问有几对 ...
- Google Code Jam Africa 2010 Qualification Round Problem B. Reverse Words
Google Code Jam Africa 2010 Qualification Round Problem B. Reverse Words https://code.google.com/cod ...
- Google Code Jam Africa 2010 Qualification Round Problem A. Store Credit
Google Code Jam Qualification Round Africa 2010 Problem A. Store Credit https://code.google.com/code ...
- VK Cup 2016 - Qualification Round 2 A. Home Numbers 水题
A. Home Numbers 题目连接: http://www.codeforces.com/contest/638/problem/A Description The main street of ...
随机推荐
- webconfig连接串的使用与用代码写连接串的使用
原文发布时间为:2008-07-25 -- 来源于本人的百度文章 [由搬家工具导入] 1、使用web.config中设置连接串 在web.config中<configuration>... ...
- yii使用bootstrap分页样式
Bootstrap是Twitter推出的一个开源的用于前端开发的工具包.它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架.Bootstra ...
- windows命令行更改IP地址
修改IP地址时,提示出现一个意外情况 netsh interface ip set address "以太网" static 192.168.3.151 255.255.255.0 ...
- 洛谷—— P1561 [USACO12JAN]爬山Mountain Climbing
https://daniu.luogu.org/problemnew/show/P1561 题目描述 Farmer John has discovered that his cows produce ...
- 笔记-迎难而上之Java基础进阶5
Lambda表达式无参数无返回值的练习 //定义一个接口 public interface Cook{ public abstract void makeFood(); } public class ...
- Leetcode 数组问题3:旋转数组
问题描述: 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. 示例 : 输入A数组: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释 ...
- Maven修改默认中央仓库
其实Maven的默认仓库是可以修改的.比如使用阿里云的镜像地址等. 修改步骤: 1.打开{M2_HOME}/conf/settings.xml文件,找到mirrors节点,修改如下代码: <mi ...
- NMM3DViewer 设计
在FrameworkInterfaces工程的INMM3DServer.cs中定义了 岩石材料结构 BlockMaterial -----> StrBLOCKProperty publ ...
- 微服务指南走北(三):Restful API 设计简述
API的定义取决于选择的IPC通信方式,假设是消息机制(如 AMQP 或者 STOMP).API则由消息频道(channel)和消息类型.假设是使用HTTP机制,则是基于请求/响应(调用http的ur ...
- java数据库连接池简单实现
package cn.lmj.utils; import java.io.PrintWriter; import java.lang.reflect.InvocationHandler; import ...