首页 > 好好好数组
头像 Zvelig1205
发表于 2026-01-25 10:10:17
注意到数据范围: 很显然不能通过遍历等操作来处理。 但这不代表我们不能打表找规律。 注意到 所以只需要确定 的值,便可确定整个数组。 所以从 0 到 n 枚举 ,构造出数组并输出出来找规律 打表代码: vector<int> a(n + 7); for (int i = 0; i 展开全文
头像 Lambda_L
发表于 2026-01-25 09:48:22
分情况讨论基于约束推导合法数组数量:情况 1:m=1要求数组中至少有 1 个不同数字(即所有合法的 “好数组” 都满足)。由于 a_1=0,a_2 可以取 0,1,...,n(共 n+1 个值);对 i≥2,a_{i+1} 由 a_i 唯一确定(满足 a_i = a_{i+1} mod i);因此合 展开全文
头像 wuzhichen
发表于 2026-01-25 00:22:08
注意到题面当中 。说明对于一个数组当中 确定后,剩下的所有元素可以由后一个元素推得,所以不同的数组至多有 种。 对于取模运算有 ,基于此性质接下来对 的情况进行讨论: 当 时,,直到 处变成 ,因此有三个不同的数字。 当 时,(末尾的若干个元素全部相等),直到 处变成 ,因此有两 展开全文
头像 yunayu
发表于 2026-01-25 18:53:33
一道很没意思的数学,东分析西分析最后能推出来,但是感觉没什么意思。但是看了一圈题解区为什么没有证明?遂发之。证明都在注释里了,应该还算完备(? 有不懂的地方留言或私信我 #include<bits/stdc++.h> using namespace std; #define int lo 展开全文
头像 quchen666
发表于 2026-01-25 13:45:11
#include <bits/stdc++.h> using namespace std; void solve() { int n,m; cin>>n>>m; if(m>3)cout<<0<<'\n'; 展开全文
头像 Turgen
发表于 2026-01-25 14:16:32
CSDN看到的一个另外一种容易想到的解法,原文链接如果a[n]确定了,那么整个数组也就确定的,很容易发现,符合条件的数组一定是单调不降的,因为取模只会把数字变小,或者不变,不可能变大。故当a[n]越小时,其往前的数字的可取值范围就越小,就更容易取到相同值,使数组出现不同种类的数字就更难,因此答案具有 展开全文
头像 牛客lcx821
发表于 2026-01-25 15:02:12
#include <iostream> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int t; cin>>t; w 展开全文
头像 chenlan114
发表于 2026-01-25 17:07:14
#include<bits/stdc++.h> using namespace std; using ll=long long; int main(){ // 输入输出流优化,加速cin/cout的读写速度 ios::sync_with_stdio(0),cin.tie(0); 展开全文

等你来战

查看全部