Problem - C - Codeforces

题意就是给一个数m,有两种操作,看看能否从序列a到序列b

操作1:如果ai能整除m,那一个数ai变成m个ai/m(其他数字及其位置保持不变)

操作2:如果有m个数字相同,可以把这m个变成ai*m(m个变成这一个)

这题的思路很好想,直接划成一样的不现实,直接实现操作2不现实,而且小的数是可以合并成大的数的,所以在ab操作的时候,把数都分解,分解到最小(相当于把要变成的数字固定住了,不然可能会存在ab大小不一的情况,很麻烦,直接化成最小)

但是可以看一眼数据范围很大,我一个队友直接化然后溢出了(小声嘀咕~不是说他QAQ),这里的优化其实我也是没想到的,用区间来优化,就是每一段的数放到一个区间里面,一个数字占多少,就是把这一段数缩小成一个,个数另外算,然后在区间的基础上比较a和b,如果相等就yes,不行就no

#include<iostream>
#include<vector>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> PAII;
int main(){int T;cin>>T;while(T--){vector<PAII> a,b;int n,m;cin>>n>>m;for(int i=1;i<=n;i++){ll x;cin>>x;ll cnt=1;while(x%m==0){cnt*=m;x/=m;}if(a.empty()||a.back().first!=x) a.push_back({x,cnt});//添加一个区间else  a.back().second+=cnt;}int k;cin>>k;for(int i=1;i<=k;i++){int x;cin>>x;ll cnt=1;while(x%m==0){cnt*=m;x/=m;}if(b.empty()||b.back().first!=x) b.push_back({x,cnt});//添加一个区间else  b.back().second+=cnt;}if(a==b) cout<<"Yes"<<"\n";else cout<<"No"<<"\n";}return 0;
}

多积累一点优化,像这种题,如果一段都是一样的,还存它干啥,浪费空间呐,直接存二维的。一维存数字,二维存个数,然后,两者一起比较

C. Fishingprince Plays With Array相关推荐

  1. Fishingprince Plays With Array(思维/数学/实现)

    Fishingprince Plays With Array 传送门 Problem - 1696C - Codeforces 思路 把a和b数组不断拓展,直到不能拓展为止,记不能再拓展的数值为最小元 ...

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

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

  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. 1696C. Fishingprince Plays With Array【思维题 + 中间状态 + 优化存储】

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

  5. Codeforces1696 C. Fishingprince Plays With Array

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

  6. 老男孩上海校区Python面试题

    python面试题 第一章:python基础 数据类型: 1 字典: 1.1 现有字典 dict={'a':24,'g':52,'i':12,'k':33}请按字典中的 value 值进行排序? 1. ...

  7. php recordarray,Array 数组 - [ php中文手册 ] - 在线原生手册 - php中文网

    用户评论: [#1] florenxe [2015-10-07 18:53:45] //a nice little way to print leap years using array for ($ ...

  8. NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存

    NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...

  9. array.array python yhzf

    关于array: Python 本身没有数组这个说法, 有的就是list和tuple, list就具有其他语言中的数组特性. 至于list和tuple的区别,在于list可以在运行时修改内容和大小,t ...

最新文章

  1. C++:随笔7---运算符重载
  2. 【最精简写法】获取一维数组和对象数组最值:最大值、最小值,返回对象
  3. Eclipse for Tricore 的安装方法
  4. 学python需要什么文化基础-人工智能对人类有哪些影响 选择Python入门怎样
  5. 织梦添加新变量和删除新变量的方法
  6. WebSocket入门
  7. 【C语言】请输入一个n(n=10)并输出一个n行n列的杨辉三角
  8. Angular 内嵌视图、宿主视图
  9. shell下利用运算方式编写倒计时脚本
  10. 推荐游戏玩家使用金山密保保护帐号安全
  11. 剪枝综述论文阅读:Methods for Pruning Deep Neural Networks
  12. MyBatis数据库连接的基本使用-补充Mapper映射器
  13. Ubuntu下备份系统的方法
  14. python获取京东服务器的毫秒级时间
  15. c语言case后语句,switch语句中case后的标号是什么
  16. 非法使用爬虫,一互联网公司被端,警方上门,23人被带走…
  17. 读取 RV1126 CPU温度 NPU CPU频率
  18. VBA-循环语句之Do...Loop
  19. 一日一技|Stata筛选出字符串中非数字的行
  20. 机器人演示demo_令人印象深刻的WebGL演示

热门文章

  1. html5网页制作技巧,HTML5 网页制作技巧
  2. html页面颜色对应代码
  3. 入手索尼WH-1000XM5头戴式降噪耳机,开启玩得尽兴、学得开心的新学期
  4. LintCode——Chalkboard XOR Game(黑板游戏)
  5. 北鲲云超算平台药物发现Cloud-HPCAI解决方案助力生命科学行业
  6. SAP中报表清单导出的常用方法
  7. 一款学习游戏化的APP
  8. PWM调光线性恒流LED恒流芯片X10S
  9. ftp上传工具 免安装,ftp上传工具 免安装绿色破解版好用推荐
  10. 红牛农场JAVA_JAVA内部类与异常类