【分类讨论】【set】Codeforces Round #407 (Div. 2) B. Masha and geometric depression
2024-08-26 11:55:45
模拟一下那个过程,直到绝对值超过l,或者出现循环为止。
如果结束之后,绝对值是超过l的,就输出当前写在黑板上的数量。
如果出现循环,则如果写在黑板上的数量非零,则输出inf(注意!如果陷入的循环是一个全部被禁止的循环,但是黑板上有输出的值,则还是应该输出黑板上的值的数量。这种情况用循环再向后扫几项判一下即可。),否则输出0。
用三个set处理。
#include<cstdio>
#include<set>
using namespace std;
typedef long long ll;
ll Abs(ll x){
return x<0 ? (-x) : x;
}
int b1,q,l,m,a[100100];
set<int>S,S2,S3;
int main(){
// freopen("b.in","r",stdin);
scanf("%d%d%d%d",&b1,&q,&l,&m);
for(int i=1;i<=m;++i){
scanf("%d",&a[i]);
S.insert(a[i]);
}
ll b=b1;
while(1){
if(Abs(b)>(ll)l || S2.find(b)!=S2.end()){
break;
}
S2.insert(b);
if(S.find(b)==S.end()){
S3.insert(b);
}
b*=(ll)q;
}
if(Abs(b)<=(ll)l){
if(S3.size()){
bool flag=0;
for(int i=1;i<=100000;++i){
b*=(ll)q;
if(S.find(b)==S.end()){
flag=1;
break;
}
S3.erase((int)b);
}
if(flag){
puts("inf");
}
else{
printf("%d\n",S3.size());
}
}
else{
puts("0");
}
}
else{
printf("%d\n",S3.size());
}
return 0;
}
最新文章
- C# 对象实例化 用json保存 泛型类 可以很方便的保存程序设置
- 模拟搭建Web项目的真实运行环境(六)
- [Azure附录]1.在Windows Server 2012中安装Active Directory域服务
- JS的跨域问题
- awk除去重复行
- 如何用 React Native 创建一个iOS APP?(三)
- QT 设置SizePolicy的例子(简单明了)
- 新概念英语(1-101)A Card From Jimmy
- PLSQL DEVELOPER编辑器的自动替换文件
- grub.conf解析
- 【Codeforces 204E】Little Elephant and Strings
- DataGridView控件-[引用]
- 另开一篇 https
- 在testbench从文件读入激励
- 高性能Web服务之lnmp架构应用
- 根据百度API获得经纬度,然后根据经纬度在获得城市信息
- Find Min In Rotated Sorted Array,寻找反转序列中最小的元素。
- Manacher算法(马拉车)
- linux---mysql忘记密码
- Locust学习总结分享