Divine Array 思维,模拟,结论
题意 :
- 给一序列,已知每次循环所有数变为上一轮中这个数的个数,给1e5次询问,问第k次时第x个位置的数值
思路 :
- 结论 :最多n轮就不会变化
- 因此,预处理模拟即可,预处理时,先记录本轮每个数的个数,然后如果有数的个数不等于这个数,说明循环还没有终止,就记录下一轮的数,否则就break找到最大循环次数;询问时,k和cnt取最小,注意下标 - 1
- 注意,使用vector的时候就不要下标从1开始了
#include <iostream>
#include <algorithm>
#include <unordered_map>
#include <vector>using namespace std;const int N = 2e3 + 10;vector<int> a[N];
unordered_map<int, int> ma;int main()
{ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);int _;cin >> _;while (_ -- ){int n;cin >> n;for (int i = 0; i < N; i ++ ) a[i].clear();for (int i = 0; i < n; i ++ ){int x;cin >> x;a[0].push_back(x);}int cnt = 0;bool flag = true;while (flag){flag = false;ma.clear();for (int i = 0; i < n; i ++ )ma[a[cnt][i]] ++ ;for (auto it : ma)if (it.first != it.second){flag = true;break;}if (!flag) break;cnt ++ ;for (int i = 0; i < n; i ++ )a[cnt].push_back(ma[a[cnt - 1][i]]);}int q;cin >> q;for (int i = 0; i < q; i ++ ){int x, k;cin >> x >> k;cout << a[min(cnt, k)][x - 1] << endl;}}return 0;
}
Divine Array 思维,模拟,结论相关推荐
- CF--思维练习--CodeForces - 216C - Hiring Staff (思维+模拟)
ACM思维题训练集合 A new Berland businessman Vitaly is going to open a household appliances' store. All he's ...
- Equalize the Array(思维)
题目链接: Equalize the Array 大致题意 给定一个长度为n的序列, 要求删除序列中尽可能少的元素, 使得剩余序列中出现的每一个元素数量相同. 解题思路 首先最终的序列, 一定是所有的 ...
- 【Codeforces 1392F】Omkar and Landslide | 思维、结论
题目链接:https://codeforces.ml/contest/1392/problem/F 题目大意: 给出N座山峰的高度h_i,之后重复进行下面的操作: 若存在一个位置i满足: 那么i高度就 ...
- B. Most socially-distanced subsequence(思维+模拟)
B. Most socially-distanced subsequence 题意: 给出一个数组 a a a,找到数组中的一个子序列 s s s(长为 x x x),满足" ∑ i = 1 ...
- CodeForces - 820D Mister B and PR Shifts(思维+模拟)
题目链接:点击查看 题目大意:给出一个长度为 n 的排列 p,可以执行数次循环右移的操作,问的最小值是多少 题目分析:暴力的话用 n * n 很容易实现 ,但数据是 1e6 的,显然又不能用暴力去写, ...
- Gym - 101972H Beautiful Substrings(思维+模拟)
题目链接:点击查看 题目大意:题目的意思挺难理解的..尤其是对我这种英语渣来说,简单说一下,就是先给出三个数字n,m,k,然后再给出两个字符串a和b,n和m代表的是字符串a和b的长度,然后描述题意: ...
- Codeforces Round #632 (Div. 2) C. Eugene and an array 思维 + 前缀和
传送门 文章目录 题意: 思路: 题意: 给定一个长度为nnn的序列aaa,定义一段区间为好区间是这段区间的所有连续子区间的和都不为000,求好区间的个数. 思路: 套路题,定义aia_iai的前缀 ...
- 2020 ICPC亚洲区域赛(沈阳)F-Kobolds and Catacombs(思维+模拟)
F-Kobolds and Catacombs 考虑每一段,先找到最小的,然后把编号小于它的都化为一组,此时有一个最大值需要把小于最大值的在划分进来,然后又有编号小于它的,于是再把编号小于它的划分为一 ...
- Fishingprince Plays With Array(思维/数学/实现)
Fishingprince Plays With Array 传送门 Problem - 1696C - Codeforces 思路 把a和b数组不断拓展,直到不能拓展为止,记不能再拓展的数值为最小元 ...
最新文章
- 16625篇论文揭示25年来AI进化规律!深度学习时代行将结束!
- String字符串位置移动
- 【必知】国内最设计感的 App推荐
- SAP CDS view里association和join的区别
- 【编程大系】Java资源汇总
- Java中的Unsafe在安全领域的一些应用总结和复现
- ajax异步同步加载PHP代码,jquery中的ajax同步和异步详解
- WCF性能优势体现 【转】
- 叶子结点和分支节点_教你玩转二叉查找树的结点插入操作
- usermod+用户密码管理+mkpasswd
- HttpClient、HttpURLConnection、OKHttp和Volley
- LayaAir 位图添加遮罩与滤镜
- ThinkPHP高仿蓝奏云网盘系统源码/对接易支付系统程序
- XP系统计算机桌面图标不见,xp系统桌面计算机快捷图标不见了的设置方法
- Python入门之烤地瓜练习
- Hrbust 2294 修建传送门【思维】
- java imageio 内存问题_java imageio内存泄漏
- Java实现最近点问题
- 初入python世界——python基础语法
- httpclient的两个重要的参数maxPerRoute及MaxTotal
热门文章
- MM定价计算方案确定详细图解
- 上下班同行有利于婚姻美满?
- ABAP OO小例子
- 企业数字化转型必看!建立企业级数据分析,必须重点修炼这4种能力
- 知乎进化:对抗内容“熵增”胜算几何?
- tea java 代码,TeaVM编译器如何将Java应用程序转换为Javascript,以及如何使用MicroK8管理嵌入...
- c语言如何输出斜杠星号,Excel 如何提取出最后一个斜杠开始的数字
- cytoscape要求的JAVA版本_微生物研究必备:Cytoscape绘制网络图(一)
- linux虚拟机网络查看的方式
- Python教程:推荐一个比 open 读文件还好用、方便的库