首页 > 其他分享 >学习随笔——codeforces题目Plus and Multiply解答

学习随笔——codeforces题目Plus and Multiply解答

时间:2022-08-29 20:45:05浏览次数:50  
标签:题目 ll codeforces 如下 集合 Plus Multiply

摘要:构造算法与数论的结合,巧妙之处在于我们要自己模拟一遍计算过程然后从中找出特殊点。

题目原地址如下:https://codeforces.com/problemset/problem/1542/B

题目截图如下:

 

 关键词:构造算法,数论,*1500

简要翻译:一个无穷集合中的元素由如下规则生成:x=m*a或者x=m+b,其中a,b给定,m为集合元素。在生成初期,集合中包含1。现给定数k,要我们求出k是否在这个无穷集合内。

考察上述运算过程,我们可以知道,因为1的存在,上述生成过程一定存在一个分量为未乘b的量,只需按幂次依次遍历判断即可。

特别注意,当a=1时会出现死循环,需要特判。

代码如下:

 1 #include <iostream>
 2 #define ll long long
 3 using namespace std;
 4 ll a,b,n,l;
 5 void solve(ll a,ll b,ll n){
 6     if (a==1){//特判情况 
 7         if ((n-1)%b==0){
 8             cout<<"YES"<<endl;
 9             return ;
10         }
11         else{
12             cout<<"NO"<<endl;
13             return ;
14         }
15     }
16     if ((n-1)%b==0){
17         cout<<"YES"<<endl;
18         return ;
19     }
20     ll a1=a;
21     while (a1<=n){
22         if ((n-a1)%b==0){
23             cout<<"YES"<<endl;
24             return ;
25         }
26         a1*=a;
27     }
28     if (a1>n){
29         cout<<"NO"<<endl;
30         return ;
31     }
32 }
33 int main(){
34     cin>>l;
35     while(l--){
36         cin>>n>>a>>b;
37         solve(a,b,n);
38     }
39     return 0;
40 }

 

标签:题目,ll,codeforces,如下,集合,Plus,Multiply
From: https://www.cnblogs.com/johnsonstar/p/16637304.html

相关文章

  • 学习随笔——codeforces题目Color the Picture解答
    摘要:构造类题目题目原地址如下:https://codeforces.com/problemset/problem/1710/A题目截图如下:  关键词:构造算法,递归,*1500简要翻译:给予k种颜料,第i种颜料可以涂满a......
  • Educational Codeforces Round 134 (Rated for Div. 2)
    比赛链接:https://codeforces.com/contest/1721D.MaximumAND题意:给定两个序列\(a\)和\(b\),可以调整\(b\)中元素的位置,得到序列\(c\),满足\(c_i=a_i\)xor\(b......
  • Codeforces Round #287 (Div. 2) B. Amr and Pins(数学/思维)
    https://codeforces.com/contest/507/problem/B题目大意:Amr有一个半径为r、圆心在点(x,y)的圆。他希望圆心在新的位置(x',y')。在一个步骤中,Amr可以将一个大头针放在......
  • Mybatis-Plus使用@TableField实现自动填充日期
    一、前言我们在日常开发中经常使用ORM框架,比如Mybatis、tk.Mybatis、Mybatis-Plus。不过最广泛的还是Mybatis-Plus,我们的一些表,都会有创建时间、更新时间、创建人、更新人......
  • mybatis-plus专题学习
    1、优化规范【推荐】实体类需要实现Serializable接口一旦实现了Seriazlizable接口,就意味着该对象可以通过序列化/反序列化的方式在网络上传输通讯,该接口只是一个标志接口......
  • Educational Codeforces Round 134 E - Prefix Function Queries补题
    原题链接参考了jly的写法#pragmaGCCoptimize(2)#include<bits/stdc++.h>usingnamespacestd;#definefrfirst#definesesecond#defineet0exit(0);#define......
  • Educational Codeforces Round 125 D
    D.ForGamers.ByGamers.最近又生病了然后就休息了两天人还真是休息不得直接寄掉了不管是手速还是思维啥的看到这道题很简单的一个变形都没看出来只看出了二分......
  • HTML5PLUS实现类似右侧弹出菜单
    一、实现效果使用【plus.webview】对象实现右侧弹出菜单栏:点击菜单图标弹出菜单列表,点击页面其它地方或点击【关闭菜单】收缩菜单。 二、源码index.html:<!DOCTYPE......
  • Educational Codeforces Round 134 (Rated for Div. 2) A-C
    2A,C题wa2不知道为什么。B题少判一个条件:左上角A:题意有点不懂,到最后才知道是有多少种数,就输出这个种数-1即可intn,m;voidsolve(){//cin>>n>>m;chars[......
  • Educational Codeforces Round 134 (Rated for Div. 2)
    EducationalCodeforcesRound134(RatedforDiv.2)D.MaximumAND题目大意给出序列a,b,b可以任意排列,序列c有\(c_i=a_i\bigoplusb_i\)。c序列的价值为c1&c2&c33...&......