Rabbit Number

枚举

【问题描述】

设 S(N)表示 N 的各位数字之和,如 S(484)=4+8+4=16,S(22)=2+2=4。如果一个正整数 x满足 S(x*x)=S(x)*S(x),我们称 x 为 Rabbit Number。比方说,22 就是一个 Rabbit Number,因为 S(484)=S(22)*S(22)。

现在,给出一个区间[L,R],求在该区间内的 Rabbit Number 的个数。

【输入】

输入仅一行,为空格隔开的两个数 L 和 R。

【输出】

输出仅一行一个整数,表示所求 Rabbit Number 的个数。

【数据规模】

1≤L≤R≤10^9

【解题过程】

看到这么大的数据范围第一反应是找规律。于是先开始手工推,然后暴力跑了 10^9 内的所有 RabbitNumber,发现每一位只可能取 0,1,2,3,而数据范围最多是 9 位数(10^9 这个数字可以单独考虑),那么就无脑爆搜了,复杂度 O(4^9)。

初次提交 100 分。

 

Play with Power

动态规划

【问题描述】

Masha 和 Stas 正在玩一个游戏。在游戏的开始,给出一个定值 N,同时有两个正整数 A 和 B,初始时满足 A^B ≤N。Masha 先手。每一回合,玩家要将 A 和 B 的其中一个数加上 1,但不能令到 A^B >N,否则该玩家输。

现在,Masha 想知道假如两人都使用最优策略,对于一个特定的 N,不同的 A、B 的初始值谁将获胜呢?

【输入】

输入第一行为一个正整数 N。

输入第二行为一个正整数 T,表示测试数据个数。

下面 T 行,每行有两个正整数 Ai、Bi,描述了一组测试数据<Ai,Bi,N>,含义如题目描述。

【输出】

对每组数据输出一行。如果先手 Masha 获胜,输出"Masha";如果后手 Stas 获胜,输出 Stas;

如果平手则输出"Missing"(不用输出引号)。

【数据规模】

对 30%的数据,有 1≤N≤2000;

对 100%的数据,有1≤N≤10^8

1≤T≤100

1≤Ai,1≤Bi,Ai Bi ≤N

【解题过程】

这种题目很明显是动规嘛。

用 f(i, j) 表示当 A=i, B=j 时先手的结果,用 0,1,2 分别表示必败、必胜、平局,则 f(i, j) 可以由 f(i+1, j) 和 f(i, j+1) 转移而来,记 v1=f(i+1, j), v2=f(i, j+1),则

f(i, j)=0 当且仅当 v1=1 且 v2=1

f(i, j)=1 当且仅当 v1=0 或 v2=0

f(i, j)=2 除上所述的其他情况以及i^j>N的情况

注意:

  1. 当 i=1 时 f(i, j) 必然等于 2
  2. 判断 i^j>N 的过程中,i^j 可能会爆 long long,所以在求幂的过程中实时判断是否已经超过了 N;
  3. 对于大于 sqrt(N) 的数 i,对应的 j 只能取 1,所以可以直接根据N-i 的奇偶性判断,否则用记忆化搜索可能会爆栈。

另外,这道题的标程是错的。题目里并没有说 A, B 要小于等于 N,而标程里却加了这个限制,导致第一次提交 0 分。

 

Color the Axis

线段树

【问题描述】

在一条数轴上有 N 个点,分别是 1~N。一开始所有的点都被染成黑色。接着我们进行 M 次操作,第 i 次操作将[Li,Ri]这些点染成白色。请输出每个操作执行后剩余黑色点的个数。

【输入】

输入一行为 N 和 M。下面 M 行每行两个数 Li、Ri。

【输出】

输出 M 行,为每次操作后剩余黑色点的个数。

【数据规模】

对于 30%的数据,有 1≤N≤2000,1≤M≤2000;

对于 100%的数据,有 1≤Li≤Ri≤N≤200000,1≤M≤200000。

【解题过程】

lazy-tag

另外,照 LZW 大神的说法,比 lazy-tag 更懒的做法是,不下传标记(因为只有插入操作),操作时如果已有标记则直接返回。

初次提交 100 分。

06day1的更多相关文章

随机推荐

  1. 高性能网络编程1----accept建立连接

    转 http://taohui.org.cn/tcpperf1.html  陶辉 taohui.org.cn 回到应用层,往往只需要调用类似于accept的API就可以建立TCP连接.建立连接的流程大 ...

  2. 宏基5750G 不能用内置无线网卡上网

    宏基5750G 不能用内置无线网卡上网 具体体现在: 1.--> 搜索不到无线网络: 2.点击“打开网络和共享中心”-->没有“管理无线网络”一项.如果正常的话应该是这样的: 3.“我的电 ...

  3. HTTP/2 对 Web 性能的影响(下)

    一.前言 我们在 HTTP/2 对 Web 性能的影响(上)已经和大家分享了一些关于 Http2 的二项制帧.多用复路以及 APM 工具等,本文作为姊妹篇,主要从 http2 对 Web 性能的影响. ...

  4. 2013 ACM-ICPC长沙赛区全国邀请赛——A So Easy!

    这题在比赛的时候不知道怎么做,后来看了别人的解题报告,才知道公式sn=(a+sqrt(b))^n+(a-sqrt(b))^n; 具体推导 #include<iostream> #inclu ...

  5. .NET复习笔记

    .NET 基础知识点汇总 课前知识储备. 一.C#与.NET的区别? 1..NET/dotnet:一般指.Net Framework框架,一种平台,一种技术 2.C#(sharp):一种编程语言,可以 ...

  6. 读写txt文件

    public void SetUpdateTime(string strNewDate) { try { var path =Application.StartupPath + Configurati ...

  7. Linux Shell 数字计算与比较

    直接上脚本, 使用$(())以及$[]进行数字计算 数值比较:n1 -eq n2检查n1是否等于n2         n1 -le n2检查n1是否小于等于n2n1 -ge n2检查n1是否大于等于n ...

  8. 李洪强iOS开发支付集成之微信支付

    iOS开发支付集成之微信支付 微信支付也是需要签名的,也跟支付宝一样,可以在客户端签名,也可以在后台签名(当然,为了安全还是推荐在服务器上做签名,逻辑也比较好理解). 1 - 集成前首先要看看文档 开 ...

  9. lintcode: 爬楼梯

    题目: 爬楼梯 假设你正在爬楼梯,需要n步你才能到达顶部.但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? 样例 比如n=3,中不同的方法 返回 3 解题: 动态规划题目,同时还是有顺序 ...

  10. POJ1118 Lining Up

    快弄死我了 最后的原因是abs和fabs的区别... 说点收获:1.cmp函数返回的是int,所以不要直接返回double相减的结果2.define inf 1e9和eps 1e-93.在整数相除得到 ...