C. Fishingprince Plays With Array
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相关推荐
- Fishingprince Plays With Array(思维/数学/实现)
Fishingprince Plays With Array 传送门 Problem - 1696C - Codeforces 思路 把a和b数组不断拓展,直到不能拓展为止,记不能再拓展的数值为最小元 ...
- Codeforces Global Round 21) C. Fishingprince Plays With Array
文章目录 题意 思路 AC代码 C. Fishingprince Plays With Array 题意 题意:给我们一个含有n个元素的数组a,然后再给我们一个含有k个元素的数组b,我们可以对于任何一 ...
- 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 标签 数组操作 题意 给定 ...
- 1696C. Fishingprince Plays With Array【思维题 + 中间状态 + 优化存储】
分析 给一个list,里面的数如果是m的倍数可以拆成m个x // m,同样的如果遇到m个一样的x,可以缩成mx 问a能不能经过若干这两个操作变成b 思维点:a和b如果能同时扩展成c,那么必定有a - ...
- Codeforces1696 C. Fishingprince Plays With Array
首先将两个数组切分到不能切分为止,然后判断是否相等,数组的表示经过了一定的压缩. rust: #[allow(unused_imports)] use std::cmp::{min,max}; use ...
- 老男孩上海校区Python面试题
python面试题 第一章:python基础 数据类型: 1 字典: 1.1 现有字典 dict={'a':24,'g':52,'i':12,'k':33}请按字典中的 value 值进行排序? 1. ...
- php recordarray,Array 数组 - [ php中文手册 ] - 在线原生手册 - php中文网
用户评论: [#1] florenxe [2015-10-07 18:53:45] //a nice little way to print leap years using array for ($ ...
- NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存
NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...
- array.array python yhzf
关于array: Python 本身没有数组这个说法, 有的就是list和tuple, list就具有其他语言中的数组特性. 至于list和tuple的区别,在于list可以在运行时修改内容和大小,t ...
最新文章
- C++:随笔7---运算符重载
- 【最精简写法】获取一维数组和对象数组最值:最大值、最小值,返回对象
- Eclipse for Tricore 的安装方法
- 学python需要什么文化基础-人工智能对人类有哪些影响 选择Python入门怎样
- 织梦添加新变量和删除新变量的方法
- WebSocket入门
- 【C语言】请输入一个n(n=10)并输出一个n行n列的杨辉三角
- Angular 内嵌视图、宿主视图
- shell下利用运算方式编写倒计时脚本
- 推荐游戏玩家使用金山密保保护帐号安全
- 剪枝综述论文阅读:Methods for Pruning Deep Neural Networks
- MyBatis数据库连接的基本使用-补充Mapper映射器
- Ubuntu下备份系统的方法
- python获取京东服务器的毫秒级时间
- c语言case后语句,switch语句中case后的标号是什么
- 非法使用爬虫,一互联网公司被端,警方上门,23人被带走…
- 读取 RV1126 CPU温度 NPU CPU频率
- VBA-循环语句之Do...Loop
- 一日一技|Stata筛选出字符串中非数字的行
- 机器人演示demo_令人印象深刻的WebGL演示