【codeforces 789B】Masha and geometric depression
【题目链接】:http://codeforces.com/contest/789/problem/B
【题意】
让你一个一个地写出等比数列的每一项
(注意是一个一个地写出);
有m个数字不能写;
且数字大于l的不写(大于l了就停止不再继续写)
【题解】
特判b1=0,q=0,q=1,q=-1的情况就好;
有个很坑的地方就是,如果b1>l了,那么b2..bn就不能再计算了,因为在b1处就已经停止了;->在q=0的时候要先判断b1是不是大于l,是大于l就不用再考虑后面的0了.
具体的看代码吧.
【完整代码】
#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define rei(x) scanf("%d",&x)
#define rel(x) scanf("%lld",&x)
#define ref(x) scanf("%lf",&x)
typedef pair<int, int> pii;
typedef pair<LL, LL> pll;
const int dx[9] = { 0,1,-1,0,0,-1,-1,1,1 };
const int dy[9] = { 0,0,0,-1,1,-1,1,-1,1 };
const double pi = acos(-1.0);
const int N = 110;
LL b1, q, l, m, ans = 0;
map <int, int> dic;
void in()
{
rel(b1), rel(q), rel(l), rel(m);
rep1(i, 1, m)
{
int x;
rei(x);
dic[x] = 1;
}
}
void out()
{
exit(0);
}
void special()
{
if (b1 == 0)
{
if (dic[0])
puts("0");
else
puts("inf");
out();
}
if (q == 0)//b1!=0
{
int ju1 = dic[b1], ju2 = dic[0];
if (abs(b1) > l)//如果第一个数字就是大于l的,后面的0不能算
{
puts("0");
out();
}
if (ju2 == 0)
{
puts("inf");
}
else//不能写0
{
if (abs(b1) <= l)//第一个数字在l范围内
{
if (ju1 == 0)
puts("1");
else
puts("0");
}
else//不在l范围内,第一个数字也不能写
{
puts("0");
}
}
out();
}
if (q == 1)
{
//b1已经确定不会为0了
if (abs(b1) <= l)
{
if (dic[b1])
{
puts("0");
}
else
puts("inf");
}
else//不在l范围内,直接不能输出
puts("0");
out();
}
if (q == -1)
{
//b1 和 -b1交替出现
//b1确定不会为0了
if (abs(b1) <= l)
{
if (dic[b1] && dic[-b1])
{
puts("0");
}
else
puts("inf");
}
else
puts("0");
out();
}
}
void get_ans()
{
LL temp = b1;
while (abs(temp) <= l)
{
if (!dic[temp])
{
ans++;
}
temp = temp*q;
}
}
void o()
{
cout << ans << endl;
}
int main()
{
//freopen("F:\\rush.txt", "r", stdin);
in();//checked
special();//checked
get_ans();//checked
o();
//printf("\n%.2lf sec \n", (double)clock() / CLOCKS_PER_SEC);
return 0;
}
【codeforces 789B】Masha and geometric depression的更多相关文章
- 【cf789B】Masha and geometric depression(分类讨论/暴力)
B. Masha and geometric depression 题意 在黑板上写数列,首项是b,公比是q,超过l时就停止不写.给定m个数,遇到后跳过不写.问一共写多少个数,如果无穷个输出inf. ...
- CodeForces - 789B B. Masha and geometric depression---(水坑 分类讨论)
CodeForces - 789B 当时题意理解的有点偏差,一直wa在了14组.是q等于0的时候,b1的绝对值大于l的时候,当b1的绝对值大于l的时候就应该直接终端掉,不应该管后面的0的. 题意告诉你 ...
- CF789B. Masha and geometric depression
/* CF789B. Masha and geometric depression http://codeforces.com/contest/789/problem/B 水题 各种特判,贼烦 */ ...
- 【codeforces 415D】Mashmokh and ACM(普通dp)
[codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...
- codeforces 789 B. Masha and geometric
链接 B. Masha and geometric depression 题意 给你一个等比数列的首项和公比q,然后给出一个上限l,m个数字,在这个等比数列里,小于l且没有在m个数字里面出现过的可以写 ...
- 【codeforces 707E】Garlands
[题目链接]:http://codeforces.com/contest/707/problem/E [题意] 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q ...
- 【codeforces 707C】Pythagorean Triples
[题目链接]:http://codeforces.com/contest/707/problem/C [题意] 给你一个数字n; 问你这个数字是不是某个三角形的一条边; 如果是让你输出另外两条边的大小 ...
- 【codeforces 709D】Recover the String
[题目链接]:http://codeforces.com/problemset/problem/709/D [题意] 给你一个序列; 给出01子列和10子列和00子列以及11子列的个数; 然后让你输出 ...
- 【codeforces 709B】Checkpoints
[题目链接]:http://codeforces.com/contest/709/problem/B [题意] 让你从起点开始走过n-1个点(至少n-1个) 问你最少走多远; [题解] 肯定不多走啊; ...
随机推荐
- python之高阶函数--map()和reduce()
以下为学习笔记:来自廖雪峰的官方网站 1.高阶函数:简单来说是一个函数里面嵌入另一个函数 2.python内建的了map()和reduce()函数 map()函数接收两参数,一个是函数,一个是Iter ...
- 分析ajax请求过程以及请求方法
ajax 的全称是Asynchronous JavaScript and XML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用的同步的方式.据小编翻墙了解到,ajax很早 ...
- 洛谷 P3950 部落冲突 树链剖分
目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例1 输出样例1 输入样例2 输出样例2 输入样例3 输出样例3 说明 思路 AC代码 总结 题面 题目链接 P3 ...
- Leetcode929.Unique Email Addresses独特的电子邮件地址
每封电子邮件都由一个本地名称和一个域名组成,以 @ 符号分隔. 例如,在 alice@leetcode.com中, alice 是本地名称,而 leetcode.com 是域名. 除了小写字母,这些电 ...
- AnalyticDB for MySQL 3.0 技术架构解析
企业数据需求不断变化,近年来变化趋势日益明显,从数据的3V特性看:体积,速度和变化:Big Data强调数据量,PB级以上,是静态数据.而Fast Data在数据量的基础上,意味着速度和和变化,意味着 ...
- Java安全——密钥那些事
标签(空格分隔): Java 安全 概念 密钥是加密算法不可缺少的部分.密钥在安全体系中至关重要,正如其名,私密的钥匙,打开安全的大门.密钥分两种:对称密钥和非对称密钥.非对称密钥里又包含公开密钥和私 ...
- "NetworkError: 404 Not Found fontawesome-webfont.woff?v=4.0.3
This worked for me: Add the following lines to your web.config <system.webServer> <staticCo ...
- JDBC操作数据库实例
jdbc操作数据库实例 1.jdbc创建数据库 1.1 前提条件 1.拥有创建和删除表的权限 2.数据库已经启动,且可用 1.2 jdbc创建数据库表的步骤: 导包:导入需要进行数据库编程的 JDBC ...
- HDU 4193
本题思路:用sum[]数组维护前缀和, 当然这里需要把原数组扩大为原来的两倍. 然后对于任意一个长度为n的区间 k.....k+n-1,如果有该区间内的最小值大于等于sum[k-1]那么该种情况就符合 ...
- pytorch 多GPU训练总结(DataParallel的使用)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/weixin_40087578/artic ...