Fishingprince Plays With Array

传送门 Problem - 1696C - Codeforces

思路

把a和b数组不断拓展,直到不能拓展为止,记不能再拓展的数值为最小元,每个最小元对应一个ai或bi。记录每个最小元所对应的数字和对应的ai,bi之和,如果当前最小元和之前的一样,那就让ai或者bi跟之前的相加。最后比较最小元及对应和是否相等。

另一种思路就是把a不断拆分,然后合成b数组。

#include <bits/stdc++.h>
typedef long double ld;
typedef long long ll;
#define pb push_back
#define mk make_pair
#define mt make_tuple
#define eb emplace_back
#define pob pop_back
#define rz resize
#define mem(a,b) memset(a,b,sizeof(a))
#define all(a) (a).begin(),(a).end()
#define rall(a) (a).rbegin(),(a).rend()
#define debug(a) cout<<#a<<"="<<a<<endl;
#define qwe(i,a,b) for(int i=a;i<=b;i++)
#define ewq(i,a,b) for(int i=a;i>=b;i--)
inline ll rr(){ll f=1,x=0;char ch;do{ch=getchar();if(ch=='-')f=-1;}while(ch<'0'||ch>'9');do{x=x*10+ch-'0';ch=getchar();}while(ch>='0'&&ch<='9');return f*x;}
using namespace std;
const ll INF=0x3f3f3f3f,inf=0x3f3f3f3f3f3f3f;
const ll mod[2]={int(1e9 + 7), 10007};
const int base[2]={29,31};
const int maxn=2e5+6;
inline ll qpow(ll x,ll n){ll ans=1;while(n>0){if(n&1)ans=ans*x;x=x*x;n>>=1;}return ans;}int na,nb,m;
ll a[maxn],b[maxn],la,lb;
struct node {int n;ll c;
}aa[maxn],bb[maxn];
void init(/* arguments */) {la=lb=1;na=rr(),m=rr();for(int i=1;i<=na;i++) {a[i]=rr();}nb=rr();for(int i=1;i<=nb;i++) {b[i]=rr();}int n=max(na,nb)+2;for(int i=0;i<=n;i++) {aa[i].n=bb[i].n=0;aa[i].c=bb[i].c=0;}
}
int num_cnt(int k) {int w=k/m;while (w%m==0) {w/=m;}return w;
}
int main(int argc, char const *argv[]) {int t=rr();while (t--) {init();for(int i=1;i<=na;i++) {int now=a[i];if(a[i]%m==0) {now=num_cnt(a[i]);}if(now!=aa[la-1].n) {aa[la].n=now;aa[la].c+=a[i];la++;}else {aa[la-1].c+=a[i];}}for(int i=1;i<=nb;i++) {int now=b[i];if(b[i]%m==0) {now=num_cnt(b[i]);}if(now!=bb[lb-1].n) {bb[lb].n=now;bb[lb].c+=b[i];lb++;}else {bb[lb-1].c+=b[i];}}int fl=0,n=max(la,lb);for(int i=1;i<n;i++) {if(aa[i].n!=bb[i].n || aa[i].c!=bb[i].c) {fl=1;break;}}if(fl) std::cout << "No" << '\n';else std::cout << "Yes" << '\n';}return 0;
}

Fishingprince Plays With Array(思维/数学/实现)相关推荐

  1. Codeforces Global Round 21) C. Fishingprince Plays With Array

    文章目录 题意 思路 AC代码 C. Fishingprince Plays With Array 题意 题意:给我们一个含有n个元素的数组a,然后再给我们一个含有k个元素的数组b,我们可以对于任何一 ...

  2. 1696C. Fishingprince Plays With Array【思维题 + 中间状态 + 优化存储】

    分析 给一个list,里面的数如果是m的倍数可以拆成m个x // m,同样的如果遇到m个一样的x,可以缩成mx 问a能不能经过若干这两个操作变成b 思维点:a和b如果能同时扩展成c,那么必定有a - ...

  3. Codeforces Global Round 21 C. Fishingprince Plays With Array

    https://codeforces.com/contest/1696/problem/C st1=21:57, ed1=22:10 st2=22:25, ed2=null 标签 数组操作 题意 给定 ...

  4. C. Fishingprince Plays With Array

    Problem - C - Codeforces 题意就是给一个数m,有两种操作,看看能否从序列a到序列b 操作1:如果ai能整除m,那一个数ai变成m个ai/m(其他数字及其位置保持不变) 操作2: ...

  5. Codeforces1696 C. Fishingprince Plays With Array

    首先将两个数组切分到不能切分为止,然后判断是否相等,数组的表示经过了一定的压缩. rust: #[allow(unused_imports)] use std::cmp::{min,max}; use ...

  6. c语言小红今年12岁小明13岁,[转载]三年级下“创新思维数学讲义”——年龄问题...

    三年级下"创新思维数学讲义"-- 年龄问题 邵 玲 热身场 相传,乾隆皇帝下江南时,遇到了一位老寿星.老人鹤发童颜,精神焕发,乾隆皇帝当即赠一上联给老人,写的是:"花甲重 ...

  7. nowcoder_A_放羊的贝贝_思维+数学

    nowcoder_A_放羊的贝贝_思维+数学 放羊的贝贝​​​​​​​ 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO For ...

  8. 语言兔子繁衍问题讲解_二年级思维数学:位置问题,找到重复部分是解题关键...

    [思维策略] 同学们排队,以某一个人为标准来数人数,知道他左边.右边人数或从左.从右数他排第几,这类问题就是排队问题,排队问题的关键是要找出重复部分再解答. 在排队问题中,中间这一个人既不能漏掉,也不 ...

  9. 牛客网多校第9场 E Music Game 【思维+数学期望】

    题目:戳这里 题意:鼠标点击n下,第i次点击成功的概率为p[i],连续点击成功x次可以获得x^m分,求n次点击总分数的数学期望. 解题思路:数学期望的题很多都需要转化思维,求某一个单独状态对整体答案的 ...

最新文章

  1. Linux下安装Weblogic10.3.6并创建简单集群测试
  2. QT+OpenCV照片动画风格转换
  3. sap 分摊分配不产生会计凭证的原因_MM 物料凭证没有产生相应的会计凭证...
  4. JavaWeb学习中的小问题
  5. 一步步分析-C语言如何面向对象编程
  6. Win11没有操作中心怎么办 Win11没有操作中心的解决方法
  7. 韩国或将禁止苹果和谷歌向开发者抽取佣金
  8. html设计一个图片墙,html5 绘制类似墙型的背景
  9. 新版的iMessage就是iOS 10内隐形的浏览器
  10. ScaleAnimation缩放动画Demo
  11. 价值50个亿的10句话
  12. NSGA-Ⅱ算法C++实现(测试函数为ZDT1)
  13. Vue问题之 项目目录结构介绍
  14. Windows 7 登录界面背景图片定制
  15. #import msxml3.dll 导致 LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
  16. win10重置计算机网络设置,Win10网络重置后无法连接网络怎么办
  17. iPhone已停用,请连接iTunes
  18. 【生活篇】微信运动刷步,高达98000!微信运动计步作弊教程!
  19. 哪些关于硬件的事之串行与并行到底是hang还是xing
  20. 奇葩年年有,每年都很多,临近年关那些奇葩的年终奖

热门文章

  1. vue3 provide 与 inject 用法
  2. Tableau长期免费使用的方法总结(包括Tableau Public,Tableau Desktop,Tableau Pre,Tableau eLearning)
  3. 国学经典大全android,国学经典大全
  4. python + selenium + unittest 实现网站登录注册自动化测试
  5. 蚂蚁集团境外站点 Seata 实践与探索
  6. Scriptalert(“玄猫啊玄猫,玄猫要高考咯”)/script
  7. 机电一体化综合实训考核设备
  8. Ubuntu及window的配置 java变量和快捷键
  9. 局部最优点+鞍点+学习率的调节
  10. Qt中操作SQLite数据库